DVA-C02トラブルシューティングと最適化MEDIUM単一選択

あるチームがAPI GatewayとLambdaの組み合わせで読み取り専用の商品カタログAPIを提供している。クライアントからの同一リクエストが短時間に繰り返され、Lambda関数が毎回実行されていることが判明した。Lambdaの実行コストを削減し応答速度を上げたい。最も適切な対応はどれか。

  1. A. Lambda関数内でElastiCacheに接続してDynamoDBのクエリ結果をキャッシュする
  2. B. API GatewayをHTTP APIからREST APIに切り替えてパフォーマンスを向上させる
  3. C. API GatewayのAPIキャッシュ(APIキャッシング)を有効にして、TTLを設定してLambdaへの呼び出しを削減する
  4. D. Lambda関数の予約済み同時実行を増やして処理キャパシティを拡大する
解答と解説を見る

正解: C

API Gatewayのキャッシング(選択肢C)を有効にすると、指定したTTL内に同一のリクエスト(パス、クエリ文字列、ヘッダーをキーとして)が来た場合、Lambda関数を呼ばずにキャッシュから直接レスポンスを返す。読み取り専用の商品カタログのような変更頻度が低いAPIに最適で、Lambdaの実行コストを大幅削減し、キャッシュヒット時はLambdaの実行時間不要で応答が高速化される。選択肢AのElastiCache接続はLambda関数は毎回実行されるためLambdaのコスト削減効果がなく、VPCの設定も必要になり複雑度が増す。選択肢Dの予約済み同時実行はキャパシティ管理であり、呼び出し回数を減らす効果はない。選択肢BのHTTPからREST APIへの切り替えは逆方向(HTTP APIの方が低レイテンシでコスト低)であり、キャッシュの問題も解決しない。

▸ この試験を本気で演習する(全150問・無料)