Q104 — AWS SAA-C03 第4章
第 104/105 問 | ← 第4章
Q299. 気象関連のスタートアップ企業が、ユーザーに天候データをオンラインで販売するカスタムWebアプリケーションを運用しています。この企業はデータをAmazon DynamoDBに保存しており、新たに記録された天候イベントごとに、4つの内部チームのマネージャーにアラートを送信する新サービスを構築したいと考えています。また、この新サービスが既存アプリケーションのパフォーマンスに影響を与えないようにしたいです。これらの要件を、最も少ない運用オーバーヘッドで満たすには、ソリューションアーキテクトは何を行うべきでしょうか?
- A. DynamoDBトランザクションを使用して、新しいイベントデータをテーブルに書き込みます。トランザクションを設定して、内部チームに通知するようにします。
- B. 現在のアプリケーションから、4つのAmazon Simple Notification Service(Amazon SNS)トピックそれぞれにメッセージを発行させます。各チームが1つのトピックをサブスクライブします。
- C. テーブルでAmazon DynamoDB Streamsを有効化します。トリガーを使用して、チームがサブスクライブ可能な単一のAmazon Simple Notification Service(Amazon SNS)トピックに書き込みます。 ✓
- D. 各レコードに新しいアイテムを識別するためのカスタム属性を追加します。1分ごとにテーブルをスキャンし、新規アイテムを検出して、チームがサブスクライブ可能なAmazon Simple Queue Service(Amazon SQS)キューに通知するcronジョブを作成します。
正解: C. テーブルでAmazon DynamoDB Streamsを有効化します。トリガーを使用して、チームがサブスクライブ可能な単一のAmazon Simple Notification Service(Amazon SNS)トピックに書き込みます。
解説
Amazon DynamoDBはAWS Lambdaと統合されており、DynamoDB Streams内のイベントに自動的に応答する「トリガー」(コードの断片)を作成できます。これにより、DynamoDBテーブル内のデータ変更に反応するアプリケーションを構築できます。テーブルでDynamoDB Streamsを有効化すると、そのストリームのARNを、ユーザーが作成したAWS Lambda関数に関連付けることができます。テーブル内のアイテムが変更されると、直ちにそのテーブルのストリームに新しいレコードが追加されます。AWS Lambdaはストリームをポーリングし、新しいストリームレコードを検出すると、Lambda関数を同期的に呼び出します。このLambda関数は、通知の送信やワークフローの開始など、任意の処理を実行できます。出典:https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Streams.Lambda.html