SAA-C03弾力性に優れたアーキテクチャの設計MEDIUM単一選択

ある企業が、Amazon API Gateway と AWS Lambda でサーバーレスアプリケーションを運用しており、特定の API エンドポイントが他のエンドポイントに比べて圧倒的に多くのリクエストを受けており、Lambda の同時実行数が全体のアカウント上限に近づいている。他の重要なエンドポイントが影響を受けないようにしたい。最も適切な対処方法はどれか。

  1. A. API Gateway のスロットリングを全エンドポイントに一律に設定して全体のリクエスト数を削減する。
  2. B. アカウントの Lambda 同時実行数の上限引き上げをサポートに申請する。
  3. C. 負荷の高い Lambda 関数を削除して、代わりに EC2 インスタンスに移行する。
  4. D. 負荷の高いエンドポイントに対応する Lambda 関数に予約済み同時実行(Reserved Concurrency)を設定して上限を定め、重要なエンドポイントの Lambda 関数には別途予約済み同時実行を設定して最低限の実行数を確保する。
解答と解説を見る

正解: D

Lambda の予約済み同時実行(Reserved Concurrency)をエンドポイントごとに設定することで、負荷の高い Lambda 関数のアカウント全体への影響を制限できる。高負荷関数には予約済み同時実行の上限を設定(例: 500)してアカウント枠を使い過ぎないよう制限し、重要な関数には最低限の予約済み同時実行(例: 100)を確保することで、高負荷時でも重要エンドポイントが実行できる。選択肢BのLambda 上限引き上げは一時的な解決策だが、根本的な問題(特定関数が枠を占有すること)は解決しない。上限を引き上げてもその後また同じ問題が発生する可能性がある。選択肢CのEC2 移行はサーバーレスの利点を失い、運用コストが増加する。問題の根本解決にはならない。選択肢Aの全エンドポイントへの一律スロットリングは重要なエンドポイントのリクエストも制限してしまい、ユーザー体験を悪化させる。

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