Q27 — AWS SAA-C03 第9章
第 27/40 問 | ← 第9章
Q587. ある企業が旅行チケット販売のためのWebアプリケーションを運用しています。このアプリケーションは、北米の単一データセンター内で稼働するデータベースに基づいています。同社は、このアプリケーションをグローバルなユーザー基盤に拡張したいと考えています。そのために、アプリケーションを複数のAWSリージョンにデプロイする必要があります。予約データベースへの更新時の平均レイテンシは1秒未満でなければなりません。また、同社は、複数のリージョンにわたってWebプラットフォームを個別にデプロイしたい一方で、グローバルに一貫性のある単一のプライマリ予約データベースを維持する必要があります。これらの要件を満たすために、ソリューションアーキテクトが推奨すべき解決策はどれですか?
- A. アプリケーションをAmazon DynamoDBを使用するように変更します。中心となる予約テーブルにはグローバルテーブル(Global Table)を採用し、各リージョンのデプロイメントでは対応するリージョンエンドポイントを使用します。 ✓
- B. データベースをAmazon Aurora MySQLに移行します。各リージョンにAuroraリードレプリカを展開し、各リージョンのデプロイメントでは、データベースアクセスに適切なリージョンエンドポイントを使用します。
- C. データベースをAmazon RDS for MySQLに移行します。各リージョンにMySQLリードレプリカを展開し、各リージョンのデプロイメントでは、データベースアクセスに適切なリージョンエンドポイントを使用します。
- D. アプリケーションをAmazon Aurora Serverlessデータベースに移行します。各リージョンにデータベースインスタンスを展開し、各リージョンのデプロイメントでは対応するリージョンエンドポイントを使用してデータベースにアクセスします。また、各リージョンでAWS Lambda関数を用いてイベントストリームを処理し、データベース間の同期を行います。
正解: A. アプリケーションをAmazon DynamoDBを使用するように変更します。中心となる予約テーブルにはグローバルテーブル(Global Table)を採用し、各リージョンのデプロイメントでは対応するリージョンエンドポイントを使用します。
解説
要件には「単一のプライマリ予約データベースを維持しつつ、グローバルに一貫性のある状態を保つ」こと、および「更新時の平均レイテンシが1秒未満」という厳格なパフォーマンス要件が含まれます。AuroraやRDSのリードレプリカ(B・C)およびAurora Serverless+Lambdaによる同期(D)は、いずれも非同期レプリケーションまたは最終的な一貫性(eventual consistency)に基づくため、強力な一貫性(strong consistency)や低レイテンシなグローバル書き込みを保証できません。一方、Amazon DynamoDBのグローバルテーブルは、マルチリージョン間での自動かつ同期的な書き込みレプリケーションを提供し、各リージョンからの書き込みをそのリージョン内で即座に読み取れる(強力な一貫性ではなくとも、各リージョン内では読み取り可能)仕組みを持ち、かつ書き込みレイテンシを極力短縮できます。さらに、グローバルテーブルは、単一の論理テーブルとして管理され、アプリケーション側でリージョン間のデータ整合性を意識せずに利用できるため、「単一のプライマリデータベース」としての運用要件にも合致します。したがって、正解はAです。