コスト配分タグのバックフィル (Backfill) 機能解説

記事タイトルとURLをコピーする

マネージドサービス部 佐竹です。
新機能として、コスト配分タグのバックフィルが可能になりました。といっても、どのような機能なのかよくわからなかったため検証を実施しました。

はじめに

2024年3月28日に「Backfill cost allocation tags」という新機能が登場しました。

aws.amazon.com

これは AWS における「コスト配分タグ」の新機能です。

blog.serverworks.co.jp

コスト配分タグについては過去、上記ブログで詳しく解説しておりますため、よろしければ合わせてご覧ください。

本ブログではこの「Backfill cost allocation tags」がどのような機能となっているのか解説をします。

コスト配分タグの前提条件

AWS の各リソースに付与したタグの値を元にコストを参照し、分析が可能となる機能が「コスト配分タグ」です。

例えば、以下は Cost Explorer でコスト配分タグとして設定済の「Name」タグを表示した例です。

このように、Name タグ別の利用料が確認できるようになっているのがコスト配分タグの機能です。

そして先にご紹介しましたブログで、コスト配分タグを AWS 利用料へと正しく反映させるためには「前提条件」があることを記載しました。今回は説明を単純化するため、以下の2つの条件に注目します。

  • 条件① 表示したいリソースにタグキー及びタグバリューが付与されている
  • 条件② マネジメントアカウントのコスト配分タグの設定で状態が Active である

「条件②」はマネジメントアカウントでのみ設定が可能です。

コスト配分タグの Activate が行われている例

マネジメントコンソールでの操作画面は上画像のようになっています。

これらの条件の2つともが「どちらも満たされた日から」AWS 利用料にコスト配分タグが掲載されるようになります

最初に注意事項(期待値コントロール)

よくお客様から以下のような質問を頂きます。

「3月に構築した EC2 インスタンスに Name タグを付与するのを忘れていた。4月5日に Name タグを付与したが、3月から今日までの間のコスト配分タグに反映がされない。過去に遡って反映したいがそれは可能か?」というものです。

結論から言うと、これは本機能でも対応が不可能です。というのは、本機能は先の「条件①」に対応する機能ではなく、「条件②」に対応する機能となっているためです。

といってもこれだけではよくわからないと思いますので、これから詳しく解説していきます。

AWS 公式ドキュメント

参考まで、Backfill cost allocation tags についての AWS 公式ドキュメントは以下の通りです。

docs.aws.amazon.com

本ブログは上記ドキュメントを参考にしつつ実環境での検証結果を鑑みて記載しています。

Backfill cost allocation tags 解説

では、本題です。

まずは、上画像のように「Name」タグと「System」タグを利用しているリソースを前提に説明していきます。

横軸は年月です。本リソースでは Name タグは「2023年3月」から付与されており、System タグは「2024年1月」から付与されている状態を示しています。

つまりは「条件①」に関した情報を示しています。ここに「条件②」を表示します。

「条件②」を追加し「Cost Allocation Tags = Active」と「Cost Allocation Tags = Inactive」とで示しました。

この状態から操作していきます。

例: 2024年4月に System タグを Activate する

2024年4月に「System」タグを Activate するとします*1

この場合「条件①」と「条件②」が満たされるのが2024年4月からのため、System タグがコスト配分タグとして AWS 利用料へ掲載されるのは同様に2024年4月からのみです。

Backfill tags を実行するとどうなるか

この状況で、コスト配分タグのバックフィルを実行するとします。

すると、「Cost Allocation Tags = Active」とした日時が指定した年月まで遡って反映されます。

これを図にすると、上画像の通りです。

ただし制限があり、バックフィルが可能なのは最大12か月前までとなっています。つまり、2024年4月現在ではバックフィルは2023年4月までが限度となります。

このため「System」タグは2023年3月までは遡ることができず Inactive のままです

条件①と条件②を満たさないと利用料へは反映されない

