Amazon Web Services ブログ

コスト配分モデルを用いた組織内のコスト配分の実現

みなさん、こんにちは。カスタマーソリューションマネージャー (CSM) の北川です。今回は AWS コストの最適化に役立つ「コスト配分」をご紹介します。

コスト配分とは、混在した複数の組織やチームの AWS コストを適切に配分するための考え方です。これを活用して、組織やチームごとにコストを最適化することや、クラウド費用を予算内におさめるためシステム単位で利用料金の削減検討などを行うことが可能になります。

この記事は、プロジェクトやチームのクラウドコストの確認や管理をしている方や、最高責任者 (CxO) として会社全体のクラウドコストの管理をしている方などにお勧めします。具体的には、Financial Controller (会計監査役)、Chief Accounting Officer (財務統括役員)、Financial Planning&Analysis (財務計画・分析担当) 、Procurement (調達担当) 、Financial Analyst (財務分析担当)、Accounts Payable (経理担当)、Cloud Financial Management Leader (クラウド財務管理責任者) を対象としています。

説明の流れとして、まずは基本情報として、コスト配分に使用可能な基本的な機能と、その中でも最初に検討が必要なアカウントとタグ付けに関してご紹介します。その上で、実際のコスト配分モデルの考え方と、その選び方や現実的な実装方法についてご紹介をしたいと思います。

コスト配分の基本機能

まずは、コスト配分の実現に役立つ、AWS の基本的な4つの機能をご紹介します。

  1. AWS アカウントAWSアカウントを分けることにより、すべての AWS リソースに関する情報を分離し、アカウント単位で支払いを完全に分けることが可能です。
  2. AWS OrganizationsAWS Organizations は複数のアカウントを包括して管理することができるサービスです。AWS Organizations により、アカウント作成処理の自動化や、コストや使用状況を集約して確認できます。一括請求機能を使うことで、複数アカウント間で単一の請求書を作成することや、Savings Plans や リザーブドインスタンスを共有することが可能です。
  3. コスト配分タグ – AWSリソースにメタデータをタグ形式で割り当てることができます。タグは、リソースの管理、識別、整理、検索、フィルタリングに役立ちます。管理アカウントの所有者がタグをコスト配分タグとしてアクティブ化することで、AWSのコストをAWSコスト配分タグとして利用し、タグ単位でコストを詳細レベルで追跡することも可能です。
  4. Cost CategoriesAWS Cost Categories により、定義したルールを利用して、AWS のコストと使用量を自動的にカテゴリに分類できます。分類の条件として、アカウント、サービス、Charge Type (料金タイプ) 、タグキー、コストカテゴリを使用可能です。

アカウントとタグ付け戦略の作り方

コスト配分の基本機能を活用するために、アカウントとタグ付け戦略が重要となります。次に、先ほどご紹介した基本機能を活用して、アカウントとタグ付け戦略をどのように考えるべきかをご紹介します。

アカウント戦略

アカウントの構造を最適化するために、最初にステークホルダーと共に要件を確認することをお勧めします。ステークホルダーの例としては、ファイナンス組織、エンジニアリング組織、セキュリティ組織、業務担当組織のリーダーが挙げられます。要件の例としては、ファイナンス組織による会計の分離、セキュリティ組織による管理者の分離、エンジニアリング組織によるシステム影響範囲の分離、業務担当組織による AWS サービスリミット、キャパシティ予約、割引の最大化などの要件が考えられます。一般的には以下の図のように環境ごとや、プロジェクトごとにアカウントを分離することで適切な管理が可能になります。詳細については、マルチアカウント戦略のベストプラクティスを併せてご確認ください。

ライフサイクルの異なる環境やプロジェクト単位でのアカウント構造

タグ付け戦略

タグ付け戦略を実装するために、タグ辞書の作成、タグ辞書の公開、タグ付けルールの定義、評価・遵守・改善 の流れで戦略を決めていくことをお勧めします。AWS リソースに対するタグ付けのベストプラクティスについては、AWS リソースのタグ付けも併せてご確認ください。

タグ付けは、タグ辞書の作成、タグ辞書の公開、タグ付けルールの定義、評価・遵守・改善の順で進みます。

