Q27 — AWS SAA-C03 第9章

第 27/40 問 | ← 第9章

Q587. ある企業が旅行チケット販売のためのWebアプリケーションを運用しています。このアプリケーションは、北米の単一データセンター内で稼働するデータベースに基づいています。同社は、このアプリケーションをグローバルなユーザー基盤に拡張したいと考えています。そのために、アプリケーションを複数のAWSリージョンにデプロイする必要があります。予約データベースへの更新時の平均レイテンシは1秒未満でなければなりません。また、同社は、複数のリージョンにわたってWebプラットフォームを個別にデプロイしたい一方で、グローバルに一貫性のある単一のプライマリ予約データベースを維持する必要があります。これらの要件を満たすために、ソリューションアーキテクトが推奨すべき解決策はどれですか?

正解: A. アプリケーションをAmazon DynamoDBを使用するように変更します。中心となる予約テーブルにはグローバルテーブル(Global Table)を採用し、各リージョンのデプロイメントでは対応するリージョンエンドポイントを使用します。

解説

要件には「単一のプライマリ予約データベースを維持しつつ、グローバルに一貫性のある状態を保つ」こと、および「更新時の平均レイテンシが1秒未満」という厳格なパフォーマンス要件が含まれます。AuroraやRDSのリードレプリカ(B・C)およびAurora Serverless+Lambdaによる同期(D)は、いずれも非同期レプリケーションまたは最終的な一貫性(eventual consistency)に基づくため、強力な一貫性(strong consistency)や低レイテンシなグローバル書き込みを保証できません。一方、Amazon DynamoDBのグローバルテーブルは、マルチリージョン間での自動かつ同期的な書き込みレプリケーションを提供し、各リージョンからの書き込みをそのリージョン内で即座に読み取れる(強力な一貫性ではなくとも、各リージョン内では読み取り可能)仕組みを持ち、かつ書き込みレイテンシを極力短縮できます。さらに、グローバルテーブルは、単一の論理テーブルとして管理され、アプリケーション側でリージョン間のデータ整合性を意識せずに利用できるため、「単一のプライマリデータベース」としての運用要件にも合致します。したがって、正解はAです。