DVAAWSのサービスを使用した開発

ソリューションアーキテクトは、大量のトランザクションを処理するソーシャルメディアアプリのバックエンドを設計しています。ユーザーのプロフィール変更イベントをDynamoDBテーブルからリアルタイムに検知し、検索エンジンインデックスの更新と通知の送信を並行して行う必要があります。拡張性とフォールトトレランスを備えた設計を提示するものはどれですか。

A
DynamoDBストリームを有効化し、Amazon Kinesis Data Streamsへ出力を転送した上で、複数のコンシューマーアプリケーションで独立して並行処理を行う。
✓ 正解
Kinesis Data Streamsとの統合により、複数の独立したコンシューマー(LambdaやKinesis Data Analyticsなど)が同じデータストリームを並行して高スループットで処理できます。
B
DynamoDBテーブルの変更データをAWS AppConfigにリアルタイムで書き込み、変更通知機能を利用して後続処理を行うスクリプトへ通知する。
AWS AppConfigはアプリケーションの設定データや機能フラグの配布・管理を行うサービスであり、大容量の変更データストリームをトリガーにして処理する用途には適していません。
C
ECSタスク定義内にカスタムサイドカーコンテナを追加し、主コンテナのデータベース書き込みログをローカルディスク経由で常時監視させる。
サイドカーコンテナによるローカルログ監視はコンテナ間の結合度を高め、スケールアウトの柔軟性を阻害します。マネージドなストリーミングサービスを利用する方が適切です。
D
DynamoDBテーブルの特定の属性更新を検出するために、AWS CloudTrailのデータイベントログを有効化してAmazon Athenaで定期的に検索する。
CloudTrailデータイベントとAthenaの連携は監査やログ分析目的の構成であり、リアルタイムなイベント駆動型アプリケーションのコンシューマーとして使用するには遅延が大きすぎます。

解説

DynamoDBストリームのデータをKinesis Data Streamsと統合する(あるいはDynamoDB Streams for Kinesisを使用する)ことで、複数のファンアウトコンシューマーが同じストリームデータを独立してリアルタイム処理できるようになります。これにより、インデックス更新と通知処理を互いに影響を与えることなく並行して拡張可能に実行できます。

ドメイン別正答率・予想スコアでリアルタイムに実力把握

無限ノックでDVAを徹底対策。全問AI生成のオリジナル問題。

無料で演習を始める →
DVA の問題一覧に戻る