Amazon Web Services ブログ
Amazon Aurora Global Database による事業継続性の向上
ビジネスがグローバルに成長するにつれて、データベースのニーズも同様に増加します。リソースは、チューリッヒのチームと北京のオフィスとの間で、同じ速度、同じセキュリティ、同様のアクセスの容易さで利用可能でなければなりません。Amazon Aurora Global Database は、世界中の Amazon Aurora データベースを拡張します。
Aurora は、保護グループと呼ばれる 10 GB の論理ブロックにストレージボリュームを構築しています。次に、同じリージョンで 3 つのアベイラビリティーゾーンに割り当てられている 6 つのストレージノードにわたって、各保護グループのデータを複製します。データの容量が現在割り当てられているストレージの容量を超えると、Aurora は需要に合わせて容量をシームレスに拡張し、必要に応じて新しい保護グループを追加します。
re:Invent 2018 で発表された Aurora Global Database は、この複製プロセスを他のリージョンにも拡張しています。これにより、リージョン間での災害復旧が高速化され、高性能、低ラグ、リージョン間の読み取りスケーリングが可能になります。Aurora Global Database を使用すると、データベースのパフォーマンスへの影響を最小限に抑えながら、データベースを複数のリージョンに拡張できます。
この記事では、Aurora Global Database を紹介し、その利点とユースケースについて説明します。
Aurora Global Database とは何ですか?
Aurora Global Database は複数のリージョンにわたり、リージョン全体の停止から災害復旧を行い、低レイテンシーのグローバル読み取りを可能にします。
Aurora の機能として、Global Database は Aurora のストレージレイヤーにある専用のインフラストラクチャを使用して、リージョン間のレプリケーションを処理します。ストレージレイヤー内の専用レプリケーションサーバーがレプリケーションを処理するため、データベースのパフォーマンスを損なうことなく、復旧と可用性という目標を強化できます。
MySQL バイナリログレプリケーションと Aurora Global Database で使用されるストレージベースのレプリケーションには、いくつか重要な違いがあります。論理レプリケーション、つまり binlog レプリケーションは、データ変更ステートメントまたは行の変更を複製元 (プライマリ) に記録し、複製先 (レプリカ) に再適用します。プライマリデータベースとレプリカデータベースは別々で独立しており、異なるデータセットを含めることができます。
一方、Aurora Global Database は、物理的なストレージレベルのレプリケーションを使用して、同一のデータセットを持つプライマリデータベースのレプリカを作成します。これにより、バイナリログへの依存性がなくなります。Global Database のセカンダリリージョンインスタンスは、データ変更ステートメントを再生しません。これにより、レプリケーションのオーバーヘッドが大幅に削減され、アプリケーションのワークロードに利用できる容量が増えます。
つまり、ライターからコミットされたトランザクションの変更は、選択したリージョンにグローバルに複製されます。通常は 1 秒以上かかりません。Global Database がこのレプリケーションを処理している間、データはクラスターの各リージョンで 3 つのアベイラビリティゾーンに永続的に保存されたままになります。
Global Database を使用する理由
Aurora Global Database には、複数の重要な機能があります。
- セカンダリリージョンへの高速グローバルフェイルオーバー
- リージョン間のレプリケーションにおける低レイテンシー
- データベースのパフォーマンスへの影響が皆無かそれに近い
- MySQL との互換性
セカンダリリージョンへの高速グローバルフェイルオーバー
自信を持って災害復旧計画を立てると、予期しない事態が発生した場合に、事業継続計画に対してより大きな自信を持つことができます。Aurora Global Database は、災害復旧の 2 つの重要メトリクスに優れています。
- RTO (目標復旧時間) — 災害が発生した後、業務再開にどの位の時間を要するかを表します。
- RPO (目標復旧地点) — 災害が発生した際にどの規模のデータが失われるかを表します。
Aurora Global Database を使用すると、RPO は 5 秒未満でデータの損失を最小限に抑え、RTO は 1 分以内でダウンタイムを短縮できます。
Aurora Global Database は、リージョン全体に障害が発生した場合でも、災害復旧機能と運用を継続する機能を提供します。Aurora Global Database は、データベースの潜在的な劣化または分離の際に、セカンダリリージョンの昇格に対して迅速に対応します。グローバルストレージベースのレプリケーションでは、昇格されたリージョンは 1 分以内に完全な読み取り/書き込みワークロードを取り込むため、アプリケーションの稼働時間への影響を最小限に抑えます。
リージョン間のレプリケーションにおける低レイテンシー
Aurora Global Database を使用すると、災害復旧以外にも、プライマリリージョンからセカンダリリージョンへの読み取りをすばやくオフロードできます。Aurora Global Database は、従来のレプリケーションにおけるレイテンシーを 1 秒未満に保ちます。上限は 5 秒です。この低レイテンシーにより、オンライントランザクション処理 (OLTP) のワークロードに対するグローバルな読み取りのスケールアウトが可能になります。
低レイテンシーであるため、最適なユーザーエクスペリエンスとエンゲージメントを実現するために、グローバルクライアントアプリケーションにより近い (そしてより早い) 読み取りに対応できます。共通の設定データを共有するマルチリージョンのアプリケーションスタックを運用しているお客様は、Aurora Global Database を使用してほぼ瞬時にデータを複製できます。
世界中に複数のオフィスを構えており、グローバルな顧客ベースをお持ちの場合は、コンテンツをプライマリリージョンにアップロードして、ローカルのレイテンシーで世界中のお客様にご利用いただけます。
データベースのパフォーマンスへの影響が皆無かそれに近い
Aurora ストレージレイヤーの Aurora Global Database 専用インフラストラクチャは、アプリケーションのワークロードに対応するために、プライマリリージョンとセカンダリリージョンでプロビジョニングされたデータベースリソースを完全に利用できるようにします。Aurora レプリケーションは、プライマリデータベースクラスターのパフォーマンスに及ぼす影響が限られているか、ほとんど影響を与えません。
リージョン間の高速移行
Aurora Global Database は、アプリケーションの移行に向けて本番データベースを別の AWS リージョンに複製できます。Aurora Global Database がセカンダリリージョンを更新した後、Aurora Global Database から複製されたデータベースをデタッチし、他の Aurora データベースクラスターと同様に操作します。現在独立しているクラスターをリージョンのアプリケーションスタックに接続すると、すぐに読み取り/書き込みワークロードの処理を開始します。
MySQL との互換性
Aurora Global Database は現在、Amazon Aurora で MySQL と互換性があります。アプリケーション開発者は、グローバル規模であっても、オープンソースデータベースの親しみやすさと柔軟性による利点を得ることができます。
Aurora Global Database の作成
AWS マネジメントコンソール、AWS CLI から、または AWS CLI または SDK から CreateGlobalCluster アクションを実行して、Aurora Global Database を作成できます。詳細については、Aurora Global Database を作成するを参照してください。
次のスクリーンショットでは、米国西部 2 (オレゴン) のプライマリクラスターと米国東部 1 (北バージニア) のセカンダリクラスターを使用して、Aurora Global Database を起動しました。セカンダリクラスターを追加する方法については、Aurora Global Database への AWS リージョンの追加を参照してください。
Aurora Global Database からクラスターを削除する方法、フェイルオーバーを実行する方法、またはデータをインポートする方法については、Amazon Aurora Global Database の操作を参照してください。
まとめ
この記事では、Aurora Global Database を紹介しました。リージョン全体が停止した場合でも、この機能で迅速な災害復旧を行えること、およびさまざまなグローバルリージョンでお客様のアプリケーションにデータを近づける方法について学びました。
追加質問やフィードバックがおありですか? aurora-pm@amazon.com までお知らせください。または、こちらにコメントをお書きください。ご意見・ご提案をお待ちしています。
著者について
Ahmad Elayat はアマゾンウェブサービスの Amazon Aurora のプロダクトマネージャーです。