Q42 — AWS SAA-C03 第2章
第 42/65 問 | ← 第2章
Q107. ある会社が、多数のAmazon EC2インスタンスでアプリケーションを実行しています。このアプリケーションは、Amazon DynamoDBテーブルに対して読み取りおよび書き込みを行います。DynamoDBテーブルのサイズは継続的に増加していますが、アプリケーションでは過去30日間のデータのみが必要です。同社は、コストと開発工数を最小限に抑えるソリューションを求めています。これらの要件を満たすソリューションはどれですか?
- A. AWS CloudFormationテンプレートを使用してソリューション全体をデプロイします。CloudFormationスタックを30日ごとに再デプロイし、元のスタックを削除します。
- B. AWS Marketplaceから提供される監視アプリケーションを実行するEC2インスタンスを使用します。この監視アプリケーションを、Amazon DynamoDB Streamsを利用してテーブルに新しいアイテムが作成されたタイミングでタイムスタンプを記録するように設定します。EC2インスタンス上で実行されるスクリプトを用いて、タイムスタンプが30日前より古いアイテムを削除します。
- C. Amazon DynamoDB Streamsを設定して、テーブルに新しいアイテムが作成された際にAWS Lambda関数を呼び出します。Lambda関数を設定して、テーブル内の30日以上前のアイテムを削除します。
- D. アプリケーションを拡張し、各新規アイテムに「現在時刻+30日」の値を持つ属性を追加します。DynamoDBでこの属性をTTL(Time to Live)属性として使用するよう設定します。 ✓
正解: D. アプリケーションを拡張し、各新規アイテムに「現在時刻+30日」の値を持つ属性を追加します。DynamoDBでこの属性をTTL(Time to Live)属性として使用するよう設定します。
解説
Dが正解です。Amazon DynamoDBのTime to Live(TTL)機能では、各アイテム単位で有効期限(タイムスタンプ)を定義でき、その時刻を過ぎるとDynamoDBが自動的にアイテムを削除します。指定されたタイムスタンプを過ぎた直後に、DynamoDBはアイテムをテーブルから削除しますが、その際には書き込みスループットを消費しません。TTLは追加コストなしで利用可能であり、ワークロードの要件に応じて最新のデータのみを保持することで、保存データ量を削減する手段として提供されています。TTLは、一定期間経過後に不要になるアイテム(例:アプリケーション内での1年間の非アクティブ状態後のユーザーまたはセンサーデータ、契約上または法的要件に基づく機密データの保持期間など)を削除する場合に特に有効です。また、TTLで削除されたアイテムをAmazon DynamoDB StreamsとAWS Lambdaを活用してAmazon S3データレイクへアーカイブすることも可能です。https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/TTL.html