API Gateway × ECS の実務設計

アイキャッチ画像

導入

API Gateway と ECS を組み合わせた構成は、マイクロサービスを構築する上で非常に一般的です。しかし、実務では「タイムアウト」「VPC Link」「ログ設計」「スロットリング」など、設計時に注意すべきポイントが多く存在します。これらを正しく理解していないと、パフォーマンス低下や障害時の原因特定の遅れにつながり、運用コストが増大してしまいます。

本記事では、API Gateway と ECS を組み合わせた際に押さえておくべき 実務的な設計ポイント を整理し、現場で役立つベストプラクティスをご紹介いたします。

API Gateway × ECS の基本構成

API Gateway から ECS のサービスへ接続する場合、一般的には VPC Link → NLB → ECS(Fargate) という構成を取ります。VPC Link を利用することで、ECS を Public Subnet に置く必要がなく、Private Subnet 内で安全に運用できます。
API Gateway には REST API と HTTP API の2種類があります。

  • REST API:機能が豊富だが料金が高い
  • HTTP API:軽量・低コスト・高速

ECS との連携だけであれば HTTP API で十分なケースが多く、コスト面でもメリットがあります。

タイムアウト設計のベストプラクティス 

対策のポイント

  • ECS 側の処理時間を短縮する
    • → 重い処理は API で直接実行しない
  • 非同期化(SQS / EventBridge)
    • → 即時レスポンスを返し、裏で処理を進める
  • アプリ側のタイムアウトを短めに設定
    • → httpx や RestTemplate の timeout を適切に設定
  • リトライ戦略を明確にする
    • → 外部API呼び出しはリトライ回数・間隔を定義

特に「重い処理を API で直接叩く」設計は避けるべきです。非同期化することで、API Gateway の制限を回避できます。

VPC Link の使いどころ

VPC Link は、API Gateway から VPC 内のリソースへ安全に接続するための仕組みです。
ECS を Private Subnet に配置する場合、VPC Link はほぼ必須となります。 

① NLB を使う理由 

  • L4 レベルで高速
  • 固定 IP を持てる
  • VPC Link と相性が良い

逆に ALB は VPC Link と組み合わせるメリットが薄く、API Gateway → VPC Link → NLB → ECS が最も安定した構成です。

② 注意点

  • 作成に時間がかかる(数分〜十数分)
  • 利用料金が発生する
  • NLB のヘルスチェック設定が重要

ログ・可観測性の設計

API Gateway と ECS の組み合わせでは、ログとトレースの設計が非常に重要です。 

① API Gateway のログ

  • アクセスログ(CloudWatch Logs)
  • リクエスト/レスポンスの詳細ログ
  • ステージ変数でログレベルを制御

② ECS のログ

  • awslogs で CloudWatch Logs に集約
  • FireLens(Fluent Bit)で外部転送
  • JSON 形式で構造化ログを出力するのがベスト

③ X-Ray による可視化 

API Gateway と ECS の両方で X-Ray を有効化することで、遅延の原因が API Gateway 側なのか ECS 側なのか を可視化できます。
特に、外部API呼び出しやDBアクセスがボトルネックになっている場合、X-Ray のトレースが非常に役立ちます。

スロットリングとエラーハンドリング

API Gateway にはレート制限があり、過剰なリクエストを自動的に制御できます。一方、ECS 側はスケールアウトに時間がかかるため、API Gateway のスロットリング設定と ECS のスケール戦略を合わせる ことが重要です。

  • API Gateway:Burst / Rate を設定
  • ECS:CPU/メモリ使用率でスケール
  • NLB:ヘルスチェックで不健康タスクを除外

これにより、負荷が高い状況でも安定したサービス提供が可能になります。

まとめ

API Gateway × ECS の構成はシンプルに見えて、実務では多くの設計ポイントがあります。
特に、タイムアウト・VPC Link・ログ設計・スロットリングは品質に直結する重要な要素です。
これらを正しく設計することで、安定したマイクロサービス基盤を構築でき、運用コストの削減にもつながります。