マネージドサービス部 佐竹です。
コスト最適化(コスト削減)の一環として Cost Optimization Hub を社内検証アカウントで実際に運用してみたところ、いくつか発見がありましたのでその知見について記載します。
- はじめに
- Cost Optimization Hub 発表当時の印象
- Cost Optimization Hub を実際に運用して得た知見
- 参考 ドキュメントリンク
- まとめ: Cost Optimization Hub をどのように活用するか
はじめに
想定読者層
本ブログは、Cost Optimization Hub についての解説ブログです。コストに深く踏み込んだ内容としている都合、AWS のコスト関連の機能や AWS Organizations 等の機能を既に理解されている方に向けて記載しています。
具体的には、以下の機能についてある程度の知識がある方を想定して記載しています。
- AWS Organizations を利用したマルチアカウント運用と委任管理者
- Billing and Cost Management によるコスト分析
- Savings Plans / Reserved Instances 及びその推奨 (Recommendations)
- AWS Compute Optimizer の組織での利用
- Trusted Advisor の Cost Optimization
- Amazon S3
では、以下本文です。
Cost Optimization Hub はいつリリースされたか
Cost Optimization Hub は2023年11月26日に re:Invent 2023 で発表された、コスト最適化に関連する新機能です。日本語では「コスト最適化ハブ」と翻訳されます。
以下は当時の AWS による発表のリンクです。
本機能は AWS Billing and Cost Management の一部として提供されるものであり、独立した機能とはなっていません。
よって、マネジメントコンソールでは Billing and Cost Management のメニューとして存在しており「Savings and Commitments」に位置しています。
Cost Optimization Hub とはどのような機能か
Cost Optimization Hub をシンプルに説明すると、オプトイン(有効化)することで Billing and Cost Management や AWS Compute Optimizer のコスト最適化に役立つ推奨事項を一か所に集約し、一覧として表示できる機能です。
具体的には、Savings Plans の Recommendations の情報及び、Reservations (Reserved Instances や Nodes)の Recommendations と、AWS Compute Optimizer の推奨事項をまとめて閲覧ができる機能になっています*1。
本機能は AWS Organizations に対応しており、「全アカウント×全リージョン」における推奨事項をまとめて表示し、必要に応じて結果をエクスポートできる点がメリットとなっています。
オプトインすることで、Cost Optimization Hub がアカウントおよび組織内のすべてのメンバーアカウント内の複数の AWS サービスによって生成されたコスト最適化レコメンデーションをインポートすることを許可します。
https://docs.aws.amazon.com/ja_jp/cost-management/latest/userguide/coh-getting-started.html
注意事項として、本機能を有効化してから 24 時間程度経過後に、データが参照可能となります。
Cost Optimization Hub を有効にすると、 は Compute Optimizer AWS などのさまざまな AWS 製品からコスト最適化レコメンデーションのインポート AWS を開始します。Cost Optimization Hub がサポートされているすべての AWS リソースのレコメンデーションをインポートするまでに、最大 24 時間かかる場合があります。
https://docs.aws.amazon.com/ja_jp/cost-management/latest/userguide/coh-getting-started.html
委任に関する補足
Cost Optimization Hub は委任に対応しており、委任管理者としてメンバーアカウントを登録することが可能です。
設定画面は「Billing and Cost Management」の左端メニューから「Cost Management Preferences」を選択後、上部のメニューから「Cost Optimization Hub」を選択した後に表示される以下の画面です。
ここで「Delegated administrator」にチェックを入れ、委任したいメンバーアカウントを選択した後「Save preferences」を押下します。
Cost Optimization Hub の管理者として、組織のメンバーアカウントを委任できます。管理者を委任すると、組織に代わって管理アカウントを使用して Cost Optimization Hub にアクセスして管理する必要がなくなります。これにより、セキュリティの AWS ベストプラクティスを採用することもできます。このベストプラクティスでは、可能な場合は管理アカウント以外の責任を委任することを推奨しています。
https://docs.aws.amazon.com/ja_jp/cost-management/latest/userguide/coh-delegated-admin.html
Cost Optimization Hub 発表当時の印象
私はエンドユーザ様のコスト最適化(コスト削減)コンサルティングを行う中で、Savings Plans 及び Reserved Instances の Recommendations と、AWS Compute Optimizer の推奨事項を全て閲覧し、それらをまとめてレポートするという対応を必ず実際させていただいています。
このため、本機能が発表された当時はあまり魅力を感じていませんでした。何かしら新しい機能が追加されたわけではなく、情報を一か所に集約しているのみという理解だったからです。
もとより、Savings Plans 及び Reserved Instances の Recommendations は、AWS Organizations のマネジメントアカウント(管理アカウント)で表示することで「全アカウント、全リージョンの推奨」が各サービスごとに確認できました。
またこれらの推奨は「Download CSV」からローカルで分析することも容易でした。実際に Excel でピボットテーブルを用いた集計を行っている例も以下のブログ内で紹介しています。
加えて、AWS Compute Optimizer においても結果は Region 別にまとめて出力が可能となっています。
これらの理由から「Cost Optimization Hub」をわざわざ使う必要が実際あるのか、という気持ちになってしまっていたのです。
しかし、物は試しとして実際に弊社の社内検証アカウントで運用をしてみたところ、いくつかの発見がありました。本ブログではこの発見/知見の共有が本題となります。
Cost Optimization Hub を実際に運用して得た知見
ここから知見を記載していきます。個人的に重要度が高いと感じた順に記載してあります。
Cost Optimization Hub オリジナルの推奨項目が実装されている
最初の発見は、Cost Optimization Hub にしかない推奨項目(コスト最適化戦略)が実装されているという点です。
Cost Optimization Hub の運用を開始するにあたり、まず以下の AWS ドキュメントを確認しました。
ここには Savings Plans 及び Reserved Instances の Recommendations と、AWS Compute Optimizer から取得できる項目以外はないと考えていたのですが、「Stop」として アイドル状態または未使用のリソースを停止して、リソースコストを最大 100% 削減します。
というコスト最適化戦略が用意されていることがわかりました。
Compute Optimizer に明るい方はここで「ハッ」とされるかもしれません。Compute Optimizer にはこの「Stop」という推奨は表示されないのです。
実際に Cost Optimization Hub の結果を確認したところこの「Stop」の推奨がいくつか確認できました。またこれらの推奨は「Recommendation source」として「Compute Optimizer」が表示されます。
Compute Optimizer の本来の機能においては表示がされない推奨項目が、何故 Cost Optimization Hub に存在するのか気になったため AWS サポートいくつか質問してみました。その回答をサマリーで紹介します。
- Cost Optimization Hub の「Stop」の推奨は Compute Optimizer を利用している機能である
- 「Stop」の推奨に表示される条件があり、それに適合する場合に表示される*2
- 分析対象期間中、30時間の稼働があった EC2/RDS インスタンスは既に停止されていたとしても推奨される場合がある
- 3つ目は Stop の推奨が出ている旨を各インスタンスの利用者に連携したところ、既に停止しているという回答が複数寄せられましたため、サポートに問い合わせを行ったという経緯です
ということで、まずこの「Stop」の推奨という点が1つ目の知見です。
FAQ との推奨項目の不整合について
以下の Cost Optimization Hub の FAQ には What types of cost optimization recommendations does Cost Optimization Hub support?
という項目に cost optimization strategies
として5つのコスト最適化戦略が紹介されています。
その5つとは、「Rightsize」「Upgrade」「Graviton migration」「Purchase Savings Plans」「Purchase Reserved Instances」です。
ここに「Stop」が記載されていません。しかし Stop は「公式ドキュメント」には記載があり、実際に動作していることから、FAQ では不整合が起きている状況となっています。念のため注意してください*3。
情報集約の手間が省ける
先程、Savings Plans 及び Reserved Instances の Recommendations や AWS Compute Optimizer の情報集約は比較的容易に可能だという内容を記載しました。
ですが、Cost Optimization Hub の方がより手軽に集約済みの情報にリーチできます。
というのも、Savings Plans 及び Reserved Instances の Recommendations はダウンロードができますが、サービスごとにしか取得できません。
よって全てのサービスの推奨情報の集約を行うためには Savings Plans、次に RDS、ElastiCache、Redshift、OpenSearch・・・と「Service」を切り替えながら、それぞれ CSV をダウンロードした後にデータをマージする必要があります。
AWS Compute Optimizer も情報の Export はリージョン別となるため、メインで利用する東京リージョン以外を取得し忘れる可能性もあります。
つまりは、Cost Optimization Hub を利用することでこれらの運用の手間を省略できるのが利点です。
ただし条件の組み合わせに注意
Savings Plans 及び Reserved Instances の Recommendations は、推奨の表示オプションによってその値が変化します。上画像の赤枠内がその設定箇所です。
このオプションが Cost Optimization Hub ではどうなるかなのですが、「Group related recommendations」にチェックがされている場合は Payer account level で Compute Savings Plans を「3年×全額前払い(AllUpfront)」で買うという推奨のみを表示します。
確かにこの組み合わせは最適解の1つですが、それ以外の推奨を見たい場合もあるでしょう。
この場合「Group related recommendations」のチェックを外すことで、EC2 Instance Savings Plans、Compute Savings Plans それぞれの全ての組み合わせを表示することも可能です。
このようにすると「期間×Payment option」の合計6種類が全て表示されるようになります。それと同時に、一覧の「Top recommended action」という項目名が「Recommended action」に変わります。
ただ、Based on the past(Lookback period in days)は7日、30日、60日が本来選択可能ですが、Cost Optimization Hub の情報は「30日」固定となっているようでした。
チャート(円グラフ)の視認性が良い
先程も Cost Optimization Hub の画面キャプチャとして紹介している画像になりますが、デフォルトでトップページに表示されるこのチャート(円グラフ)が非常に見やすいです。
これを見ると「RDS の RI がまだまだ買えていないのか」と判断できます。他には「検証環境のため、常時稼働の RDS が多くあるのは想定外。意図せず常時稼働をしている RDS を減らす必要があるな」などと考えるきっかけになります。
また、左上の「Aggregate estimated savings by (※設定ごとの推定節約額合計)」はデフォルトでは先の通り「Resource type」となっていますが、これを変更して表示の切り替えが可能です。
上画像は AWS アカウント別に節約機会の合計額を足し合わせたものです。アカウント別の SP/RI そして Compute Optimizer の節約機会がこのように可視化される点も非常に強力です。
このように Region 別で結果を確認すると、思った以上に東京リージョン以外が利用されており、節約の機会があることが判明することもあるでしょう。またコスト配分タグにも対応しており、付与済みのタグ別表示が可能です。
さらに右上の設定で「Table」にすることで数値の一覧に切り替えることも可能です。
フィルターが充実している
Cost Optimization Hub には検索用のフィルターがあり、そこで様々な絞り込みが可能です。
少々分かり難いですが、「東京リージョン」かつ「EBS Volume」と「RDS DB Instance Storage」の結果だけに絞り込んで、ストレージに注目した結果を表示してみました。
このフィルターはチャートだけでなく、「View opportunities」を押下して確認ができる元データの一覧にも効果があります。
CSV に出力せずとも元データの視認性が良い
Cost Optimization Hub の画面右下に「View opportunities」があり、これを押下すると詳細(根拠となった元のデータ)が確認できる画面に遷移します。
Savings opportunities の画面右上にある設定「Group related recommendations」については先ほど記載しましたため、「Create recurring export to Amazon S3」について触れます。
「Create recurring export to Amazon S3」は名称の通り情報を S3 Bucket へと定期的に(毎日)出力する機能です。押下すると Billing and Cost Management の「Data Exports」にジャンプします。
本機能は、以下の通り2024年6月21日に新しく追加された機能です。
ただ、この Savings opportunities の一覧で表示されている内容は、このまま閲覧するのに十分可視性が良いと感じます。ちょっとした調査であれば、わざわざエクスポートをせずとも、このままマネジメントコンソールで検索してしまえるため、この点でも有用な機能だと感じました。
Cost Optimization Hub の更新頻度は日次
Cost Optimization Hub の結果を更新するような機能がないため、頻度をサポートに確認したところ「日次(Daily)」とのことでした。
ただし、日次だとしてもどのタイミングで更新されるかは公開可能な情報が無いとのことです。
MemoryDB の RI の推奨は対象外の模様
先にも紹介しました上記の AWS ドキュメントをよく見てみると、「Purchase Reserved Instances (reserved nodes)」の「Resource type」には MemoryDB の推奨が含まれていないことがわかります。
ドキュメントの通りであれば、MemoryDB の Reserved Nodes の推奨は Cost Optimization Hub に掲載されないかもしれませんので、念のため気にしてみてください*4。
参考 ドキュメントリンク
以下に、本機能に関連する AWS 公式ドキュメント及びブログのリンクを掲載しておきます。合わせて参考としてください。
まとめ: Cost Optimization Hub をどのように活用するか
本ブログでは、コスト最適化(コスト削減)の一環として Cost Optimization Hub を社内検証アカウントで実際に運用した中で得られた知見について記載しました。
複数の画面キャプチャを用いてご説明させて頂いた通り、「情報の集約」の手間を削減するだけではなく、チャートによる分析時の「視認性の高さ」、そして元データの閲覧及び検索性の高さが非常に良い機能だと感じました。
活用方法としては以下の流れが良いでしょう。
- まずマネジメントアカウントから組織で Cost Optimization Hub をオプトインする
- AWS Compute Optimizer の値があることで Cost Optimization Hub の情報がより充実するため、合わせて有効とする
- 出力結果を確認後、AWS アカウント等を目安として、推定節約額合計が大きい順に優先度「高」とし、担当者に情報をエスカレーションする
- 元データを詳しく確認したい場合には、SP/RI の推奨画面や AWS Compute Optimizer の元データを閲覧する
- より根拠を求める場合には AWS Cost Explorer による過去の費用分析を追加で行い、補強する
Cost Optimization Hub はコスト最適化をスタートするために「ひとまず有効として情報を閲覧する」には最適なサービスの1つでしょう。
活用するためにはまずは有効化する必要がありますので、是非一度有効化し、情報を確認してみてください。Cost Optimization Hub の利用料は無料です。
以上で本ブログは終了です。
では、またお会いしましょう。
*1:残念ながら現時点では、Trusted Advisor のコスト最適化項目については集約されません
*2:条件及びロジックは公開されないものでした
*3:AWS にフィードバック済のため、いずれ修正されると思われます
*4:MemoryDB を利用しているエンドユーザ様も稀なため、実環境での動作確認ができませんでした
佐竹 陽一 (Yoichi Satake) エンジニアブログの記事一覧はコチラ
マネージドサービス部所属。AWS資格全冠。2010年1月からAWSを利用してきています。2021-2022 AWS Ambassadors/2023-2024 Japan AWS Top Engineers/2020-2024 All Certifications Engineers。AWSのコスト削減、最適化を得意としています。