Q14 — AWS DVA-C02 第2章
第 14/100 問 | ← 第2章
ある企業がサーバーレスアプリケーションを構築しました。このアプリケーションには、Amazon API GatewayでホストされるREST APIと、それを呼び出すAWS Lambda関数が含まれています。Lambda関数はデータを処理し、Amazon DynamoDBテーブルに保存します。また、Lambda関数はバックエンドの在庫管理アプリケーションAPIを呼び出して注文を処理します。注文処理が完了すると、Lambda関数はクライアントにHTTP 200ステータスコード(本文なし)を返します。ピーク時のトラフィックにおいて、API呼び出しが一定のしきい値を超えると、バックエンドの在庫管理アプリケーションが過負荷になり、エラー応答を返すことがあります。企業は、バックエンドの在庫管理アプリケーションに過負荷をかけない解決策を求めています。この要件を満たす解決策はどれですか?
- A. API GatewayのREST APIを直接DynamoDBに書き込むように設定します。DynamoDBの組み込み関数を使用して変換を実行します。DynamoDBストリームを設定し、各行の挿入時に第三者の在庫管理アプリケーションAPIを呼び出します。Lambda関数を削除します。
- B. API GatewayのREST APIを直接Amazon Simple Queue Service (Amazon SQS) キューに書き込むように設定します。Lambda関数の保留同時実行数を、第三者の在庫管理アプリケーションのしきい値に設定します。Lambda関数をSQSキューからのメッセージを処理するように設定します。 ✓
- C. API GatewayのREST APIを直接Amazon Simple Notification Service (Amazon SNS) トピックに書き込むように設定します。Lambda関数のプロビジョニング済み同時実行数を、第三者の在庫管理アプリケーションのしきい値に設定します。Lambda関数をSNSトピックからのメッセージを処理するように設定します。
- D. API GatewayのREST APIを直接Amazon Athenaに書き込むように設定します。SQLを使用してデータ変換を設定し、複数のクエリ結果先をDynamoDBテーブルおよび第三者の在庫管理アプリケーションAPIに指定します。Lambda関数を削除します。
正解: B. API GatewayのREST APIを直接Amazon Simple Queue Service (Amazon SQS) キューに書き込むように設定します。Lambda関数の保留同時実行数を、第三者の在庫管理アプリケーションのしきい値に設定します。Lambda関数をSQSキューからのメッセージを処理するように設定します。
解説
選択肢Aでは、DynamoDBストリームを使用して第三者の在庫管理アプリケーションAPIを呼び出すことを提案していますが、これはDynamoDBへの書き込みごとに呼び出しが発生するため、第三者アプリケーションに過度な負荷をかける可能性があり、適切な解決策ではありません。選択肢Bでは、リクエストをAmazon SQSキューに書き込み、Lambda関数の同時実行数を第三者アプリケーションのしきい値に設定することを提案しており、第三者アプリケーションへの直接的な過負荷を回避でき、非同期処理を可能にするキューの利点を活かせます。選択肢Cでは、Amazon SNSトピックにリクエストを書き込むことを提案していますが、SNSはパブリッシュ/サブスクライブモデル向けであり、本ユースケースには不適切です。選択肢Dでは、リクエストをAmazon Athenaに書き込み、SQLで変換を行うことを提案していますが、AthenaはS3内のデータを分析クエリするためのサービスであり、本ユースケースには適合しません。