ある企業が、マルチリージョン(us-east-1 と ap-northeast-1)でアクティブ-アクティブ構成の Web アプリケーションを構築したい。両リージョンのデータベースへの書き込みをリアルタイムで双方向同期させ、低レイテンシーで読み書き両方を実現したい。RTO は 1 分以内、RPO はほぼゼロを目指す。最も適切なデータベース選択とアーキテクチャはどれか。
- A. Amazon DynamoDB Global Tables を使用し、両リージョンにテーブルのレプリカを作成する。DynamoDB Global Tables は双方向レプリケーションをマネージドで提供し、アクティブ-アクティブ書き込みが可能。
- B. Amazon RDS for MySQL を各リージョンにデプロイし、データベースレプリケーションをカスタム Lambda で実装して双方向同期する。
- C. Amazon ElastiCache for Redis のグローバルデータストア機能を使用し、両リージョンへのデータ分散を実現する。
- D. Amazon Aurora Global Database を使用し、プライマリリージョンからセカンダリリージョンへのレプリケーションラグを 1 秒以下に保つ。障害時はセカンダリをプライマリに昇格させる(アクティブ-スタンバイ構成)。
解答と解説を見る
正解: A
Amazon DynamoDB Global Tables はマルチリージョン・マルチマスター(アクティブ-アクティブ)のレプリケーションをマネージドで提供する唯一の AWS データベースサービスである。両リージョンで読み書きが可能で、変更は通常 1 秒以内に全リージョンに伝播する。RPO はほぼゼロ、RTO は 1 分以内(DNS フェイルオーバーのみ)を実現できる。選択肢Bのカスタム Lambda による双方向同期は実装が複雑で、競合解消ロジックも自前で構築する必要があり、信頼性と開発コストの面で現実的ではない。選択肢DのAurora Global Database はセカンダリをプライマリへ昇格させる(フェイルオーバー型)アーキテクチャであり、アクティブ-スタンバイ構成である。アクティブ-アクティブ(両リージョンへの同時書き込み)には対応していない。選択肢CのElastiCache グローバルデータストアはキャッシュ用途のものであり、永続的なプライマリデータストアとしては使用しない。
📚 関連サービスの解説: Amazon DynamoDB