タグ辞書の作成 – タグ辞書を作成して、タグキーとタグ値を定義します。タグキーは例えば以下のような観点で整理をすることが可能です。タグ値を定義する際には、スペースの有無や、大文字小文字、スペルミス、区切り文字の種類など想定外のバラツキが発生しないように注意します。

  • タグ値のバラツキの例
    • スペースの有無: “teamA” と “team A”
    • 大文字小文字:“teamA と ”TeamA“
    • スペルミス: “Environment” と “Envrionment”
    • 区切り文字の種類: “cost_center” と “cost-center”

タグ辞書の公開 – 文章化してタグ辞書を組織内に公開します。タグ辞書のサンプルは以下となります。

タグ辞書には、必須タグ名の名前と、取得可能な値を含めます。

オプションとしてのタグの名前や使用可能な値の例を示します。

タグ付けルールの定義 – タグ辞書を公開する際には、併せてタグ付けルールも定義します。例えば、タグづけがなされていない場合には強制的にリソースが停止される、などのルールを定義します。

タグが不足している場合に、どのような振る舞いをするかポリシーを定義します。

評価・遵守・改善 – タグ付け状況を把握するために、KPI を定義して評価を行います。タグ付け観点の具体的な KPI の例としては、タグキーごとに集計したタグ付与率、全てのタグキー合計のタグ付与率、支払い全体い対するコスト分配タグで分類されたコストの割合、分配されない支払いの割合、などが挙げられます。また、成果を基準とした具体的な KPI の例としては、強制停止したリソースの数、削減できたクラウド支払い額、削減できた作業時間 (例えば、タグ付けの自動化などにより) などが挙げられます。タグ付けを遵守するために、プロアクティブ (能動的) とリアクティブ (能動的) の両方の観点で確認を行います。それぞれの特徴は以下の通りです。

  • プロアクティブ (能動的) な観点
    • ルールを守らないリソースを起動させない
    • トップダウンでルールを決定
    • ビジネスの柔軟性を下げる影響が生じる
    • タグ付与率を上げることが可能
    • コスト分配の精度を上げることが可能
    • リソースの無駄を最小化することが可能
  • リアクティブ (受動的) な観点
    • 既に使用されているルールを守っていないリソースへの対応
    • 影響の少ないアプローチ
    • ビジネスの柔軟性を下げない
    • タグ付与率が上がらない可能性がある
    • コスト分配の精度を下げる可能性がある
    • リソースの無駄が増加する可能性がある

タグ付け状況の改善を進めるために確認を行うポイントは以下の通りとなります。

  • タグ辞書を日々改善する
  • KPI を継続評価して状況を管理する
  • 明確な成果が出ているか確認する
  • タグを遵守が強制的すぎてビジネスに負の影響を与えていないか、寛容すぎてタグ付与が滞留していないかを確認する

コスト配分モデルの整理

AWS のコスト配分を行うためには、8種類のモデルが考えられます。これらのモデルを駆使して最適なコスト分配を実装することが可能です。本章では、8種類それぞれの特徴と、モデルを選ぶための考えかたをご紹介します。

アカウント単位、タグ単位、AWSコストカテゴリ単位、割引前の比率、使用量の単位、テレメトリ単位、固定配分、均等配分の8種類のモデルがあります。

アカウント単位 (Account based) – AWS アカウントごとにコスト配分を行います。最もシンプルな分配モデルです。

タグ単位 (Tag based) – タグごとにコスト配分を行います。コスト配分タグを使用している場合におすすめの方法です。タグ辞書やタグポリシーで十分にタグを管理することが必要です。AWS コストと使用状況レポートを使用してコスト配分をすることが可能です。

AWSコストカテゴリ単位 (AWS Cost Categories) AWS Cost Categories で作成したコストカテゴリごとにコスト配分行います。AWS コストと使用状況レポートを使用してコスト配分をすることも可能です。

割引前の比率 (Non-Discounted Proportional) – 割引前のコスト比率を用いて、実際の支払い金額を算出します。割引前のコスト比率の計算には、アカウントベース、タグベース、または AWS コストカテゴリの方法が使用可能です。このモデルを使用して、共有リソース、共有環境、パフォーマンスおよびセキュリティ監視ツール、およびインフラストラクチャに関連するコストを組織ごとに分配ができます。このモデルは計算が簡単であり、他のモデルと組み合わせて使用できます。

部門ごとに、割引前の使用量の割合を用いて、コスト配分を行います。

