🚪 パフォーマンス:API Gatewayの使いどころ

目次

【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

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次