重要なのは、バックフィルができるのは「条件②」のみです。「条件①」については別途対応していた過去が必要です。

今回の例では、「System」タグが2024年1月に付与されたため、それ以前は「条件①」が満たせません。

つまり、System タグがコスト配分タグとして実際に利用料へ反映されるのは、2つの条件を満たしている2024年1月からのみです。

Inactive もバックフィルが可能

「Cost Allocation Tags = Inactive」とした設定もバックフィルが可能です。

これを使えば、不要となったコスト配分タグの表示を過去に遡って非表示にするこも可能となります。

ここまでが機能説明です。

実際の操作

では、実際にマネジメントアカウントから操作して結果を確認してみます。

操作における注意事項

先に注意事項ですが、マネジメントアカウントから設定するという点からもわかるように、本機能の影響範囲はメンバーアカウント全てです。影響範囲を予め確認した上で実行してください。

また「特定のタグだけをバックフィルする」ということができません。バックフィルされるのは「現在のコスト配分タグの Active/Inactive の状態全て」です。

コスト配分タグを Activate する

今回 AWS 生成のタグとなりますが aws:cloudformation:stack-id をバックフィルしてみることにします。

まずはこのタグが付与されているリソースを見つけておきます。今回は S3 バケットです。

マネジメントアカウントのコスト配分タグの設定画面に移動し、「AWS generated cost allocation tags」のタブを選択します。

aws:cloudformation:stack-id を選択し、「Activate」を押下します。

設定前の Last updated date に表記がないように、これまで本アカウントで aws:cloudformation:stack-id がコスト配分タグとして設定されたことは一度もありません。

上画像の通り状態が「Active」になればOKです。Last updated date も設定した日時で更新が行われました。

Backfill tags を実行する

「Backfill tags」を押下して操作を進めていきます。

バックフィルを行う年月は、今回最大である2023年4月(April 2023)を選択します。「Confirm」を押下して実行します。

実行中になりました。実行中のバックフィルの詳細を見るには「Backfill tags」を再度押下します。

バックフィルが実行中の旨が表示されています。

今回特に待ち時間は測定しておりませんが、半日程度で完了を確認しました。恐らくですが、バックフィルする期間の長さと、利用しているリソース数及びタグの量に比例して処理時間が長くなると考えられます。

処理が問題なく完了すれば「Succeeded」となります。

なお、「You can submit a backfill request once every 24 hours.」と表示されているように、バックフィルのリクエストは24時間毎に1回のみ実行が可能です。

また、以下の表記がありますが、こちらについては後程記載します。

Cost Explorer refreshes your data once every 24 hours, your backfill won't update as soon as it succeeds. For more information. see Cost Explorer .
To update your Cost and Usage Report with the backfilled tags, see Cost and Usage Report .

コスト配分タグを Cost Explorer で確認する

Cost Explorer で、Dimension に「タグ」を指定し表示します。

Activate されたばかりのコスト配分タグが2023年4月までバックフィルされたことで aws:cloudformation:stack-id がコスト配分タグとして2023年4月から閲覧できる状態になっていました。

これまでであれば、条件①と条件②が満たされた日、つまり「コスト配分タグとして Activate した日から」しか閲覧ができませんでした。

しかし、「条件②」を過去に遡って(バックフィルして)適用することができるようになったため、このようにおよそ1年前までのコスト配分タグを視覚化することができるようになりました。

コスト配分タグを CUR の CSV で確認する

CUR(Cost and Usage Report)は指定した S3 バケットに配置されています。

出力されている CSV ファイルのタイムスタンプを確認すると、バックフィルのリクエストが実行されたと思われるタイミングで12か月前までの CSV ファイルが更新されていることがわかります。

指定が2023年4月までのため「aws-cost-allocation-2023-04.csv」はアップデートされていますが、「aws-cost-allocation-2023-03.csv」はタイムスタンプが April 2, 2023, 17:49:58 (UTC+09:00) のままで更新がされておりません。

