オンプレミスでの予算とコストは、数年の長期サイクルでマネージャーと財務部門が取り扱い、支出は高額化され、過剰なキャパシティ プロビジョニングが見られました。
クラウドは、それとは全く異なります。はるかに動的で、消費量を基準にした従量課金型です。アプリケーション チームと運用チームは日々意思決定を行い、その決定はクラウド アーキテクチャのコストと使用規模に即座に影響を及ぼします。
従来型の財務プロセスをクラウドにそのまま適用するだけでは、リソースと資金の無駄につながります。クラウド移行を進める企業では、迅速性の考慮が必要となりにくい静的なオンプレミス型財務モデルから、クラウドのリアルタイム型モデルへの移行が必要です。そのためには、エンジニア、マネージャー、財務部門が、継続的な最適化プロセスに関与している必要があります。
このプロセスこそが FinOps です。これは、システム、ベストプラクティス、カルチャーを組み合わせたものであり、クラウドコストを把握してトレードオフを行う組織能力を強化するものです。
FinOps には、情報提供、最適化、運用という 3 つのフェーズがあります。情報提供フェーズの目標には、次のようなものがあります:
- IT 支出を可視化する
- きめ細かなコスト配分を設定する
- チーム レベル予算を作成、トラックする
これらは使用するクラウド プロバイダーにかかわらず、次の方法で取り組みます:
- FinOps チームを創設する
- 現実的なコスト配賦構造を導入する
- リソースをタグ付けする
FinOps チームを創設する
FinOpsチームは、複数部門から成る少人数で構成します。チーム メンバーは財務、エンジニアリング (開発、運用の両方)、業務部門 (LoB) を代表します。
FinOpsチームは会議でクラウドインフラストラクチャに関する選択肢を話し合います。チームの目標
は、実際のインフラとコスト、
ビジネス目標への影響をすべての人に理解してもらうことです。財務部門メンバーは財務計画や
アドバイザリーの役割を担います。LoB は、コスト、スピード、品質に関して
何を最適化すべきかについて見解を示します。開発及び運用部門は、
ビジネスに付加価値を与えるものとして経営陣が認めたアプリケーションや機能を構築するために
必要なクラウド リソースを説明します。
FinOpsチームは協力し合い、クラウド利用を詳細まで可視化するためのコスト配賦構造やタグ付けの方針を決定します。
コスト配賦構造を導入する
クラウド支出を可視化するには、全社のアカウントが把握され、会計モデルに含まれていることを確認する必要があります。コスト配賦構造は、ビジネス構造と一致するように構築します。自律的な利用部門を中心に構成されている場合は、コスト配賦構造もそれを反映すべきです。DevOps 組織である場合は、各チームがアプリケーションをエンドツーエンドで管理するため、プロジェクトに基づく構造の方が適しています。
自動化も大いに役立ちます。Amazon、Microsoft Azure、Google Compute Platform (GCP) はいずれも階層の作成と管理に役立つツールを備えています。
AWS
AWS のコスト階層の基礎となるのはアカウントです。AWS Organizations はポリシーベースの管理ツールで、アカウント作成を自動化し、アカウントをグループ化できます。これらのアカウントに権限を適用して管理し、組織に対する一括請求とレポートを有効化できます。他の AWS サービスと統合することにより、AWS Organizations によって組織内アカウントの一元設定とリソース共有を定義できます。
GCP
Google Cloud の中核となる構成エンティティはプロジェクトです。Compute Engine、Kubernetes、Cloud SQL、Storage などのサービスを利用している場合は、プロジェクトのコンテキスト内でリソースが作成されます。プロジェクトはリソースのコンテナであり、ワークロードに関する設定、権限、その他メタデータを記述します。
プロジェクト作成には Cloud Deployment Manager を使用します。Deployment Manager を使用して、展開する GCP リソース一式を記述する構成ファイルを作成します。
Cloud Identity and Access Management (Cloud IAM) は、請求アカウントをプロジェクトに関連付けるために使用します。Cloud IAM ポリシーにより、誰 (ユーザー) がどのアクセス権 (ロール) をどのリソースに対して持つのかを制御します。Cloud IAM ポリシー (ロール) は、組織レベル、フォルダーレベル、プロジェクト レベル、(場合によっては) サービスレベルのリソースで設定できます。
Microsoft Azure
多くの Azure ユーザーは管理対象とすべきサブスクリプションがかつてないほど増加していると感じているでしょう。Azure Cost Management を使用して作成できる管理グループは、こうしたサブスクリプションの整理に最適です。Azure Cost Management を使用して、ロールベースのアクセス管理 (RBAC)、タグ付けポリシー、コスト分析と予算を任意の範囲に適用できます。管理グループは、Azure 全体で共有されるコンテキストであり、追加の管理およびセキュリティサービスにもすべてアクセスできます。
リソースにタグ付けする
適切なコスト配賦構造を構築しても、それ自体はクラウド支出を根本から把握するために必要な詳細情報を提供するわけではありません。そのためにはタグが必要です。タグは、コスト分析のコンテキストを追加します。
タグとは、リソースに割り当てるラベルです。各タグは、キーとオプション値で構成され、いずれもユーザーが定義します。組み合わせの例を次に示します。
Owner = QA
Stack = Test
ここで、キーは Owner と Stack 、値が QA と Test になります。
現時点で、Amazon はリソース当たり最大 50 個のタグを許可しています。GCP は、タグの代わりにターム ラベルを使用しますが、許可されている数は 64 個です。Azure では最大 15 個のタグを使用できます。クラウド プロバイダーに関わらず、次に示す中核的な 4 つの質問にタグが対応できているかを確認する必要があります。
- リソースは、どのコスト センターに紐づけされているか?
- リソースは、どのアプリケーションに紐づけされているか?
- リソースは、どの個人またはチームに紐づけされているか?
- プロダクト終了予定はいつか?
タグ (またはラベル) をプログラムで作成することは、リソースが常にタグ付けされ、FinOps チームが定義したポリシーに従って確実にタグ付けされるようにする最善の方法です。
Amazon ではスクリプト、API または CloudFormation テンプレートを介してプログラムによるタグ付けソリューションを実装できます。GCP は Resource Manager API、Azure では Azure Cost Management を使用してタグ付けポリシーを作成します。3つのクラウド プロバイダーすべてにおいて、サードパーティ製品の Ansible、Chef、Puppet などを使用してリソースのタグ付けをすることもできます。
予算担当者に特定のビューを提供する
FinOps チームがコスト階層とタグ付けポリシーを導入すると、特定の予算担当者に特定のレポート ビューを提供できるようになります。成功している会社は、クラウド コスト管理プラットフォームを使用して、膨大な請求情報をシンプル化し、対策検討が可能なチャートに変換します。これにより、財務、運用、エンジニアリングの各チームが毎日の支出を迅速に把握できるようになり、重要なビジネス成果に貢献できるように、クラウドのコストと利用状況を最適化する環境を実現できます。
クラウド支出を管理する
Cloudability は、FinOps 用に設計されたクラウド財務管理プラットフォームです。Cloudability では、データ サイエンス、機械学習、自動化を利用して、IT、財務、ビジネスの各チームによる継続的なクラウド使用量の最適化、クラウドのユニット エコノミクスの改善を支援します。
無料のトライアル版をご用意しています。クラウド支出の可視性をどのように実現できるかぜひお試しください。FinOps および FinOps Foundation の詳細については、FinOps.org をご覧ください。