kasei_sanのブログ

かせいさんのIT系のおぼえがきです。胡乱の方はnoteとtwitterへ

AWS Fargate のコスト削減アイデアいろいろ

AWS Fargate。便利だけど、EC2と比べるとコストも高いので、コスト削減の方法をいろいろまとめてみた

  • 上から順に効果が高くて、適用コストも低いので、上から実施を検討すると良いです

Compute Savings Plans

  • EC2やFargateやlambdaの利用について、1時間いくらで、1年 or 3年分契約することで割引が発生するプラン。前払いにすると更に割引
  • 前払いならば、東京リージョンのfargeteで、 1年なら22%OFF、3年なら47%OFF
  • インスタンスタイプなどに縛りはないので、一定額 EC2やFargateやlambda を使用するならば、入ったほうが得なことが多いハズ

構成変更も不要なので、まずはここから始めると良い

参考

dev.classmethod.jp

Fargate Spot

  • 不意に中断することがある代わりに、70%OFF で Fargate が利用できるサービス
    • Compute Savings Plans との併用はできない
    • ほとんど中断することはない様子

  • Capacity provider strategy で、task の起動時のFargate Spotの割合を設定可能

つかいどころ

  • 停止しても大きな問題が無い、QAやstaging環境
    • 自分の会社では、Spot にして、さらに土日深夜早朝停止することで、かなりの低コストでQA環境を運用できた

techblog.lclco.com

構成変更のコストも低く、停止することも今の所ほぼ無いので、stage環境があるならば、まずはSpotの利用をオススメ

あとは、失敗しても再実行すれば良いバッチ処理とか、Capacity provider strategyを使って本番の一部とか

参考

blog.kasei-san.com

メモリ、CPU、task数の調整

メトリクスを取っていることが前提

  • ピークタイムでもメモリ、CPUに余剰があるならば、task数の削減を検討
  • 最低維持task数 = AZの数 でもまだ余裕があるならば、メモリ、CPUの削減を検討
    • ただし、1個のAZが落ちても、余裕があるようにしておくこと
    • 2AZならば、maxでも50%にしておく
  • ピークタイムとそれ以外でメモリ、CPUの使用量に大きな差があるのであれば、オートスケーリングを検討

半年に1回くらい状況を見て、メモリ、CPU、task数を調整するとハッピーかもしれない

リクエスト数をへらす

キャッシュが最適化されていないのであれば要検討

必要なCPUやtask数が削減されるはず

まとめ

もし、Fargate Spot化や メモリ、CPU、task数の調整がすぐできるのならば、Compute Savings Plansの適用はその後にした方が良いかも