40
32

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

バックエンドをLambdaにするかECS(Fargate)にするかの判断基準

40
Last updated at Posted at 2026-04-09

新規システムのアーキテクチャを選定する際、バックエンドをLambdaにするか、ECS(Fargate)にするか、比較検討した内容をまとめました。


⏳ クイック比較まとめ

比較項目 Lambda ECS (Fargate)
アーキテクチャ サーバーレス関数 コンテナオーケストレーション
実行時間の制限 最大15分 制限なし
スケーリング 瞬時(ゼロスケール対応) 緩やか(スケールアウト設定が必要)
課金体系 従量課金(リクエスト数+実行時間) 稼働時間課金(割り当てCPU+メモリ)
レイテンシ コールドスタートの可能性あり 常に安定(常駐のため)
ポータビリティ 低い(AWS環境に強く依存) 高い(Dockerイメージとして可搬)

💡 5つの判断基準

1. ワークロードの特性(実行時間とステート)

  • Lambda
    • 1回の実行時間は「最大15分」
      → 短時間で完了するステートレスな処理(APIのバックエンド、軽量な非同期処理など)に最適。
  • ECS
    実行時間の制限無し。
    → 15分を超えるような重いバッチ処理、機械学習の推論、WebSocketなどによるクライアントとの継続的な接続(ステートフルな処理)が必要な場合はこちら。

2. トラフィックの傾向とスケーラビリティ

  • Lambda
    • 突発的なアクセス増に極めて強い。アクセスが来たら一瞬で自動的に並列スケールし、使われない時はゼロ台になる。
      → トラフィックの予測が難しいシステムに最適。
  • ECS
    • オートスケーリングは可能だが、コンテナの起動には数十秒〜数分の時間がかかる。Lambdaほどの瞬発力はない。基本的には常に必要最小限のコンテナを稼働させておき、メトリクス(CPU使用率など)に応じてスケールアウトさせる運用になる。

3. コスト構造(従量課金 vs 稼働時間課金)

  • Lambda
    • 「リクエスト回数」と「実行時間」の従量課金。アクセスが全くない夜間や休日はコストが完全にゼロになる。ただし、24時間365日絶え間なく大量のアクセスがあるシステムの場合、インフラコストが割高になる傾向がある。
  • ECS (Fargate)
    • 「タスクに割り当てたCPUとメモリ」×「稼働時間」に対する課金。アクセスがゼロでも、コンテナを起動している限りコストが発生。一方で、ベースロード(常に一定のトラフィック)がある場合は、Lambdaよりもコストパフォーマンスが良くなるケースが多い。

4. レイテンシ(応答速度)のシビアさ

  • Lambda

    • しばらく実行されていない状態からリクエストを受け取ると、実行環境をゼロから準備するコールドスタートが発生し、初回レスポンスが数秒遅延することがある。
  • ECS*

    • 常にコンテナが起動して待機している状態のため、コールドスタートの概念が存在しない。常に安定したレイテンシが求められる要件(例:ミリ秒単位の応答が求められるリアルタイムAPIなど)に向いている。

5. 開発体験とポータビリティ(移行のしやすさ)

  • Lambda
    • インフラやOSの管理をAWSに完全に任せられるため、開発者は「ビジネスロジックのコードを書くこと」に集中できる。しかし、AWSの各種サービス(API Gateway, DynamoDB, S3など)と密結合になりやすく、他クラウドへの移行は困難になる。
  • ECS
    • Dockerコンテナを利用するため、「ローカル環境で動いたコンテナイメージが、本番環境でもそのまま動く」という強力な安心感あり。将来的にGoogle Cloud (Cloud Run / GKE) やオンプレミス環境へ移行したくなった際も、コンテナごと移動させやすい(ポータビリティが高い)。

🎯 まとめ:ユースケース別のおすすめ

✅ Lambda

  • トラフィックの波が激しい、または新規事業などでアクセス予測が全くつかない
  • 管理画面や社内ツールなど、利用されない時間帯が長く、コストを極限まで抑えたい
  • S3へのファイルアップロード、DynamoDBの更新などをトリガーとする「イベント駆動型」のシステム
  • インフラ運用の手間を最小化し、少人数のチームでスピーディに開発・運用したい

✅ ECS (Fargate)

  • 1回の処理に15分以上かかる重い処理や、常駐型のプロセスが存在する
  • 常に一定以上の安定したトラフィックがあり、Lambdaだとコスト高になる懸念がある
  • ユーザー体験上、コールドスタートによる数秒のレイテンシ悪化を絶対に許容できない
  • すでにDockerベースの開発フローが確立しており、将来的なベンダーロックインを避けたい
40
32
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
40
32

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?