マネージドサービス部 佐竹です。
2023年11月16日に AWS Cost Explorer に嬉しい機能追加(設定オプションの追加と整理)がありましたのでご紹介します。
はじめに
AWS Cost Explorer は、AWS 利用料の分析に有用なツールであり、特に AWS Organizations を利用したマルチアカウント運用においてコスト管理に欠かせない存在になっています。
その AWS Cost Explorer に以下の通りアップデートのアナウンスがありました。
アップデート内容は以下の2つです。
Historical data
: Monthly (月) 単位での複数年データ (最大38か月の過去データ) を閲覧可能となるオプションの追加Granular data
: Daily (日) 単位での過去14日分のデータにおいて、各サービス別のリソースレベルデータが閲覧可能となるオプションの追加
またこれに加えて以下のように既存のオプションが修正されました。
- Hourly granularity:
Paid feature
である Hourly (時間) 単位での過去14日分のデータにおいて、EC2-Instance のリソースレベルデータのオプションが独立
これらについて、詳しく見ていきたいと思います。
なお、以下の AWS 公式ドキュメントも合わせてご確認ください。
Historical and granular data settings
今回設定が追加されたのは、以前「Preferences」と記載のあったリンクのページで、アップデートによって「Cost Management Preferences」という名称のリンクに変わりました。
もしくは「AWS Cost Management > Settings」こちらの URL リンクからジャンプしてください。
なお、本設定項目は AWS Organizations におけるマネジメントアカウント(Payer)でのみ可能であり、メンバーアカウントでは設定できません。
37か月前までの費用が Monthly で確認が可能となるオプションの追加
これまで、Cost Explorer では、「13か月前」までのデータを閲覧可能でした。
2023年11月22日 現在であれば、当月である2023年11月分、そして前月の2023年10月からちょうど1年前の2022年10月の利用料が閲覧できます。つまり、当月を含めば14か月分のデータにアクセスできる仕様でした*1。
またこの期間中は、情報の粒度(Granularity)が「Monthly」でも「Daily」でも、それぞれ閲覧が可能です。
今回追加された「Multi-year data at monthly granularity」というオプションは、これを有効にすることで「最大38か月間」のコストを「Monthly」の粒度で確認が可能となるオプションです。ようは、2年分さらに過去に遡れるようになりました。
少々ややこしいので、表で整理します。
Granularity | 閲覧が可能な期間 | 設定 |
---|---|---|
Daily | 13か月前まで閲覧可能 | デフォルト |
Monthly | 13か月前まで閲覧可能 | デフォルト |
Monthly | 37ヶ月前まで閲覧可能 (+24か月) | オプション |
残念ながら、Daily ではこれまで通り14か月間(13か月前まで)のままです。
37か月前のデータを確認する
実際に試してみます。
画面右上の「Date Range」を設定します。
2023年11月現在では、37か月前の2020年10月からの Monthly データが閲覧可能でしたので今回はその最大幅を設定しました。
また、データレンジの「Auto-select range (Relative)」に「3 Years」が追加されており、これを押下すると「2020/11/01 ~ 2023/10/31」が設定されました。2020年10月は省かれてしまいますが、このボタンを使うのが一番楽そうです。
注意事項
AWS 公式ドキュメントに注意が記載されています。
We will disable multi-year data for your organization if no one in the organization accesses it in three consecutive months. However, if you need the data, you can re-enable it in Cost Management preferences.
(和訳)
連続3か月間アクセスがない場合、Multi-year data 設定は自動的に無効にされます。ただし、データが再度必要な場合は設定から再度有効にすることができます。
上記の通りですが、長期間利用されない場合、自動的にオフにされてしまうとのことです*2。
過去14日分のデータにおいて、各サービス別のリソースレベルデータが閲覧可能となるオプションの追加
「Resource-level data at daily granularity」は、14日間のリソースレベルデータを閲覧可能となるオプションです。
これを有効とすることで、有効にしたサービスはそのリソースでの(つまりは各リソースにおける ARN を利用しての)検索が可能となります。
実際に試してみます。今回は、RDS で試してみましょう。
Cost Explorer の右端のフィルターから「Resource」を選択し、「Amazon Relational Database Service」をまずは選択します。その後、リソースの一覧がその下に表示されるため、その中から ARN を選んで選択します。
すると、上画像の通りリソース別の利用料が確認できます。
過去14日間(2023年11月22日現在では、同日を含まない11月8日から11月21日までの2週間)のみではありますが、コスト配分タグなしでリソース別の利用料を確認できるため、例えばフォレンジック調査などで有用になるかもしれません*3。
EC2-Instance のリソースレベルデータのオプションが独立
Hourly granularity (up to 14 days of past data):Paid feature と記載があるように、有料のオプションである「Hourly」の粒度での調査では、もともと2つの設定が1つのオプションで有効になる仕様でした。
その2つの設定が、今回のアップデートで分離しました。
- Cost and usage data for all AWS services at hourly granularity (without resource-level data)*
- EC2-Instances (Elastic Compute Cloud - Compute) resource-level data*
本ブログ内で Daily 粒度での各サービス別のリソースレベルデータについて記載しましたが、既存の有料オプションによって EC2-Instance のリソースレベルデータだけは Hourly で閲覧が可能でした。
しかし、このオプションは Hourly の粒度を有効化すると同時に有効化されてしまい、外せないものでした。
今回、EC2-Instance のリソースレベルデータも Daily で閲覧可能とするオプションが出ましたので、本オプションが不要な方はこれを外すことで少しのコスト削減になると考えられます。
また先ほどの画像の右側に「Estimated monthly usage summary」が出ている通り、オプションを有効化することでどの程度のコストインパクトがあるのか事前に計算してくれる画面も追加されています。
設定の反映にかかる待ち時間について
設定の反映には画面右下の「Save preferences」を押下する必要があります。
また、これらの設定変更ですが、設定の反映までに最大48時間程度かかります。
このため利用したい場合は、余裕をもって設定ください。今回、弊社の社内アカウントでは設定の反映に50時間程度待ちました。
Cost Explorer の利用料について
念のため、Cost Explorer の費用について触れておきます。
上記ドキュメントから抜粋となりますが、費用が掛かるのは2種類です。
- AWS Cost Explorer API
- AWS Cost Explorer Hourly Granularity
1つ目は、AWS Cost Explorer API の利用料で、1回のリクエストにつき「$0.01」が課金されます。
2つ目に、Hourly の粒度を Cost Explorer で閲覧可能とする2つのオプション(先に記載した2つに独立したもの)が有料となっています。
以下は公式サイトの和訳となります。
Cost Explorer は、使用量レコードあたり 0.00000033 ドルの日次料金で時間単位の粒度を提供します (これは、毎月 1,000 個の使用量レコードあたり 0.01 ドルに相当します)。使用状況レコードは、特定のリソースと使用タイプの明細項目に対応します。 たとえば、1 つの EC2 インスタンスを 24 時間実行すると、1 時間ごとの粒度で 1 日に 24 個の個別の使用状況レコードが生成されます。
Cost Explorer は、過去 14 日間の Cost Explorer でホストされている時間ごとの合計使用量レコードに基づいて毎日請求します。たとえば、過去 1 か月間毎日 1 つの EC2 インスタンスを終日実行し、時間単位の粒度を有効にしている場合、Cost Explorer は 1 日あたり 336 レコード (24 時間 X 14 日) をホストし、0.0001 ドル (レコードあたり 0.00000033 ドル X 336) を請求します。 毎日使用すると、月額料金は 0.003 ドル (1 日あたりの料金 0.0001 ドル X 30 日) になります。
Hourly (Paid feature) の費用を見積もるには
Hourly の費用見積もりの計算を、上の文字にある通りに実施してしまうと煩雑なため、ざっくりと計算する方法をお伝えします。
先ほど、「Estimated monthly usage summary」について触れました。この最下部にある「Total hourly usage records 6,600,032」に注目します。そしてこの金額の下に we charge $0.00000033 for each usage record daily
と記載があります。ようは、毎日「6,600,032 * $0.00000033」を請求しますよ、ということです。
このため「6,600,032 * $0.00000033 * 30日(or 31日)」がおおよその月額費用になります。30日で計算すると $65.34/month 程度になります。
実際に本費用が請求される Cost Explorer 上の Usage「USE1-CostDataStorage」を1年分確認すると、$60程度であることがわかります。また、2023年10月は「$63.80」と近似していました。この通り、Total hourly usage records
が見積もりとして十分に使えることがわかりました。
結論として、Cost Explorer の Hourly (Paid feature) の費用見積もりは「Estimated monthly usage summary」に表示される「Total hourly usage records
× $0.00000033
× 日数」で可能となっています。是非お役立てください。
まとめ
本ブログでは、2023年11月16日に AWS Cost Explorer に嬉しい機能追加(設定オプションの追加と整理)がありましたのでご紹介しました。
具体的に以下の3点について説明すると共に、 Hourly オプションの費用見積もりについても記載しました。
- 37か月前までの費用が Monthly で確認が可能となるオプションの追加
- 過去14日分のデータにおいて、各サービス別のリソースレベルデータが閲覧可能となるオプションの追加
- EC2-Instance のリソースレベルデータのオプションが独立
個人的には EC2-Instance のリソースレベルデータのオプションが独立したことを嬉しく思っています。この機能を使うことは稀のため、長らくオフとしたかったのですができませんでした。オフにすることによる費用へのインパクトはわずかですが、オフにできるのは助かります。
ますます便利になった AWS Cost Explorer で、引き続きコスト最適化のための調査や効果の確認を行って頂ければと存じます。
では、またお会いしましょう。
*1:2022年10月から2023年9月までの12か月間に加えて、2023年10月と11月を合わせた場合
*2:サステナビリティに配慮し、AWS 側の消費するリソースを少しでも減らしたいという思いがあるのでしょう
*3:攻撃者は Name タグなどのコスト配分タグをわざわざ付与して攻撃しないと考えられるため
佐竹 陽一 (Yoichi Satake) エンジニアブログの記事一覧はコチラ
マネージドサービス部所属。AWS資格全冠。2010年1月からAWSを利用してきています。2021-2022 AWS Ambassadors/2023-2024 Japan AWS Top Engineers/2020-2024 All Certifications Engineers。AWSのコスト削減、最適化を得意としています。