AWS / SAP-C02

セクション 05 · タスク 1.5 · SAP-C02-039

Cost AllocationとTagging Strategy

コスト配賦タグ / ビジネス単位 / プロジェクト / 環境 / チャージバック / ショーバック

このページのゴール

AWSのサービス別料金を確認できても、「どのビジネス単位・プロジェクト・環境がコストを発生させたか」が分からなければビジネス上の説明責任にはつながりません。

AWSコスト
   ↓
ビジネス問題
   ↓
コスト観点を定義
   ↓
アカウントレベル / リソースレベルを選択
   ↓
タグ付けスキーマを標準化
   ↓
コスト割り当て用に有効化
   ↓
ショーバック / チャージバック

技術コストをビジネス所有責任へ正しくマッピングするタグ付け戦略を設計できることをゴールにします。

1. コスト割り当てはコストをビジネス所有責任へマッピングする

コスト割り当ては、発生したAWSコストを、そのコストを利用・発生させたビジネス主体へ割り当てる考え方です。

AWSコスト
│
├─ ビジネス単位
│   └─ プロジェクト
│       └─ 環境
│
└─ 共有コスト

サービス別コストを見るだけでなく、誰が・何のためにコストを発生させたかをビジネス構造へマッピングします。

2. ビジネス問題からコスト観点を決める

タグを作ること自体が目的ではありません。まず財務 / ビジネス側がどの単位でコストを見たいかを決めます。

ビジネス問題代表的な観点
どの部門がコストを発生させたかBusinessUnit
どのイニシアチブ / ワークストリームかプロジェクト
本番 / 開発のどちらか環境
どのアプリケーション / 所有者かアプリケーション / 所有者
コスト問題
↓
観点
↓
タグキー
↓
許可済みの値

例えば1つのリソースへBusinessUnit=Retail、Project=Checkout、Environment=productionを付ければ、同じコストを複数のビジネス観点で分析できます。

3. アカウントレベルとリソースレベルを使い分ける

ビジネス所有責任とAWSアカウント境界が一致するなら、AWS Organizationsのアカウントタグをコスト割り当てへ利用できます。

Retail専用アカウント
→ BusinessUnit = Retail

財務専用アカウント
→ BusinessUnit = 財務

一方、1つのアカウント内に複数プロジェクトや環境が混在するなら、リソースレベルタグ付けが必要です。

アカウント全体が同じ観点
→ アカウントレベル

アカウント内で観点が分かれる
→ リソースレベル

アカウントタグはアカウント内の計測された使用量へアカウントレベル属性を与えるため、リソースタグでは扱いにくいコスト、返金、クレジット、一部のサービス料金の割り当て範囲も補完できます。

4. アカウントタグとリソースタグを組み合わせる

アカウントレベルとリソースレベルは競合ではありません。必要な粒度に応じて組み合わせます。

Retail アカウント
├─ アカウントタグ
│   BusinessUnit = Retail
│
├─ リソース A
│   プロジェクト = Checkout
│   環境 = production
│
└─ リソース B
    プロジェクト = Search
    環境 = 開発

粗い所有責任はアカウントレベル、細かい所有責任はリソースレベルというハイブリッド戦略が使えます。

5. アカウントタグもコスト割り当て用に有効化する

AWS Organizationsでアカウントへタグを付与しただけでは、コスト割り当て観点としての準備は完了しません。

AWS Organizationsでアカウントタグを付与
        ↓
請求とコスト管理
        ↓
コスト割り当てタグで有効化
        ↓
アカウントレベルコスト観点として利用

アカウントタグをビジネス単位などのコスト帰属へ使う場合も、請求側でコスト割り当て用に有効化します。

6. ユーザー定義タグもタグキーを有効化する

リソースへProject=Checkoutというユーザー定義タグを付けても、それだけでコスト割り当てタグとして利用できるとは限りません。

リソースへタグ適用
      ↓
コスト割り当てタグ候補
      ↓
タグキーを有効化
      ↓
コスト観点として利用

有効化するのはCheckoutという個々のタグ値ではなく、Projectというタグキーです。

要素コスト割り当てでの意味
タグキーコスト観点。例:プロジェクト
タグ値観点内の分類。例:Checkout / Search

7. タグの表示・有効化には時間がかかる場合がある

新しいユーザー定義タグキーがコスト割り当てタグの有効化候補へ表示されるまで、最大24時間程度かかる場合があります。有効化後にアクティブ状態になるまでにも最大24時間程度かかる場合があります。

タグ付与
↓
最大24時間程度で候補へ表示
↓
有効化
↓
最大24時間程度でアクティブ

タグ付け戦略はコストレポートが必要になってから後付けするのではなく、リソースライフサイクルの早い段階で設計・適用する方が安定します。

8. コスト割り当てタグは最大12か月データ補完できる

現在のAWSでは管理アカウントからコスト割り当てタグのデータ補完を要求でき、対象期間は最大12か月です。

ただしデータ補完は、過去の有効化状態を適用する仕組みです。リソースにそのタグ値が存在していなかった期間へ、後から値を生成するわけではありません。

タグ自体が過去に存在
+ データ補完
→ 過去コストで利用できる可能性

タグ自体が過去に存在しない
+ データ補完
→ 過去タグ値は生成されない

9. タグキーとタグ値を標準化する

同じ意味でも表記が違えばコスト観点が分断されます。タグキー / 値は大文字と小文字を区別するため、組織全体のタグ付けスキーマを定義します。