使用量の単位 (Consumption based) – リソースの使用量を基準としてコスト配分を行います。Savings Plans や リザーブドインスタンスのコストを配分するのに適しています。AWS Cost Explorer と AWS コストと使用状況レポート を使用して、Savings Plans やリザーブドインスタンスの割引を受けた個々のリソースを特定できます。この割引を受けたリソースの金額比を用いて、前払い料金と月額サブスクリプション料金の両方のコストを配分することが可能です。

テレメトリ単位 (Telemetry based) – テレメトリを基準としてコストの配分を行います。共有されているサービスやリソース、またはタグ付けをサポートしていないサービスやリソースのコスト配分が可能です。このモデルでは AWS CloudTrail, Amazon CloudWatch などから使用状況のテレメトリデータを取得します。テレメトリの例としては、Amazon Simple Storage Service (Amazon S3) への PUT / GET 件数、使用したストレージ量、トランザクション数、ログイン回数などが挙げられます。このモデルは、1つの環境上で複数のアプリケーションが稼働しており、アプリケーションごとに使用リソースの分離が難しい状況において、そのコストを配分することも可能です。なお、こういったケースでは、 AWS Application Cost Profiler の利用もご検討いただけます。

固定配分 (Fixed Allocation) – 一定の固定ルールを定義して、そのルールに基づいてコスト配分を行います。これらのルールは、多くの場合、配分先のチームが AWS をどのように使用しているかとは無関係です。例えば、AWS サポートの費用を全てIT管理チームに配分するなど、組織構造に依存した分配に使用されることがあります。

均等配分 (Equal Allocation) – 全ての分配可能な対象に均等にコスト配分を行います。例えば、15チームの場合、1/15ずつに分配を行います。

適切なモデルの選び方

選択するモデルにより、実装にかかる労力と得られる精度が異なります。労力と精度が最もご希望に近いモデルを選択することをお勧めします。

モデルの実装の労力とモデルの精度により、適切なモデルを選択します。

現実的な実装方法の例

今回ご紹介したアカウントとタグ付け戦略やコスト分配モデルの考えを用いて、実際に実装する際の参考情報をご紹介します。例えば、アプリケーション単位でコスト配分を行いたい場合には、アカウント単位 (Account Based) や タグ単位 (Tag Based)、AWS コストカテゴリ単位 (AWS Cost Categories) のモデルを採用することをお勧めします。また、共有リソースのコスト配分を行いたい場合には、AWS コストカテゴリ単位 (AWS Cost Categories) や、割引前の比率 (Non-Discounted Proportional)、 テレメトリ単位 (Telemetry based) のモデルを採用することをお勧めします。最適なモデルの組み合わせに迷う場合には、配分により実現したいことが何かということを明確にすることから検討を開始ください。

 コスト配分を望む単位により適切なコスト配分モデルを使うことをお勧めします。

おわりに

この記事では、今回は AWS コストの最適化に役立つ「コスト配分」をご紹介しました。コスト配分を用いることで、複数の組織、製品開発チーム、複数のシステムが AWS を使用している状況において、それぞれの組織やチームやシステムの単位で AWS 使用量を分離して把握することが可能です。

ビジネスニーズに応じてコスト配分モデルの適用を行い十分な精度を確認できたところで、次のステップとして、さらにビジネス効率を高めるために支払い方法を変更することも検討ください。コスト配分の成熟による支払い戦略の変化については “How to design your AWS allocation strategy”も併せてご参照ください。

参考情報

この記事は、AWS Cloud for Finance Professionals の “Measurement & Accountability: Cost Allocation Building Blocks” と “Measurement and Accountability: Cost Allocation Models” を基礎情報として、カスタマーソリューションマネージャーの北川裕介と西口健太郎により作成されました。

コストに関するご質問やお問い合わせは、お問い合わせページ、もしくは担当営業までご連絡をお願いします。

コスト最適化を行うために以下の情報も併せてご参照ください。
AWSによるクラウド財務管理
コスト最適化のためのアーキテクチャベストプラクティス
コスト配分タグを用いた効率的なコスト管理
Cost Allocation Blog Series #1: Cost Allocation Basics That You Need to Know
How to design your AWS cost allocation strategy
How to design your AWS cost allocation strategy (Blog)
米国州政府に学ぶ、コスト配分戦略の5つのベストプラクティス