
はじめに
こんにちは、リテールハブ開発部の杉森です。
私たちのチームでは、既存のバッチサーバーに対して、EC2インスタンスからECS on Fargateへの移行を検討しています。
しかし、「コスト面で大きなデメリットがあるのではないか?」という疑問が挙がっていました。
本記事では、実際のバッチサーバーの運用パターンを想定し、EC2インスタンスとECS on Fargateの料金に関して、コスト面での比較を実施します。
また、AWS Pricing MCP Serverを活用したAIによる料金計算で同様の結果が算出できるかの検証も行います。
EC2インスタンスとECSの料金比較
基本となる仕様
バッチサーバーの仕様
- バッチ内容: 15分に1回実行される短時間定期実行バッチ
- 実行時間: 5分程度(タスク起動から停止までを含む)
※EC2インスタンスの場合常時稼働を前提にしています
インフラ周りの仕様
- タスク要件: CPU 2vCPU、メモリ4GB(t4g.medium 1台分のリソース)
- ECSタスク定義: 1タスクあたり2vCPU、4GBメモリを使用
- OS: Linux
- CPU アーキテクチャ: ARM
- リージョン: アジアパシフィック(東京)
- ストレージ: 20GB(EC2インスタンスの場合はEBS gp3、Fargateの場合はデフォルトの範囲)
- リージョン: 東京(ap-northeast-1)
EC2インスタンスとECS on Fargateの料金体系 (2025年8月21日時点の料金)
EC2インスタンス
- インスタンス(オンデマンドでt4g.medium):$0.0432/時間
- EBS: $0.096/GB/月
ECS on Fargate
- vCPU: $0.04045/時間
- メモリ: $0.00442/GB/時間
料金比較結果
EC2インスタンスの場合
インスタンス名: t4g.medium (2vCPU, 4GB) EBS: 20GB gp3 稼働時間: 24時間 × 30日 = 720時間 料金計算: - インスタンス: $0.0432 × 720時間 = $31.104 - EBS: $0.096 × 20GB = $1.92 月額合計: $33.024
参考: https://aws.amazon.com/jp/ec2/pricing/on-demand/
Fargateの場合
タスク構成: 2vCPU, 4GB メモリ 実行回数: 96回/日 × 30日 = 2,880回/月 実行時間: 5分/回 = 0.0833時間/回 総稼働時間: 0.0833時間 × 2,880回 = 240時間/月 料金計算: - vCPU: $0.04045 × 2 × 240時間 = $19.416 - メモリ: $0.00442 × 4 × 240時間 = $4.2432 月額合計: $23.6592
参考: https://calculator.aws/#/createCalculator/Fargate
(おまけ)稼働時間別の料金比較
バッチの実行時間において、どの程度であればFaragateがコスト面で優位なのかを計算しました。
| 稼働時間/日 | EC2インスタンス月額 | Fargate月額 | 差額 | 優位な構成 |
|---|---|---|---|---|
| 8時間(本ケース) | $33.02 | $23.66 | -$9.36 | Fargate |
| 11時間 | $33.02 | $32.53 | -$0.49 | Fargate |
| 12時間 | $33.02 | $35.49 | +$2.47 | EC2インスタンス |
| 24時間 | $33.02 | $70.98 | +$37.96 | EC2インスタンス |
料金計算におけるAI活用
上記の内容を手動でまとめるのはかなりの手間です。
生産性効率化のため、AIを活用して自動化できないか検証します。
検証内容
Claude Codeを利用し、自然言語ベースでより正確な料金比較の内容を出力できないかを検証します。
今回の検証でAWS Pricing MCP Serverを利用します。
AWS Pricing MCP Server とは?
AWS Pricing MCP Serverは、Model Context Protocol (MCP) 準拠のツールサーバーです。
MCPが利用可能なAIツールから、EC2インスタンス/ECS/EBSなどの最新の公開価格を取得できます。
実行環境
- AIツール:Claude Code
- モデル:Opus4.1
MCPサーバーの設定
下記内容を .claude/setting.local.jsonに保存
{ "mcpServers": { "aws-pricing-mcp-server": { "command": "uvx", "args": [ "awslabs.aws-pricing-mcp-server@latest" ], "env": { "FASTMCP_LOG_LEVEL": "ERROR", "AWS_PROFILE": "${{AWSプロファイル}}", "AWS_REGION": "${{リージョン}}" } } } }
検証結果
プロンプト
EC2インスタンス t4g.mediumインスタンスを東京リージョンで月720時間稼働させた場合と、ECS Fargate(2vCPU、4GBメモリ、ARM)を15分に1回、各5分間実行で月240時間稼働させた場合の料金を比較してください。 ストレージに関しては、EC2インスタンスの場合、EBSは20GB gp3を使用し、ECSの場合無料の範囲で運用します。 AWS Pricing MCP Server を利用してください。 深く考えて。
出力された内容
※一部省略しています
| サービス | 月額料金(USD) | 月額料金(円) | 削減率 |
|---|---|---|---|
| EC2インスタンス t4g.medium (ARM) | $33.024 | 約4,953円 | ベースライン |
| ECS Fargate (ARM) | $23.659 | 約3,549円 | 28.4%削減 |
追加のプロンプト
稼働時間で % が変動するかと思いますが、| 稼働時間/日 | EC2インスタンス月額 | Fargate月額 | 差額 | 優位な構成 | の項目に沿った表を生成して。
出力された内容
※一部省略しています
| 稼働時間/日 | EC2インスタンス月額 | Fargate月額 | 差額 | 優位な構成 |
|---|---|---|---|---|
| 1時間 | $33.02 | $2.96 | -$30.06 | Fargate(91%削減) |
| 2時間 | $33.02 | $5.91 | -$27.11 | Fargate(82%削減) |
| 3時間 | $33.02 | $8.87 | -$24.15 | Fargate(73%削減) |
| 4時間 | $33.02 | $11.83 | -$21.19 | Fargate(64%削減) |
| 5時間 | $33.02 | $14.79 | -$18.23 | Fargate(55%削減) |
| 6時間 | $33.02 | $17.74 | -$15.28 | Fargate(46%削減) |
| 7時間 | $33.02 | $20.70 | -$12.32 | Fargate(37%削減) |
| 8時間 | $33.02 | $23.66 | -$9.36 | Fargate(28%削減) |
| 9時間 | $33.02 | $26.62 | -$6.40 | Fargate(19%削減) |
| 10時間 | $33.02 | $29.57 | -$3.45 | Fargate(10%削減) |
| 11時間 | $33.02 | $32.53 | -$0.49 | Fargate(1%削減) |
| 12時間 | $33.02 | $35.49 | +$2.47 | EC2インスタンス(7%削減) |
| 13時間 | $33.02 | $38.45 | +$5.43 | EC2インスタンス(16%削減) |
| 14時間 | $33.02 | $41.40 | +$8.38 | EC2インスタンス(25%削減) |
| 15時間 | $33.02 | $44.36 | +$11.34 | EC2インスタンス(34%削減) |
| 16時間 | $33.02 | $47.32 | +$14.30 | EC2インスタンス(43%削減) |
| 18時間 | $33.02 | $53.23 | +$20.21 | EC2インスタンス(61%削減) |
| 20時間 | $33.02 | $59.15 | +$26.13 | EC2インスタンス(79%削減) |
| 22時間 | $33.02 | $65.07 | +$32.05 | EC2インスタンス(97%削減) |
| 24時間 | $33.02 | $70.98 | +$37.96 | EC2インスタンス(115%削減) |
手動で計算した内容と同じ結果を得ることができました!
MCPサーバーを接続しない状態で検証したところ、リソースごとの金額が適切ではない値で計算されていたため、AWS Pricing MCP Serverを繋ぐことは有効であることがわかりました。
(生成AIを使う以上必ず正しい値が算出されるわけではないですが、試算程度であればかなり有用であると感じました)
まとめ
バッチサーバーのインフラ選定においての料金比較とAWS Pricing MCP Serverを利用した効率化の検証を実施することができました。
他にも、「システム要件による制約」、「その他のAWSリソースの料金」、「人間による運用コスト」 など 選定における観点はさまざまありますが、インフラ費の算出で参考になれば幸いです。