AWS Cost Categories で利用料金を任意のグループで自動的に分類する

独自のコストカテゴリを設定しよう
2022.04.28

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

ちゃだいん(@chazuke4649)です。

今回はあまり知られていない AWS Cost Categories を使用して、利用料金をチーム単位で表示させてみたいと思います。

AWS Cost Categories とは?

3行まとめです。

  • AWS Billing Dashboard における1つの機能
  • 任意のルールでコストをグルーピングし自動的に分割表示してくれる
  • そのグループは「コストカテゴリ」として Cost ExplorerやAWS Budget等のフィルタとしても利用可能

参考情報

機能紹介ページ。まずはこちらがわかりやすいです!

AWS Cost Categories - アマゾン ウェブ サービス

公式ブログでより具体例を交えて理解できます。

Organize your cost and usage data with AWS Cost Categories | AWS Cloud Financial Management

Public Beta: AWS Cost Categories | AWS Cloud Financial Management

ユーザーガイド

Managing your costs with AWS Cost Categories - AWS Billing

方針

AWS Organizations環境下での複数のAWSアカウントを以下の3つのチーム(部門)に分けてます。

  • 管理部門 (ManagementTeam)
  • 開発部門A (AppleDevTeam)
  • 開発部門B (BananaDevTeam)

つまり、それぞれに所属するAWSアカウントをグルーピングします。

また、開発部門AとBが共通で使用しているSandbox環境用のAWSアカウントのコストはこの2つで按分するものとします。

設定してみる

設定作業は管理アカウントにて行います。

まずはマネジメントコンソールを開き、 billing で検索して開きます。

左側ペインに Cost Categories がありました。

「コストカテゴリを作成」に進むと、まず、コストカテゴリの名前を決めます。

今回はいろんなチームで分けたいということで SampleTeams にします。

次の「カテゴリルールを定義」がメインの設定画面となります。

管理部門(ManagementTeam)のルール/グループを作ります。

ディメンションにてルールを指定しますが、ルールの対象となる項目は以下から選べます。

  • AWSアカウント
  • コスト配分タグ
  • 料金タイプ
  • サービス
  • コストカテゴリ(Cost Categoriesで作った別のカテゴリからグループを選ぶことも可能)

今回はAWSアカウントごとに部門が分かれているので、AWSアカウントで対象のAWSアカウントIDを選びます。

※今回はOrganizations/Control Tower環境ということで、管理アカウント・監査アカウント・ログアーカイブアカウントとします。

開発部門A(AppleDevTeam)のルール/グループを作ります。

開発部門B(BananaDevTeam)のルール/グループを作ります。

これはチームではありませんが、後で按分するためにSandbox用のAWSアカウント用にルール/グループを作ります。

続いて、「分割請求の定義」にてどのグループをどのグループたちにどう分割させたいのか?を決めることができます。

以下の内容は、「Sandbox」を「AppleDevTeamとBananaDevTeams」で「それぞれのコストに比例して」割り当てる。とったものです。

設定が完了すると、以下の通りステータスは 処理中 となり、反映まで24時間程度待つ形となります。

反映に時間がかかるので、公式ページの反映結果を紹介すると、以下の通り、分割表示されます。分割請求分は Split charge として指定したグループに按分されていることもわかります。

※上図はAWS Cost Categories - アマゾン ウェブ サービスより引用

終わりに

あまり知られていない?機能ですが、使える場面ではとても有用な機能なので是非一度試してみてはいかがでしょうか?

それではこの辺で。ちゃだいん(@chazuke4649)でした。