目次
【API Gatewayの役割(パフォーマンス最適化)】
🔍 1. 結論
💎 一言でいうと Amazon API Gateway のパフォーマンス最適化における役割は、「API キャッシュ」 によるバックエンド(Lambda等)への負荷軽減と、「エンドポイントの最適化(エッジ最適化)」 によるグローバルなレイテンシの削減です。
- 同じリクエストが来たら、Lambdaを起動させずにAPI Gatewayがキャッシュを返す。
- トラフィックが急増した際、スロットリング(流量制限) をかけてバックエンドがパンクするのを防ぐ。
📈 2. SAAで出やすいポイント
- API キャッシュ: API Gateway 側で専用のキャッシュメモリをプロビジョニング(確保)します。DBから取得するような重いクエリの結果を一時的に保持し、同じAPI呼び出しに対してはキャッシュから即座に応答を返します。バックエンド(LambdaやRDS)のコスト削減と劇的な高速化をもたらします。
- エンドポイントのタイプ:
- エッジ最適化 (Edge-Optimized): 世界中のユーザーからアクセスされる場合。裏でCloudFrontが自動的に構成され、世界中のエッジロケーション経由でルーティングされるため遅延が減ります。
- リージョン (Regional): 同一リージョン内のEC2等から呼ばれる場合に使用(CloudFrontを経由しないため、無駄なオーバーヘッドがない)。
- スロットリング機能: 「1秒間に1000リクエストまで」といった上限を設定し、それを超えるアクセスには「429 Too Many Requests」を返します。これにより、想定外のスパイクでバックエンドのDBが落ちるのを防ぎます(パフォーマンスの安定化)。
🗝 3. キーワードでの判断
| 問題文のキーワード | 疑う機能・設定 |
|---|---|
| 🚀 「LambdaをバックエンドにしたAPIの応答時間を短縮したい」「DBへのクエリ負荷を下げる」 | API Gateway の APIキャッシュを有効にする |
| 🌍 「世界中のモバイルアプリからREST APIにアクセスされる」 | エッジ最適化 (Edge-optimized) エンドポイント |
| 🚦 「急激なAPIリクエストの増加でバックエンドがダウンするのを防ぐ」 | API Gateway でスロットリングを設定する |
⚠️ 4. ひっかけポイント
🚫 よくある誤答パターン – 「APIの応答を高速化するために、Lambda関数内でキャッシュを持つ」 → Lambdaはコンテナが使い捨てられるため、内部にキャッシュを持っても効果が薄いです。API Gateway のキャッシュ機能か、ElastiCache を使用するのが正解です。 – 「エッジ最適化を選べば自動でデータがキャッシュされる」 → エッジ最適化は「通信経路(ネットワーク)」をCloudFront網にして速くするだけで、データそのものの保存(APIキャッシュ)とは別の機能です。
💡 5. 覚え方
🧠 暗記ショートカット – API Gateway = 「工場の敏腕受付」。 – よくある質問(APIキャッシュ)には奥の工場長(Lambda)を呼ばずに自分で答える。 – クレーマー(過剰アクセス)は入場制限(スロットリング)して工場長を守る。
📚 6. 関連サービス
| アイコン | サービス名 | API Gatewayとの連携 |
|---|---|---|
| ⚡ | AWS Lambda | サーバーレスAPIにおける、裏側のメイン処理(コンピュート)担当 |
| 🛡️ | AWS WAF | API Gatewayにアタッチして、悪意あるAPIリクエストをブロックする |
| 🌍 | CloudFront | エッジ最適化エンドポイントを選んだ際に、裏側で使われるグローバル網 |
🗒️ 7. Obsidian管理メモ
- 見返すタイミング: サーバーレスアーキテクチャの高速化、API設計の学習時
- 関連ノート候補:
AWS_高性能設計_Lambda,AWS_SAA_API_Gateway_Endpoints
8. HTMLファイル名:
AWS_高性能設計_APIGateway.html