Q77 — AWS SAA-C03 第4章

第 77/105 問 | ← 第4章

Q272. ある企業がAWS上でマルチプレイヤーゲームアプリケーションをホストしています。このアプリケーションには、サブミリ秒単位のレイテンシでデータを読み取る機能と、過去の履歴データに対してワンタイムクエリを実行する機能が必要です。 これらの要件を満たすソリューションのうち、運用オーバーヘッドが最も少ないものはどれですか?

正解: C. 頻繁にアクセスされるデータにはAmazon DynamoDBとDynamoDB Accelerator(DAX)を使用します。DynamoDBテーブルのエクスポート機能を用いてデータをAmazon S3バケットへエクスポートし、Amazon Athenaを用いてS3内のデータに対してワンタイムクエリを実行します。

解説

要件は「サブミリ秒単位の低レイテンシな読み取り」と「履歴データに対するワンタイムクエリ」の2点です。サブミリ秒レイテンシを実現するには、DAX(DynamoDB Accelerator)やRedisなどのインメモリキャッシュが有効ですが、選択肢CではDAXを活用しており、頻繁にアクセスされるデータに対して最適なパフォーマンスを提供します。また、履歴データのワンタイムクエリには、S3+Athenaの組み合わせがサーバーレスかつ運用負荷が極めて低い標準的なアプローチです。選択肢Cは、DAXによる低レイテンシ読み取りと、DynamoDBのネイティブなテーブルエクスポート機能(自動的・管理不要)を用いたS3への履歴データ移行+Athenaによるクエリという、両要件をシンプルかつ高信頼性で満たす設計です。一方、選択肢AはRDSの読み取りレイテンシが通常数ミリ秒以上であり、サブミリ秒要件を満たさず、さらにカスタムスクリプトによるエクスポートは運用オーバーヘッドが大きいです。選択肢BはS3への直接保存ではサブミリ秒読み取りが不可能(S3の最低レイテンシは数十ミリ秒)であり、要件を満たしません。選択肢Dはリアルタイムストリーミングに特化しており、履歴データのワンタイムクエリには不向き(データの整合性・遅延・クエリの柔軟性に課題あり)、かつKinesis関連コンポーネントの管理により運用オーバーヘッドが増加します。したがって、最も運用オーバーヘッドが少なく、かつ両要件を満たすのは選択肢Cです。