[レポート] AWS OutpostsでAmazon RDSを使用してオンプレミスのデータベースを管理する #reinvent #DAT310

2019.12.05

はじめに

こんにちは。大阪オフィスの林です。

2019年12月02日〜2019年12月07日で、アメリカのラスベガスにてAWS re:Invent 2019が開催されています!この記事は「Managing databases on premises with Amazon RDS on AWS Outposts」セッションに参加したレポートです。

セッション概要

低レイテンシ要件とローカルデータ処理のニーズを持つアプリケーションでは、リレーショナルデータベースがオンプレミスである必要があります。これらのリレーショナルデータベースは、オンプレミスでの管理に時間がかかり、複雑で、高価です。ほとんどのアプリケーションがクラウドに移行しているため、オンプレミスとAWSのさまざまなインターフェイスでハイブリッドデータベースを管理することは困難です。AWS Outposts上のAmazon RDSがこれらの課題を解決し、オンプレミス環境で完全に管理されたRDSデータベースインスタンスをデプロイできるようにする方法を学びましょう。

 

<

div>

セッション形式

時間 1h
セッションタイプ Chalk Talk
スピーカー

 

 

会場の雰囲気はこんな感じです。

オンプレミス環境でのデータベース管理

オンプレミスにしておく必要があるデータベースとは?

そもそも、オンプレミスで稼働させなければいけないアプリケーションとはどのような特性のものでしょうか?

AWSではおおきく2つの特性があるアプリケーションをオンプレミスで動かす必要があるアプリケーションと答えています。

  • レイテンシーおよびレイテンシーの変動に敏感なアプリケーション
    • エンドユーザーアプリケーションへのほぼリアルタイムの応答が必要なもの
    • オンサイト機器を制御する必要があるもの
    • 他のオンプレミスシステムと通信する必要があるもの
  • データをローカルで処理するアプリケーション
    • 取り込んだデータの整合性を確保する必要があるもの(放送前のライブイベントなど)
    • 地元消費のために産業用または医療機器からのメッセージを確実に処理する必要があるもの
    • データをローカルに保存および処理し、後でクラウドに転送する必要があるもの

現状、世の中にはどうしてもオンプレミスで稼働させなければならないサービスがあるということです。

オンプレミスに何が求められているか?

それでは、オンプレミスでサービスを稼働させ続けるためにお客様は何を求めているのでしょうか?

オンプレミスでデータベースを稼働させ続けることは、クラウドのマネージドなサービスと比べ運用面、管理面からみても効率的であるとは言えません。例えば以下のような点でクラウドに劣っています。

  • パッチを適用やアップグレードのための大きなオーバーヘッドが掛かる
  • 正常性を監視やバックアップや災害復旧プロセスを構築してデータベースの可用性と耐久性を確保する
  • ビジネスの継続性と運用に影響を与えることなく、変化するデータベースのスケーラビリティとパフォーマンスを確保する
  • オンプレミスのイノベーションのペースがクラウドのイノベーションのペースに遅れをとる

これらの状況からみてもお客様はクラウドと同じ体験をオンプレミスでも求めているということが分かります。

お客様はクラウドと同じレベルの機能や体験を求めてる

オンプレミスで稼働させなければならない特性があるデータベースであっても、クラウドような特徴・機能を使えることが昨今求められています。例えば下記の5つが挙げられます。

  • 管理された、信頼できる、安全な高性能データベース環境
  • 一貫性のある運用
  • 同じサービスや同じAPIsを使った運用
  • 自動化、展開、監視のための同じツール
  • クラウドと同じペースのイノベーション

これらの課題を解決するために生まれたのが、「AWS Outpost on Amazon RDS」です。

AWS Outpost on Amazon RDS

「AWS Outpost on Amazon RDS」によって以下の恩恵を受けることが可能となります。

  • オンプレミスによって管理、監視、および操作されるデータベースをAWS上で管理できる。
  • オンプレミスおよびAWSリージョンで同じAPI、自動化、およびツールを使用できる。
  • AWSリージョンを使用して災害復旧と容量のバーストを実現できる。

サポートされるデータベースエンジン

現時点(Preview時点)では、2つのエンジンの下記バージョンのみのサポートとなります。

  • MyQL 5.7.26
  • PostgreSQL 10.9

前提条件

データベースエンジンのほかにも「AWS Outpost on Amazon RDS」を使用するための前提条件もあるのでしっかりと確認しておきましょう。※Preview時点の前提条件です。

  • ハードウェアの前提条件
    • 「M5」または「R5」の容量のみ
    • 「gp2」ボリュームのみ
  • AWSリージョンへのネットワーク接続
    • AWS Direct connectで接続が必要 または、
    • インターネット上の仮想プライベートネットワークで接続が必要
  • エンタープライズサポート契約が必要

利用までの流れ

大きく3つの簡単なステップで「AWS Outpost on Amazon RDS」を利用することが出来ます。※既にOutpostsとAWSクラウドとで同じネットワークに接続されている状態が前提です。

  1. AWS Outpostsに関連付けられた1つ以上のサブネットを含むDBサブネットグループを作成する
  2. DBサブネットグループを使用してAWS OutpostsデータベースインスタンスにRDSを作成する
  3. 同じAWS管理コンソール、RDS API、またはAWS CLIを使用して、データベースを作成、管理、監視する

 

アーキテクチャ

「AWS Outpost on Amazon RDS」がどのようなアーキテクチャで実装されているのか紹介がありました。

CustomerVPCでAWSとオンプレミスが同じVPCに存在することが分かります。

AWSとオンプレミス間のネットワークが切断されるとどうなるか?

AWSとオンプレミス間をつなぐ線が障害等で切断された場合、どのようの動作になるのか説明がありました。

  • データベースは停止しない。引き続き実行される。
  • 新しいデータベースを作成したり、既存のデータベースを管理したりすることはできない。
  • データベースは自動的に置き換えられたり(master/slaveの話と思われます)、パッチが適用されたりしない。
  • 自動バックアップは実行されない。
  • ハードウェア障害時にはすべての読み取りと書き込みは無効になります。(これはOutpostsのHWそのものの障害の話と思われます)

これらの動作になる点を踏まえ下記のプラクティスが紹介されました。

  • AWS OutpostsとAWSリージョンの間の可用性と信頼性の高いネットワーク接続をお勧めします
  • ネットワーク接続をできるだけ早く復元し、中断が6時間以内になることをお勧めします(なぜ”6時間”なのかは分かりませんでした。。。)

まとめ

数回クリックするだけでフルマネージドなRDS環境をオンプレミスでも展開することができます!RDS環境だけのために「AWS Outpost on Amazon RDS」を利用するケースは少ないと思いますが、オンプレミス環境と接続するときに使えるサービスとして「AWS Outpost on Amazon RDS」を覚えて頂ければと思います!管理面でもオンプレミスとAWSとで統一されたインターフェースを使うことできるので管理の複雑性も和らぐのではないでしょうか。

以上、大阪オフィスの林がお送りしました!