ECSコスト削減のブレイクアウトセッションを聴いてきた話
📣 LT内容
私が所属するMisocaチームでどれだけコスト削減を行っているか紹介
mizukmb.icon 自己紹介
https://gyazo.com/ad5fe4db957398f93e5399c24c877fcc
入社6年目
聴いてきた発表(CON308)
Reduce your operational and infrastructure costs with Amazon ECS
https://gyazo.com/e3a61e9bcbfdffc6fc5bd89594fda47d
(前半) AWSのプロダクトマネージャがAWS ECSのコスト削減方法について紹介 (後半) CleverTap社の事例紹介
AWS公式からアーカイブ動画がYouTube上で公開されています
『reinvent2022 CON308』でググって見つけられます
紹介されていたECSコスト削減手法
1. ECSタスクのサイズ(垂直スケーリング)
2. ECSタスクの数(水平スケーリング)
3. ECSクラスターのキャパシティを適切に調整する
4. ハードウェアタイプの選択
5. キャパシティタイプの選択
6. Savings Plansの購入
1. ECSタスクのサイズ(垂直スケーリング)
https://gyazo.com/f77ec308483ea3ce424ddd08a7c50f66
ECSタスクのCPUやメモリをワークロードに適切なサイズに調整しましょう
上のスライドでは、「CPUが100%に張りついているから増やすべきと考えると思うけど、おそらくメモリを減らす方が重要」と説明
メモリを減らした分だけコスト削減!!
重要なのはCPU, メモリ使用率のメトリクスを観察して適切な値を知る事
2. ECSタスクの数(水平スケーリング)
https://gyazo.com/256004e07dea3fc374b3f07542e74f9a
ECSタスクの数を必要な時に増やす(減らす)仕組み
閾値のターゲットとして以下が候補となる
ECSタスクのCPU, メモリ使用率
ALBの平均レイテンシ、SQSのキューの長さ
等々……
3. ECSクラスターのキャパシティを適切に調整する
https://gyazo.com/b34ff0adfb52c8f3b255a829a165baff
キャパシティ == 単体のECSタスクに割り当て可能な計算資源
例えばECS on EC2な構成の場合、EC2インスタンスのCPUやメモリは使い切っているかを確認する
発表では、EC2インスタンスのCPUやメモリを使い切るようにECSタスクの数や割り当てるCPUやメモリを調整するのは難しいと説明
Auto Scalingの設計も難しくなる…
必要最小限でCPUやメモリをECSタスクに割り当てる事ができるFargateがおすすめと話してた
4. ハードウェアタイプの選択
https://gyazo.com/b84e4b3ffa9cc415549fdf2c866c3664
x86ベースのインスタンスと比べると性能やコスト面でGravitonが優秀
5. キャパシティタイプの選択
https://gyazo.com/eaaad0743c0f16ed6edd35c4dc78e99a
最大90%の割引が期待できる
Fargate Spotは突然中断する事があり、中断2分前に SIGTERM を送信する
これを踏まえて、中断しても問題ないようにワークロードを設計する必要がある
例: オンデマンドとFargate spotを半々で稼動させて可用性を維持しつつコスト削減
6. Savings Plansの購入
1年または3年の期間で使用量を事前に購入する事で最大72%の割引を受けられる
割とポピュラーなコスト削減手段
Misocaはどのくらいコスト削減できているか…
table:コスト削減表
1. ECSタスクのサイズ(垂直スケーリング) ◯
2. ECSタスクの数(水平スケーリング) ◯
3. ECSクラスターのキャパシティ ◯
4. ハードウェアタイプの選択 ×
5. キャパシティタイプの選択 △
6. Savings Plansの購入 ◯
4. ハードウェアタイプの選択 ×
AWS Gravitonを使ってないので採用できるか検討したい
5. キャパシティタイプの選択 △
Fargate Spotは採用していないが、Savings Plansを使っているのでコスト削減にはなっている
まとめ
ECSコスト削減のブレイクアウトセッション(CON308)を聴いてきました
1. ECSタスクのサイズ(垂直スケール)
2. ECSタスクの数(水平スケール)
3. ECSクラスターのキャパシティを適切に調整する
4. ハードウェアタイプの選択
5. キャパシティタイプの選択
6. Savings Plansの購入
Misocaはそこそこコスト削減できてました 😃
(付録)Misocaはどのくらいコスト削減できているか詳細版
1. ECSタスクのサイズ(垂直スケーリング) ◯
過去2〜3ヶ月のメトリクスを観察してvCPU, メモリサイズを決定した
2. ECSタスクの数(水平スケーリング) ◯
ALBのアクセス数から閾値を定めてAuto Scalingを設定した
3. ECSクラスターのキャパシティ ◯
Fargateを採用
4. ハードウェアタイプの選択 ×
AWS Gravitonは使っておらず、要検討
5. キャパシティタイプの選択 △
Fargate Spotは使ってないがSavings Plansを購入しているため
優先順位は高くないはず
6. Savings Plansの購入 ◯
一年分を購入している