Q14 — AWS DVA-C02 第2章

第 14/100 問 | ← 第2章

ある企業がサーバーレスアプリケーションを構築しました。このアプリケーションには、Amazon API GatewayでホストされるREST APIと、それを呼び出すAWS Lambda関数が含まれています。Lambda関数はデータを処理し、Amazon DynamoDBテーブルに保存します。また、Lambda関数はバックエンドの在庫管理アプリケーションAPIを呼び出して注文を処理します。注文処理が完了すると、Lambda関数はクライアントにHTTP 200ステータスコード(本文なし)を返します。ピーク時のトラフィックにおいて、API呼び出しが一定のしきい値を超えると、バックエンドの在庫管理アプリケーションが過負荷になり、エラー応答を返すことがあります。企業は、バックエンドの在庫管理アプリケーションに過負荷をかけない解決策を求めています。この要件を満たす解決策はどれですか?

正解: 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内のデータを分析クエリするためのサービスであり、本ユースケースには適合しません。