
Effective Savings Rate(ESR)を利用して RI/SP コミットメントの ROI を評価しよう!
皆さん、コミットメントしていますか?!
クラウドコストを最適化するアプローチの一つに、AWS でいえば RI や SP といった長期間の利用を約束(コミット)することで、通常より安い単価で特定のサービスを利用するレート最適化と言われる方法があります。
参考資料:
AWS Black Belt Online Seminar - Savings Plans
レート最適化は(事前に無駄がない状態にすることが望ましいですが)アーキテクチャやリソースの設定を伴わずに実施可能で、ケースによっては大きなコスト削減となるため、広く採用されていますが他のコスト最適化の方法とは異なり、利用者が先に利用費を支払う(または支払うことを約束する)ため、その効果(ROI)の管理はとても重要です。
既存の指標で ROI を評価するには課題もあり、今回はその課題に対して Effective Savings Rate(以降 ESR)という指標を紹介しながら、実際に手元の環境で、指標を算出していきます。
※ 基本的には AWS をベースにしていますが、ESR 自体は他クラウドサービスでも同様の考え方が採用されています。
Effective Savings Rate (ESR) compares savings to the list cost to calculate an overall percentage savings. This number helps show the overall impact of all discounts.
既存指標での ROI 評価における課題
コミットメントしたことで、どのくらい節約が出来たのかを効果として評価したいわけですが、既存のコミットメント(RI や SP)に関連する代表的な指標である「使用率(Utilization)」「カバレッジ(Coverage)」「削減額(Total net savings)」では、課題があるとされています。
- 既存指標の限界
各指標は重要でモニタリングする必要がありますが、それだけでコミットメントの ROI 評価は困難です。だいぶ極端な例ですが、カバレッジは 40% より 100% の方がより現状リソースをカバーしており、良いと判断することができますが、実は 120% のオーバーコミットしている可能性もあります(カバレッジは100%までの表記)。その場合は良いコミットメントとは言えません。他の指標やその組み合わせによって数値が大きければ良いというわけではありません。
次の記事が図解付きでわかりやすいため、是非ご確認ください。
- リソース変動があるワークロードへの対応
先の記事を読んでいた時に、使用率とカバレッジをチェックして 100% (オーバーコミットはしない前提)目指せば最高の状態と言えるのでは?と思いましたが、それは "リソースに変動がないワークロードであれば" という条件が付きます。ワークロードの特性としてリソースに変動がないのであれば良いですが、コミットメントのためにリソースを変更しないのはクラウド利用の他メリットが損なわれてしまいますし、大なり小なり変化があるのが大半かと思います。
対象リソースが変化すれば、使用率とカバレッジの値も変化するため、各指標が高い数値であることが、必ずしも良い状態とは言えず ROI を評価する難易度は高まります。
参考情報:
元々、各指標は ROI を評価する目的ではないため、当たり前の課題とも言えますが RI/SP を運用されている方にとって「何を持っていい感じにコミットできていると判断するか」は共通な課題の一つではないかと思います。
ESR(Effective Savings Rate)とは
そこで用いられているのが ESR と呼ばれる指標となります。元々は ProsperOps, Inc. によって定義され、現在は FinOps Foundation が定義する重要な KPI の一つとされています。
実効貯蓄率(ESR)は、コスト削減を実現するためのコミットメントをどれだけ効果的に管理しているかを測定します。ESRは、利用率、カバレッジ率、割引率を1つの指標に統合し、オンデマンド支出と比較したクラウドの節約額の割合を示します。ESRは柔軟性が高く、AWS全体の料金最適化にも、特定のサービスにも適用できます。
指標の計算式は下記となります。(異なる計算式もあります)
引用元:Optimizing AWS Costs with Effective Savings Rate and ProsperOps AI-Powered Automation
純粋な利用費に限定して、複数のパターンで ESR と各指標を算出して、比較をしてみます。
no | ODE Spend | カバレッジ | 割引率 | コミット額 | 使用率 | 利用費 | CSG | ESR |
---|---|---|---|---|---|---|---|---|
1 | $120 | 50% | 50% | 60x0.5=30 | 100% | 60+30=90 | 120-90=30 | 25.0% |
2 | $120 | 75% | 50% | 90x0.5=45 | 100% | 30+45=75 | 120-75=45 | 37.5% |
3 | $120 | 50% | 30% | 60x0.7=42 | 100% | 60+42=102 | 120-102=18 | 15.0% |
4 | $120 | 84% | 30% | 100x0.7=70 | 100% | 20+70=90 | 120-90=30 | 25.0% |
5 | $120 | 50% | 70% | 60x0.3=18 | 100% | 60+18=78 | 120-78=42 | 35.0% |
6 | $120 | 42% | 40% | 50x0.6=30 | 100% | 70+30=100 | 120-100=20 | 16.0% |
7 | $120 | 50% | 50% | 60x0.5=30 | 50% | 90+30=120 | 120-120=0 | 0.0% |
カバレッジでみると no4、割引率では no5 が最も高くなっています。コミットメントの効果(ROI)としては no2 が最も良い状態といえ ESR も最も高い値となっています。
no7 は半分ミスコミットしており、コミットメントした効果が得られていない状態です。これ以上、使用率が下がるとマイナスになりオンデマンドで利用するより高額な状態となってしまいます。
上記では一つのコミットメントを多様なパターンで表記しているため別の観点で最適解を出すことも可能かもしれませんが、実際には複数のコミットメントが存在し、各要素の値も異なるため既存指標では評価が困難です。結果にフォーカスを当てている ESR を用いることで、既存の指標での課題を補いながら、ROI を評価することが出来ます。
参考情報:
算出方法
ここからは下記を参考に AWS アカウントから ESR を算出していきます。データ取得や計算式はいくつかの方法があります。
データ取得方法:
- AWS Cost Explorer CLI
- AWS Management Console
- AWS Cost and Usage Reports(FOCUS 含む)
今回は、最も簡易な AWS Management Console からデータを取得し、ベーシックなワークシートを利用して算出します。
上記以外にも ProsperOps, Inc. が提供するスプレッドシートを利用する方法もあります。
AWS Management Console >>> Billing and Cost Management の各所から以下の項目を取得します。
- 取得したデータを下記のワークシートへ入力
サンプル画像 | アカウントA | アカウントB | アカウントC | |
---|---|---|---|---|
A. Savings Plan オンデマンド相当支出 (EC2、Fargate、Lambda) | $110,000 | $7.78 | $0 | $5,896,475 |
B. リザーブドインスタンスオンデマンド相当支出(EC2) | $205,000 | $0 | $78,340 | $1,560,366 |
C. オンデマンド支出(EC2、Fargate、Lambda) | $70,000 | $0 | $64,490 | $472,885 |
D. オンデマンド相当支出額を計算する(上記のA + B + C) | $385,000 | $7.78 | $142,830 | $7,929,727 |
E. コンピューティング関連貯蓄プランによる貯蓄 | $60,000 | $2.28 | $0 | $2,195,655 |
F. コンピューティング関連の予約インスタンスによる節約 | $105,000 | $0 | $17,865 | $527,450 |
G. RIとSPの節約を計算する(上記のEとF) | $165,000 | $2.28 | $17,865 | $2,723,106 |
- RISP をコミットするためにかかるコスト(ツールや工数など)を入力
※ 実際の運用ではコミットするための試算などの工数もかかるため、この項目を概算でも含めておくと精度が高い評価となります
サンプル画像 | アカウントA | アカウントB | アカウントC | |
---|---|---|---|---|
H. 節約を実現するためのコスト(CMP、サービス、時間、ツールなどのコスト) | $0 | $0 | $1,000 | $500 |
- ESR を算出
ESR | サンプル画像 | アカウントA | アカウントB | アカウントC |
---|---|---|---|---|
(G-H)/D | 42.8% | 29.3% | 11.8% | 34.3% |
0% やマイナスのような明らかに健全ではない状況の場合は、要因を深掘りして是正が必要ですが、他の場合はベンチマークを用いて比較を行います。
以下では、(1) ESRがマイナス、(2) ESRが平均以下、(3) 使用率は低いがESRが平均以上、(4) 使用率は高いがESRが平均以上というセグメントについて説明し、いくつかの推奨アクションを示します。
引用元:https://www.finops.org/wg/how-to-calculate-effective-savings-rate-esr/
2024年のベンチマークでは 23% が平均となります。
アカウントAとC は良い傾向にあり、アカウントBは要検討の状況にあると判断できます。
今回 RI/SP のコミットメント ROI を評価する ESR という指標をご紹介しました。上層部への報告などにおいて、各指標や削減額に加えて ESR を提供することで、よりシンプルに投資対効果を伝えることができるのではないかと思います。
最近では ESR という考え方に加えて CLR(Commitment Lock-In Risk)や EAR(Effective Avoidance Rate), ECOR(Effective Cost Optimization Rate)といったコミットメントやコスト最適化の指標が登場しているようです。皆さんのコスト最適化の取り組みを適切に表す指標がないか確認してみるのも良いかもしれません。