はじめに
AWSでアプリケーションを運用する際、EC2とECSのどちらを選択するかはコストに大きな影響を与えます。
それぞれの特性を理解し、適切な選択をすることでコストを最適化できます。
本記事では、EC2とECSのコスト構造を比較し、どちらがより安くなるのかを検討します。
EC2とECSのコスト構造
EC2(Amazon Elastic Compute Cloud)
EC2は仮想マシン(インスタンス)を直接管理するサービスで、以下のようなコストが発生します。
- インスタンスの料金(オンデマンド、リザーブド、スポット)
- EBS(Elastic Block Store)のストレージコスト
- データ転送料金
- OSライセンス費用(Windowsなど)
ECS(Amazon Elastic Container Service)
ECSはコンテナ管理サービスで、以下の2つの実行方法によってコストが変わります。
EC2起動タイプ(ECS on EC2)
- EC2インスタンスを使用するため、EC2のコストと同じ構造
- コンテナを管理しやすくなるが、EC2の台数を考慮する必要がある
Fargate起動タイプ(ECS on Fargate)
- EC2を使わず、コンテナのCPU・メモリ使用量に応じて課金
- 必要な分だけ支払うため、小規模・スケールアウト型のワークロードに適している
- EC2の固定費が不要なので、スモールスタートに向いている
どちらが安いか?
ケース別比較
シナリオ | EC2 | ECS(EC2) | ECS(Fargate) |
---|---|---|---|
常時稼働のアプリ | リザーブドインスタンスでコスト削減可 | インスタンス台数管理が必要 | Fargateは常時稼働には高コスト |
短時間のバッチ処理 | インスタンスの起動・停止が必要 | 同上 | 使った分だけ課金でコスト最適化 |
スモールスタート | インスタンスの基本料金がかかる | 最低1台のEC2が必要 | 少量のリソースだけ課金 |
大規模スケールアウト | インスタンスの追加が必要 | EC2 Auto Scalingで柔軟対応 | 自動スケールで効率的 |
具体的なコスト例
EC2のコスト
例:t3.micro(1 vCPU, 1GB RAM)
- オンデマンド料金:約
- リザーブドインスタンス:約
- スポットインスタンス:さらに安くなる
ECS(Fargate)のコスト
例:0.25 vCPU / 0.5GB RAM のコンテナを1日1時間実行
- 約
Fargateは短時間の処理ならEC2より安く、長時間ならEC2の方が安いことが分かる。
まとめ
どちらが安いかはユースケース次第となります!
- 長時間使うならEC2(リザーブドインスタンス)
- 小規模・短時間ならECS(Fargate)が割安
- 大規模スケールならECS on EC2がバランスよい
特に「短時間の処理」「スモールスタート」の場合、Fargateの従量課金が有利。一方、「常時稼働」や「予測可能な負荷」の場合、EC2のリザーブドインスタンスが圧倒的に安くなる。