避けたい例
BusinessUnit
business-unit
Business_Unit
BU

環境値
prod / production / 本番 / prd

例えばEnvironmentの許可済みの値をproduction / staging / development / testに固定するなど、統制された語彙を用意します。

セッションIDやデプロイ時刻のような高カーディナリティのメタデータを、ビジネスコストレポートで不要なのに必須コスト観点へする必要はありません。

10. 未割り当てコストを継続的に確認する

タグ付け標準を定義しても、リソースへタグが付いていなければ正しくコスト帰属できません。

Retail      300万円
財務     200万円
未割り当て 150万円

この場合、150万円分の所有責任が不明です。コスト割り当て戦略では、配賦済みコストだけでなく未割り当てコストの割合も継続的に確認します。

定義
↓
適用
↓
有効化
↓
配賦率を測定
↓
改善

11. 共有コストはタグだけでは配賦率まで決まらない

共有ネットワーク、中央ログ記録、セキュリティプラットフォームなどを複数ビジネス単位が利用する場合、BusinessUnit=Sharedとタグ付けすれば「共有コスト」であることは表現できます。

しかし、そのコストをRetail 40%、財務 35%、人事 25%のようにどう負担させるかまではタグだけでは決まりません。

共有リソース
↓
BusinessUnit = 共有
↓
共有コストであることを識別
↓
各ビジネス単位への負担率
→ 別途割り当てルールを設計

AWS Cost Categoriesの分割チャージルールなどは実現手段の一例ですが、重要なのはタグ付けと共有コストの配賦ルールは別責任だと判断することです。

12. ショーバックとチャージバックを分ける

モデル役割
ショーバックビジネス単位 / プロジェクトへコストを可視化・報告する
チャージバックコスト帰属結果を内部会計へ反映し、実際にコストを負担させる
タグ付け戦略
↓
コスト割り当て
↓
ショーバック
↓
必要ならチャージバック

どちらでも前提は同じで、誰がコストを発生させたかを正確にマッピングできるコスト帰属基盤が必要です。

13. ビジネス単位 × プロジェクト × 環境を組み合わせる

例えばRetail ビジネス単位内のCheckoutプロジェクトについて、本番と開発も分けたいなら、次のように独立観点を持たせます。

BusinessUnit = Retail
プロジェクト      = Checkout
環境  = production

これにより「Retail全体」「Checkoutだけ」「本番だけ」「Retail × Checkout × 本番」のように複数のビジネス問題へ答えられます。

14. 障害モード

タグを付ければ即コスト割り当てで使えると思う

リソースタグもアカウントタグも、コスト割り当てで利用するための有効化を確認します。

タグ値を有効化すると思う

有効化対象はタグキーです。

アカウント全体にプロジェクト=Aを付ける

アカウント内に複数プロジェクトがあるならリソースレベルで分けます。

キー / 値をチームごとの自由入力にする

大文字・小文字や略称の揺れでコスト観点が分断されます。

データ補完すれば存在しなかったタグ値も復元されると思う

タグが存在していなかった期間の過去値は生成されません。

共有というタグだけで負担率まで決まると思う

共有コストには別途割り当てルールが必要になる場合があります。

ショーバックとチャージバックを同じものと考える

ショーバックはコストの提示、チャージバックは内部会計上のコスト負担です。

15. SAP-C02判断フロー

コストを誰へマッピングしたい?
        │
        ▼
ビジネス観点を定義
        │
        ├─ ビジネス単位
        ├─ プロジェクト
        └─ 環境
        │
        ▼
アカウント全体が同じ観点?
   ┌────┴────┐
   │         │
  はい      いいえ
   │         │
   ▼         ▼
アカウントリソース
レベルレベル
   │         │
   └────┬────┘
        ▼
タグキー / 値を標準化
        │
        ▼
タグを適用
        │
        ▼
コスト割り当て用に有効化
        │
        ▼
配賦率 / 未割り当てコストを確認
        │
        ▼
共有コストがある?
   ┌────┴────┐
   │         │
  はい      いいえ
   │         │
   ▼         │
割り当て   │
ルールを設計   │
   └────┬────┘
        ▼
ショーバック
        │
必要なら
        ▼
チャージバック

16. まとめ

ビジネス要件
↓
コスト観点
↓
アカウント / リソースレベル
↓
タグ付けスキーマ
↓
タグ適用
↓
コスト割り当てタグ 有効化
↓
配賦率確認
↓
ショーバック / チャージバック

アカウント全体が同じ所有責任ならアカウントレベル、アカウント内で所有責任が分かれるならリソースレベルを評価します。アカウントタグとリソースタグは必要な粒度に応じて組み合わせます。

AWSコストを技術リソースの料金からビジネス上の説明責任へ変換することがコスト割り当て戦略の目的です。

17. 主要AWS公式資料

  • AWS Certified Solutions Architect - Professional SAP-C02 — ドメイン 1 / タスク 1.5
  • AWS Billing and Cost Management — ユーザー定義コスト配分タグの有効化
  • AWS Billing and Cost Management — コスト配分用アカウントタグ
  • AWS Billing and Cost Management — コスト配分タグのデータ補完
  • AWS Billing and Cost Management — AWS Cost Categories内の分割料金ルール
  • AWS タグ付け ベストプラクティス — コスト配分タグ

理解確認

このページの内容を11問で確認します。

理解確認11問へ →