Attribute GCP TF Deployment
Attribute は、クラウドコストの全体像を提供し、リソースレベルから機能・アプリケーション・チーム・顧客レベルまで、コストのアトリビューションと責任範囲を把握できる統合プラットフォームです。
これを実現するために、Attribute には複数レベルのアクセスが必要です。
- 請求情報へのアクセス
- リソース利用状況情報を取得するための Attribute センサー実装
以下に、インストールを完了するために必要な詳細な手順と権限を示します。
クラウドの実装状況によっては、特定のリソースに対して追加の権限が必要になる場合があります。
Billing Export Data
Attribute は、組織の現在の請求および利用状況情報を読み込むために、GCP の詳細な Billing Export を使用します。以下の手順で Billing Export を設定してください。
- コンソールのナビゲーションパネルで Billing を選択し、請求ダッシュボードにアクセスします。
- (任意)複数の請求アカウントがあり、"You have multiple billing accounts" というメッセージが表示された場合は、GO TO LINKED BILLING ACCOUNT をクリックします。
- サイドパネルで Billing export に移動し、Detailed usage cost セクションを探して EDIT SETTINGS をクリックします。
- この画面で、請求書エクスポートの保存先 (プロジェクトと BigQuery データセット) を選択します。
エクスポートを設定してから新しい請求データが反映されるまで、最大 48 時間かかる場合があります。
スムーズな実装を確実に行うため、Attribute は必要なセットアップとセンサー登録を自動化する Terraform モジュールを提供しています。詳細な Terraform ドキュメントとサンプルは、Terraform モジュール内の [README] を参照してください。
GCP Account Types
このモジュールは、GCP 組織プロジェクトおよびサブプロジェクトの両方へのインストールをサポートします。モジュールを実行する際は、account_type パラメータを使用して、GCP Organization の管理プロジェクトにデプロイするのか、センサーをインストールするサブプロジェクトにデプロイするのかを指定してください。
以下に注意してください。
- サポートされる Terraform バージョンは 1.9 以上 です。
- センサーをデプロイする必要がある場合は、各サブプロジェクトごとにモジュールをデプロイする必要があります。さらに、組織の Billing プロジェクトを使用している場合は、完全なコストの可視性を確保するために、Billing プロジェクトおよびそれに 関連付けられたサブプロジェクトの両方にモジュールをデプロイする必要があります。
- このモジュールは、コンピュートインフラストラクチャ上に Attribute センサーをデプロイしません。この処理は、各コンピュートクラスタごとに異なるツールを使用して実施します (Attribute のインストールガイドを参照してください)。
Resources Created by This Module
GCP 組織の管理アカウント上で実行する場合、以下のリソースが作成されます。
- 請求データへのセキュアなアクセスを可能にするサービスアカウント
- Billing Export データセットに対する BigQuery Data Viewer 権限
GCP サブプロジェクト上で実行する場合、以下のリソースが作成されます。
- 請求データへのセキュアなアクセスを可能にするサービスアカウント
センサーの登録プロセスは、このモジュール内で完全に自動化されています。詳細については、モジュールの README を参照してください。
Appendix A: Detailed Installation Instructions
この付録では、管理アカウントの設定からメンバー アカウントへのセンサー展開まで、セットアップ全体のプロセスを順に説明します。
Step 1 — Billing Integration
1.1 Creating Billing Export Data
これは、前述の Billing Export 設定と同じ手順です。すでにエクスポートを設定済みの場合は、ステップ 1.2 に進んでください。
- コンソールのナビゲーションパネルで Billing を選択し、請求ダッシュボードにアクセスします。複数の請求アカウントがあり、"You have multiple billing accounts" というメッセージが表示された場合は、GO TO LINKED BILLING ACCOUNT をクリックします。
- サイドパネルで Billing export に移動し、Detailed usage cost セクションを探して EDIT SETTINGS をクリックします。
- Billing Export の保存先 (プロジェクトと BigQuery データセット) を選択します。
新しい請求データが表示されるまで最大 48 時間かかる場合があります。
1.2 Running the Terraform for Billing Integration
以下の手順は、管理 (支払者) アカウントでのみ 実行してください。
-
Terraform のバージョンが 1.9 以上であることを確認します。
terraform version -
Attribute から受け取った
main.tfファイル内の変数を以下のとおり更新します。- 使用する Terraform プロファイルを更新し、正しい GCP アカウントを指すようにします。
projectとregionの情報を更新します。- エイリアスが
"management"に設定されていることを確認します。 organization_idとtokenは変更しないでください。受け取った値のままにします。billing_export_dataset_nameを更新します。billing_export_table_nameを更新します。
terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 6.0, <7.0"
}
}
}
provider "google" {
project = "my-main-1234"
region = "us-central1"
alias = "management"
}
# provider "google" {
# project = "my-sub-account-1234"
# region = "us-central1"
# alias = "sub1"
# }
module "attribute_management" {
source = "ZouzIO/attribute-sensor/gcp"
version = "~> 3.0"
token = "XXXXXXXXXXXXXXXXXX"
organization_id = "XXXXXXXXXXXXXXXXXXXXX"
account_type = "management"
billing_export_dataset_name = "your_billing_export_dataset_name"
billing_export_table_name = "your_billing_export_table_name"
providers = {
google = google.management
}
}
# module "attribute_sub1" {
# source = "ZouzIO/attribute-sensor/gcp"
# version = "~> 3.0"
#
# token = "XXXXXXXXXXXXXXXXXXXXX"
# organization_id = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
# account_type = "sub"
# billing_info = module.attribute_management.billing_info
#
# providers = {
# google = google.sub1
# }
# } -
Terraform を適用します。
terraform init
terraform apply
Step 2 — Sensor Implementation
センサーをデプロイする予定の各プロジェクト (サブアカウント) を設定します。これは 2 つの部分から構成されます。まず Terraform を実行して前提条件を作成します (サブアカウントごとに 1 回)。その後、各 GKE クラスタ上に Helm チャートを使用してセンサーをデプロイします。
Step 2.1 — Terraform Prerequisite Setup (Member Account)
以下の手順は、プロジェクト (サブアカウント) ごとに 1 回 実行してください。
-
Attribute から受け取った
main.tfファイルを、メンバーアカウントを反映するように更新します。- Terraform プロファイルを更新し、正しい GCP プロジェクトを指すようにします。
- サブアカウントのエイリアスを持つ追加の provider のコメントを解除します (必要に応じて複数のサブアカウント provider を使用できます)。
- サブアカウントのモジュールのコメントを解除し、
"my-sub-account-1234"となっているプロジェクト名を自身のプロジェクト名に変更し、合わせて region 情報も更新します。 organization_idとtokenは変更しないでください。受け取った値のままにします。- Billing 情報が保持されていることを確認し、
billing_infoデータを削除しないでください。
terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">= 5.0, < 8.0"
}
}
}
provider "google" {
project = "my-main-1234"
region = "us-central1"
alias = "management"
}
provider "google" {
project = "my-sub-account-1234"
region = "us-central1"
alias = "sub1"
}
module "attribute_management" {
source = "ZouzIO/attribute-sensor/gcp"
version = "~> 3.0"
token = "XXXXXXXXXXXXXXXXXXXXX"
organization_id = "XXXXXXXXXXXXXXXXXXXXXXXXXX"
account_type = "management"
billing_export_dataset_name = "your_billing_export_dataset_name"
billing_export_table_name = "your_billing_export_table_name"
providers = {
google = google.management
}
}
module "attribute_sub1" {
source = "ZouzIO/attribute-sensor/gcp"
version = "~> 3.0"
token = "XXXXXXXXXXXXXXXXXXXX"
organization_id = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
account_type = "sub"
billing_info = module.attribute_management.billing_info
providers = {
google = google.sub1
}
} -
Terraform を適用します。
terraform apply
Step 2.2 — Deploying the Sensor with Helm on GKE
以下の手順は、センサーをデプロイしたい各 GKE クラスタごとに繰り返し実行してください。
-
Attribute から提供された values ファイル (
values.yaml) を保存します。このファイルには一意のエフェメラルトークンが含まれています。 -
Helm のバージョンを確認します。サポートされるバージョンは 3.8.0 以上です。
helm version -
Helm チャートをインストールします。
helm upgrade -i attribute \
oci://quay.io/attribute/operator-chart \
-f <values.yaml> \
-n attribute \
--create-namespace -
検証。 以下を実行して、Helm リリース、および operator とセンサーが実行中であることを確認します。
helm list -n attribute
kubectl get pods -n attribute期待される出力例:


スタンドアロンなど、他のコンピュートリソースタイプにセンサーをデプロイしたい場合は、該当するセンサー展開ドキュメントを参照してください。
商標: Google Cloud は Google LLC の商標です。Terraform は HashiCorp, Inc. の登録商標です。Kubernetes は The Linux Foundation の登録商標です。その他すべての商標は、それぞれの所有者に帰属します。