この記事は、CyberAgent Group SRE Advent Calendar 2023の25日目の記事です。
昨今、為替の影響でクラウドコストに頭を悩ましている人も多いのではないでしょうか?
FinOpsなど、クラウドコスト最適の為の取り組みを弊社でも日々行なっています。
今回は、AWSのコスト体系について理解を深めるためにまとめてみました。
利用料金の分類
AWSの利用料金は、下記の二つのタイプに大枠分けることが出来ます。
- リソースの「使用量」に対する料金
- ネットワーク転送量、ストレージ使用量、リクエスト量、データ処理量など
- リソースの利用料に比例して費用が増加する
- リソースの「存在」に対する料金
- インスタンス起動、ストレージサイズ、エンティティの存在など
- リソースの存在時間に比例して費用が増加する
しかし、提供されるサービス毎に課金条件が異なるので、単純に「使用量」と「存在」に分類することはできません。また、一般的な使用料金だけでなく、オプション料金や無料利用枠なども考える必要があるため、とても複雑です。
各サービスには、必ず料金説明のページがあるので、どういった課金体系なのか確認してから、サービスを利用しましょう。
コストの把握
AWSでは、コストを把握、最適化するためのサービスやツールが用意されています。
-
AWS Billing Console
- AWSから発行された請求を確認できる
- サービス毎に集約された月毎の利用コストを確認できるが、詳細までは分からない
-
AWS Cost Explorer
- アカウント配下の料金について調べられる、
- 多機能なので、使いこなすのが難しい
-
AWS Trusted Advisor
- コスト最適化のヒントを提案してくれる
- ただし、なぜそのリソースがあるかを知ることはできない
無駄なコスト
コスト削減する上で、無駄なコストを見つけることが重要だと思います。では、無駄とは何なのでしょうか?
下記は、考えられる一例です。
- 放置されているSnapshot
- 適切でないストレージクラスが設定されているS3オブジェクト
- オーバープロビジョニング
- E.g. 余裕があり過ぎるAutoScalingの設定、大き過ぎるインスタンスタイプ、多過ぎるEBS容量
- 無駄な通信
- E.g. AZ間通信、Cache出来るのに、されていない通信
この様な無駄は、Cost Explorerでは、本当に無駄なのかは分からないと思います。
無駄な可能性のあるリソース情報は、Trusted Advisorのコスト最適化に出力してくれるので、まずはそちらを活用するのが良いです。
費用対効果
コスト最適化にかかるコストやそれによって得られるインパクトも意識する必要があります。下記は、作業コストとインパクトを元にした、費用対効果の優先順位になります。
作業しやすさ | 作業内容 | インパクト |
---|---|---|
1 | 放置リソースの削除 | 全リソースにかかっているコスト削減 |
2 | インスタンスサイズの見直し | E.g. 一つ下のサイズにすることによってコストは半分になる |
3 | ストレージクラスの見直し | E.g. S3のオブジェクトクラスやEBSタイプ変更による差分のコスト削減 |
4 | ネットワークコストの見直し | E.g. AZ間通信コストの削減 |
5 | API、サービスコストの見直し | E.g. アーキテクチャ変更による差分のコスト削減 |
費用対効果の話をしましたが、過剰なリソース削減は信頼性とのトレードオフであることを忘れてはいけません。特に、パフォーマンスやロバスト性への影響考慮しないと信頼性低下に繋がってしまうこともあります。
コスト削減は必ずしもリソースやアーキテクチャの見直しだけではないと思います。また、それぞれの事業フェーズにあったコスト最適化が重要だと思います。今回の記事の元ネタになっているAWSのコスト最適に向けた取り組み(FinOpsの文化醸成など)についても、来年は発信していければと思っているので楽しみに待っていてください。
最後に
まずは今回CyberAgent GroupのSREで、Adevent Calendarをやろうという話をして、快く執筆してくれたメンバーには深く感謝を伝えたいです。
素晴らしい記事が沢山あるので、是非他の記事も見ていただけると嬉しいです。
2024年は、今年以上にCyberAgent GourpのSREの取り組みを発信していければと思っているので、お楽しみに!
それでは、みなさん良いお年をー