0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWS ECSコスト削減対策まとめ

Posted at

AWS ECSコスト削減対策まとめ

📋 実施した3つのコスト削減対策(AWS公式ドキュメント基準)

1️⃣ Cross-Zone Load Balancing 無効化

AWS公式の説明:

「各ロードバランサーノードは、同じアベイラビリティゾーンの登録済みターゲットにのみトラフィックを分散します」

出典: Edit target group attributes for your Application Load Balancer

内容:

  • ALBターゲットグループレベルで無効化
  • ALBの各AZノードは、同じAZ内のタスクにのみトラフィックを送信
  • 異なるAZ間のデータ転送を防止

メリット:

  • Cross-AZデータ転送料金が大幅削減APN1-DataTransfer-Regional-Bytesの課金削減)
  • ✅ レイテンシーの改善(同じAZ内の通信のみ)
  • ✅ 障害ドメインの分離(AWS公式推奨: 不健全なゾーンが健全なゾーンに影響を与えない)

デメリット:

  • ⚠️ 各AZに最低1つのタスクが必要(AWS公式: 空のAZは503エラーを引き起こす)
  • ⚠️ Target Stickinessが使用不可
  • ⚠️ Lambda関数をターゲットにできない

削減料金:

  • 変更前: $30-50/月(Cross-AZ転送料金)
  • 変更後: $5-10/月(最小限の転送のみ)
  • 削減額: 約$25-40/月

2️⃣ Fargate Spot 導入

AWS公式の説明:

「Fargate Spotを使用すると、中断可能なECSタスクを通常のFargate料金と比較して割引料金で実行できます。AWSが容量を必要とする場合、タスクは2分前の警告とともに中断されます」

出典: AWS Fargate Spot compared to reserved instances

内容:

  • FARGATE_SPOT を使用
  • 通常のFargateより最大70%安い料金
  • 2分前通知でタスクが中断される可能性あり

メリット:

  • コスト大幅削減(最大70%)
  • ✅ 開発・ステージング環境に最適
  • ✅ 中断時はECSが自動的に新しいSpot容量をリクエスト

デメリット:

  • ⚠️ 2分前通知でタスクが中断される可能性
  • ⚠️ 本番環境には不向き(可用性重視の場合)
  • ⚠️ 別のAZに再配置される可能性

削減料金:

  • 変更前: $10.23/月(FARGATE)
  • 変更後: $3.07/月(FARGATE_SPOT)
  • 削減額: $7.16/月(70%削減)

3️⃣ Availability Zone Rebalancing 無効化

AWS公式の説明:

「Amazon ECSはタスク分散を継続的に監視し、アベイラビリティゾーン間で不均等なワークロードを再調整して高可用性を維持します」

出典: Balancing an Amazon ECS service across Availability Zones

内容:

  • 2025年9月5日からデフォルトで有効
  • タスクがAZ間で不均等な場合、自動的に再配置
  • タスク数が少ない場合は無効化が推奨

メリット(無効化した場合):

  • タスクが固定AZに配置される(Cross-Zone無効化と相性良い)
  • ✅ 不要なタスク再起動を防止
  • ✅ Cross-AZデータ転送を完全に0にできる
  • ✅ コスト最適化

デメリット(無効化した場合):

  • ⚠️ AZ障害時に手動でタスクを再配置する必要
  • ⚠️ 高可用性が若干低下(開発環境では問題なし)

メリット(有効にした場合):

  • ✅ 高可用性の維持
  • ✅ AZ障害からの自動復旧

デメリット(有効にした場合):

  • ⚠️ タスク数=1の場合、リバランスが不可能
  • ⚠️ Cross-Zone無効化と併用すると503エラーのリスク

削減料金:

  • 直接的な料金削減はなし
  • 間接効果: Cross-Zone無効化の効果を最大化(タスクを固定AZに維持)

🎯 AWS公式推奨のベストプラクティス

開発環境(現在の設定):

  1. Cross-Zone無効化: コスト削減優先(実施済み)
  2. Fargate Spot: 中断許容可能なワークロードで使用(実施済み)
  3. AZリバランス無効化: タスク数が少ない場合(実施済み)

本番環境への移行時:

  1. ⚠️ Cross-Zone有効化: 高可用性のため
  2. ⚠️ Fargate通常: 安定性重視
  3. ⚠️ AZリバランス有効化: 自動復旧のため

📚 参考資料(AWS公式ドキュメント)

  1. Edit target group attributes for your Application Load Balancer
  2. AWS Fargate Spot compared to reserved instances
  3. Balancing an Amazon ECS service across Availability Zones
  4. Understanding data transfer charges
  5. Optimize costs for AWS Fargate tasks on Amazon ECS

🚀 今後のさらなるコスト削減案

  1. AWS Compute Optimizerでタスクサイズ最適化

    • CPU/メモリの使用率を分析
    • 過剰なリソースを削減
    • 削減見込み: 30-50%
  2. ALBをNetwork Load Balancerに変更

    • ALB: $15.62/月
    • NLB: $9-10/月
    • 削減額: $5-6/月

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?