今回は「aws-cost-allocation-2023-08.csv」を指定し、S3 Select で簡単に確認してみました。

画像の通り、CSV ファイルのヘッダーにコスト配分タグを示す aws:cloudformation:stack-id が追加されていることが確認できます。

このように、同時に CUR の CSV ファイルもアップデートされたことがわかりました。

補足ですが、Inactive の状態で再度バックフィルを行った結果、CSV ファイルのヘッダーからコスト配分タグが削除されたことも合わせて確認しています。

AWS ドキュメントの謎

公式ドキュメントには以下の記述があります。

Backfill will not update your AWS Cost and Usage Report automatically. To update your AWS Cost and Usage Report with the backfilled tags, see I want to backfill data because I changed the settings of my report in the AWS Cost and Usage Reports user guide.
[翻訳] バックフィルでは、AWS のコストと使用状況レポートは自動的に更新されません。 バックフィルされたタグを使用して AWS コストと使用状況レポートを更新するには、AWS コストと使用状況レポート ユーザーガイドの「レポートの設定を変更したためデータをバックフィルしたい」を参照してください。

https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-allocation-backfill.html

URL リンクを辿ると以下のページが表示されます。

Open a support case to request a backfill of your cost data. In your support case, make sure to provide the report name and the billing period that you want backfilled. For more information on opening a case, see Contacting customer support.
[翻訳] サポート ケースを開いてコスト データのバックフィルをリクエストします。 サポートケースでは、バックフィルするレポート名と請求期間を必ず指定してください。 ケースのオープンに関する詳細については、「カスタマー サポートへのお問い合わせ」を参照してください。

https://docs.aws.amazon.com/cur/latest/userguide/troubleshooting.html#backfill-data

このように「バックフィルでは、AWS の CUR は自動的に更新されないため、サポートケースの起票が必要」と記載がされています。

しかし検証の結果、CUR の CSV ファイルには自動的にコスト配分タグが反映されているようでした。

現在この AWS ドキュメントの表記については AWS サポートに意図を確認しております。何か判明し次第、こちらに追記致します。

2024年4月19日 追記

AWS サポートに確認したところ、CUR 更新にあたり上記の「サポートケースへの問い合わせ」は不要とのことで、ドキュメント側の記載が誤っているとのことでした。今後、どこかで修正されると思われます。

リセラーとしての制限について

弊社の利用料金確認ページは当月10日(前後)をもって前月の利用料の更新を停止するため、それ以降は前月より前の利用料を更新しない仕様です。

よって、個別の Backfill リクエストで CUR に反映頂いたとしても、タグ別明細には反映されません。

まとめ

本ブログでは、新機能であるコスト配分タグのバックフィル (Backfill) について、コスト配分タグの仕様と共に機能の詳細を解説しました。

改めてとなりますが、コスト配分タグを利用料に反映するためには、以下の2つの条件をクリアする必要があります。

  • 条件① 表示したいリソースにタグキー及びタグバリューが付与されている
  • 条件② マネジメントアカウントのコスト配分タグの設定で状態が Active である

バックフィル機能はこのうちの「条件②」に関係する機能です。

具体的には最大12か月前まで、現在のコスト配分タグの Active / Inactive の設定を過去に遡って反映する機能です。

本機能を利用すれば、新たにコスト配分タグとして分析対象とした既存のタグを過去に遡って分析することが可能になります。また、分析不要となったコスト配分タグを過去に遡って無効化することも可能です。

ただし「条件①」に関しては効力がありません。この点には注意してご利用ください。

以上となります。

では、またお会いしましょう。

*1:ここでは4月1日の UTC 0時に実施したとみなしてください

佐竹 陽一 (Yoichi Satake) エンジニアブログの記事一覧はコチラ

マネージドサービス部所属。AWS資格全冠。2010年1月からAWSを利用してきています。2021-2022 AWS Ambassadors/2023 Japan AWS Top Engineers/2020-2023 All Certifications Engineers。AWSのコスト削減、最適化を得意としています。