Q24 — AWS DVA-C02 第3章
第 24/100 問 | ← 第3章
モバイルアプリケーションがブログ記事をAmazon DynamoDBテーブルに保存します。毎日多数の新規記事が追加され、各記事はテーブル内の個別のアイテムとして表現されます。モバイルアプリケーションは最新の投稿のみを必要とします。48時間を超える投稿は削除可能です。48時間を超える投稿を削除する最も経済的な方法は何ですか?
- A. 各アイテムに対して、ブログ記事の作成時刻をタイムスタンプとして設定した新しいString型属性を追加します。BatchWriteItem API操作を用いて古い投稿を検索・削除するスクリプトを作成します。Amazon EC2インスタンス上で1時間ごとに実行されるスケジュールタスクとしてこのスクリプトを設定します。
- B. 各アイテムに対して、ブログ記事の作成時刻をタイムスタンプとして設定した新しいString型属性を追加します。BatchWriteItem API操作を用いて古い投稿を検索・削除するスクリプトを作成します。このスクリプトをコンテナイメージにパッケージ化し、AWS Fargate上でAmazon Elastic Container Service(Amazon ECS)タスクとして5分ごとに実行するようにスケジュールします。
- C. 各アイテムに対して、ブログ記事の作成時刻から48時間後の時刻を設定した新しいDate型属性を追加します。この新しい属性をソートキーとして使用するグローバルセカンダリインデックス(GSI)を作成します。GSIを参照し、BatchWriteItem API操作で期限切れアイテムを削除するAWS Lambda関数を作成します。Amazon CloudWatch Eventsを用いてこの関数を1分ごとにスケジュールします。
- D. 各アイテムに対して、ブログ記事の作成時刻から48時間後の時刻を設定した新しいNumber型属性を追加します。DynamoDBテーブルを、この新しい属性を参照するTTL(Time To Live)機能を有効化するように設定します。 ✓
正解: D. 各アイテムに対して、ブログ記事の作成時刻から48時間後の時刻を設定した新しいNumber型属性を追加します。DynamoDBテーブルを、この新しい属性を参照するTTL(Time To Live)機能を有効化するように設定します。
解説
DynamoDBのTTL(Time To Live)機能を活用することが、最も経済的かつ効率的な方法です。各アイテムに、記事作成時刻から48時間後の時刻を含む新しいNumber型属性を追加し、テーブルをこの属性を参照するTTLとして設定することで、DynamoDBが自動的に指定時間経過後のアイテムを削除します。これによりアプリケーションコードの変更が最小限に抑えられ、DynamoDBが自動的に期限切れアイテムのクリーンアップを担当します。