Q77 — AWS SAA-C03 第4章
第 77/105 問 | ← 第4章
Q272. ある企業がAWS上でマルチプレイヤーゲームアプリケーションをホストしています。このアプリケーションには、サブミリ秒単位のレイテンシでデータを読み取る機能と、過去の履歴データに対してワンタイムクエリを実行する機能が必要です。 これらの要件を満たすソリューションのうち、運用オーバーヘッドが最も少ないものはどれですか?
- A. 頻繁にアクセスされるデータにはAmazon RDSを使用します。定期的にカスタムスクリプトを実行して、データをAmazon S3バケットへエクスポートします。
- B. データを直接Amazon S3バケットに保存します。S3ライフサイクルポリシーを設定して、古いデータを長期保存用にS3 Glacier Deep Archiveへ移動させます。Amazon Athenaを用いて、Amazon S3内のデータに対してワンタイムクエリを実行します。
- C. 頻繁にアクセスされるデータにはAmazon DynamoDBとDynamoDB Accelerator(DAX)を使用します。DynamoDBテーブルのエクスポート機能を用いてデータをAmazon S3バケットへエクスポートし、Amazon Athenaを用いてS3内のデータに対してワンタイムクエリを実行します。 ✓
- D. 頻繁にアクセスされるデータにはAmazon DynamoDBを使用します。Kinesis Data Streamsへのストリーミングを有効化し、Kinesis Data Firehoseを用いてストリームからデータを読み取り、レコードをAmazon S3バケットに保存します。
正解: 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です。