Q37 — AWS SAA-C03 第17章

第 37/89 問 | ← 第17章

Q1337. ある企業が、ユーザーが登録して個人情報を保存できるモバイル金融アプリを開発しています。このアプリは、ユーザーの詳細および設定を格納するために Amazon DynamoDB テーブルを使用します。アプリは DynamoDB に格納されたデータを用いてクレジットスコアレポートを生成し、毎月1回、ユーザーにそのレポートを送信します。企業は、ユーザーが自身のデータおよび設定を削除できる機能を提供する必要があります。また、アプリは、データ削除依頼を受け取ってから1か月以内に顧客データを削除しなければなりません。これらの要件を満たすうち、運用オーバーヘッドが最も少ないソリューションはどれですか?

正解: C. DynamoDB で TTL を有効化します。有効期限を属性として設定します。有効期限の値に基づいて TTL を設定する AWS Lambda 関数を作成し、ユーザーが個人データの削除を依頼した際にその関数を呼び出します。

解説

正解は A または C です。ただし、C が最も適切です。— DynamoDB の TTL 機能を有効化することは、指定された有効期限後にアイテムを自動的に削除する、運用オーバーヘッドが最も少ないネイティブな仕組みです。アプリは、ユーザーがデータ削除を依頼した時点で、有効期限(タイムスタンプ)属性(TTL 属性)を設定できます。DynamoDB は、そのタイムスタンプを基にアイテムを自動的に削除します(通常はタイムスタンプから最大48時間以内に削除されますが、要件である「1か月以内」を確実に満たすよう、適切なタイムスタンプを設定可能です)。— オプション C では、ユーザーによる削除依頼時に TTL 属性を設定するだけのシンプルな Lambda 関数を使用しており、追加のインフラストラクチャやコードが最小限です。ポーリングも不要であり、イベント駆動型の複雑なオーケストレーションも不要で、削除処理は DynamoDB が完全に担当します。他の選択肢が不適切な理由:— A:EventBridge は DynamoDB の TTL 有効期限切れを直接検知してトリガーする機能を持たないため、TTL の有効期限切れを検知する EventBridge ルールを構築することは技術的に不可能であり、代わりにカスタムなスケジューリングや管理が必要になります。— B:DynamoDB ストリームは、TTL によるアイテムの削除をイベントとして送出しません(有効期限が切れたアイテムは非同期で削除され、ストリームには記録されません)。このため、この手法は信頼性が低く、正常に動作しません。— D:AWS Config は、個々の DynamoDB アイテムの TTL 有効期限切れを検知する機能を持たず、アイテム単位の削除ワークフローには不適切です。AWS Config を使用すると、不要な複雑さとオーバーヘッドが生じます。