DVA-C02:AWS Certified Developer - Associate AWS サービスを用いた開発 問3
AWS サービスを用いた開発/AWS でホストされるアプリのコード開発REST API で、不正な形式のリクエストをバックエンドに届く前に拒否し、クライアントごとのリクエスト数も制限したいと考えています。最も適切なのはどれですか。
当サイトのオリジナル問題(DVA-C02:AWS Certified Developer - Associateの出題範囲「AWS サービスを用いた開発」に対応。実際の試験問題ではありません)
- Aすべての検証と流量制御をバックエンドの Lambda 内で行う
- BAmazon CloudFront だけでリクエストの形式を検証する
- CAmazon API Gateway のリクエスト検証と、使用量プランによるスロットリングで、不正リクエストを手前で拒否し流量を制限する
- Dクライアントを信頼し、リクエストの検証や流量制御は行わない
正解:C
解説
Amazon API Gateway には、リクエストの形式(必須パラメーターや JSON スキーマ)を検証して不正なリクエストをバックエンドに届く前に拒否する機能と、使用量プランと API キーによるスロットリング(レート制限・バースト制限)があります。これにより、バックエンドの Lambda などに負荷をかける前に、入口で不正リクエストや過剰な流量を抑えられます。
選択肢ごとの解説
- A誤り。すべてをバックエンドで検証すると、不正リクエストでもバックエンドが起動してコストと負荷がかかります。
- B誤り。CloudFront は配信・キャッシュが主目的で、API のリクエストスキーマ検証や使用量プランによる流量制御の役割は担いません。
- C正しい。API Gateway のリクエスト検証とスロットリングで、不正リクエストを手前で拒否し、クライアントごとの流量を制限できます。
- D誤り。検証も流量制御も行わないのは、セキュリティと可用性の面で不適切です。