メインコンテンツへスキップ

Attribute の Azure デプロイ

Attribute Terraform を使用したインストール

スムーズな実装を行うために、Attribute では Terraform モジュールを提供しており、請求情報の抽出とセンサー登録のセットアップを自動化します。Terraform の詳細なドキュメントとサンプルは、Terraform モジュール内の README に記載されています。

このモジュールによって作成されるリソース

モジュールを実行すると、次のリソースが作成されます。

  • Attribute という名前の Resource group
  • 請求データを保存する Storage account
  • データ取得を可能にする Attribute という名前の Managed Identity
  • データ取得を容易にする Data Export リソース

重要な補足事項

  • 対応している Terraform バージョンは 1.9 以上 です。
  • モジュールは Azure テナントレベルまたは Azure サブスクリプションレベルのいずれかにインストールでき、Attribute ソリューションに必要なすべてのインフラストラクチャを作成します。
  • モジュールを実行するには、ユーザーに特定の権限セットが必要です — 下記のインストール手順のステップ 2 に再掲されている「必要な権限のリスト」を参照してください。
  • モジュールはコンピュートインフラストラクチャ上に Attribute センサーをデプロイすることは ありません。この処理は、各コンピュートクラスタごとに異なるツールを使用して行います (詳細は Attribute のインストールガイドを参照してください)。

付録 A: 詳細なインストール手順

この付録では、サブスクリプションレベルでのセットアップ手順全体を説明します。

ステップ 1 — Billing 連携

  1. 使用している Terraform のバージョンが 1.9 以上であることを確認します。

    terraform version
  2. モジュールを実行する権限があることを確認します。最新の一覧はモジュールの README に記載されています。必要な権限:

    Microsoft.Resources/subscriptions/resourceGroups/read
    Microsoft.Resources/subscriptions/resourceGroups/write
    Microsoft.Resources/subscriptions/read
    Microsoft.Storage/storageAccounts/read
    Microsoft.Storage/storageAccounts/write
    Microsoft.Storage/storageAccounts/listkeys/action
    Microsoft.Storage/storageAccounts/blobServices/containers/read
    Microsoft.Storage/storageAccounts/blobServices/containers/write
    Microsoft.Storage/storageAccounts/blobServices/read
    Microsoft.Storage/storageAccounts/fileServices/read
    Microsoft.ManagedIdentity/userAssignedIdentities/read
    Microsoft.ManagedIdentity/userAssignedIdentities/write
    Microsoft.ManagedIdentity/userAssignedIdentities/federatedIdentityCredentials/read
    Microsoft.ManagedIdentity/userAssignedIdentities/federatedIdentityCredentials/write
    Microsoft.Authorization/roleAssignments/read
    Microsoft.Authorization/roleAssignments/write
    Microsoft.CostManagement/exports/read
    Microsoft.CostManagement/exports/write
  3. main.tf ファイルを更新します。

    デフォルトでは、Billing Export は サブスクリプション スコープで作成されます。代わりに Billing account スコープでエクスポートを作成したい場合は、後述のオプション 2 を参照してください。

    オプション 1 — サブスクリプションレベルで実行する場合:

    1. 使用している Terraform プロファイルを更新し、対象の Azure サブスクリプションを指すようにします。
    2. subscription_id を更新し、あなたのサブスクリプションを指すようにします。
    3. organization_idtoken の値は 変更せず、そのままにしておきます。
    terraform {
    required_providers {
    azurerm = {
    source = "hashicorp/azurerm"
    version = "~> 4.0"
    }
    azapi = {
    source = "azure/azapi"
    version = ">= 2.0.0, < 3.0"
    }
    }
    }

    provider "azurerm" {
    features {}
    subscription_id = "subscription-id"
    }

    module "attribute-sensor" {
    source = "ZouzIO/attribute-sensor/azurerm"
    version = "~> 2.0"

    organization_id = "XXXXXXXXXXXXXXXXXXX"
    token = "XXXXXXXXXXXXXXXXX"
    }

    オプション 2 — Billing Export を billing account レベルで作成する場合:

    main.tf 内の attribute-sensor モジュールを更新し、Billing account ID を含めます。

    module "attribute-sensor" {
    source = "ZouzIO/attribute-sensor/azurerm"
    version = "2.0.1"

    organization_id = var.organization_id
    token = var.token
    billing_account_id = "<YOUR_BILLING_ACCOUNT_ID>"
    }

    追加のサブスクリプションごとに、モジュールを更新して次の値を含めます (プライマリではないサブスクリプションについてはコストエクスポートを無効化します)。

    module "attribute-sensor" {
    source = "ZouzIO/attribute-sensor/azurerm"
    version = "2.0.1"

    organization_id = var.organization_id
    token = var.token
    create_costs_export = false
    }
  4. Terraform を適用します。

    terraform init
    terraform apply
  5. 検証。次のリソースが作成されたことを確認します。

    1. Attribute ロール
    2. Storage account
    3. AttributeExport Cost Management export

    Azure ポータルの Roles ページに、説明「Custom role for deploying attribute-sensor module」が付いた AttributeSensorTerraform カスタムロールが表示されている

ステップ 2 — センサーの実装

次に、各 AKS クラスタで Helm chart を使用してセンサーのインストールを実行します。

  1. Attribute から提供された values ファイル (operator-values.yaml) を保存します。このファイルには一意の一時トークンが含まれています。

  2. 使用している Helm のバージョンを確認します。サポートされているのはバージョン 3.8.0 以上です。

    helm version
  3. 対象クラスタに合わせて、operator-values.yaml 内の cluster_name の値を更新します。

    cluster_name: <subscription_id>/<resource_group>/<cluster_name>
    注意

    subscription_idresource_group は、そのクラスタ固有のものです。クラスタノード用に異なる Resource group を使用している場合は、ノードの Resource group ではなく クラスタ の Resource group を使用してください。

  4. Helm chart をインストールします。

    helm upgrade -i attribute \
    oci://quay.io/attribute/operator-chart \
    -f <values.yaml> \
    -n attribute \
    --create-namespace
  5. 検証。次を実行し、Helm リリースおよび operator と sensor が稼働していることを確認します。

    helm list -n attribute
    kubectl get pods -n attribute

    期待される出力例:

    helm list -n attribute の出力例。attribute リリースが operator-chart でデプロイされていることを示している

    kubectl get pods -n attribute の出力例。5 つの attribute Pod がすべて READY 1/1 で Running 状態になっていることを示している

注意

他のコンピュートリソースタイプ (スタンドアロンなど) にセンサーをデプロイしたい場合は、該当するセンサーのデプロイメントドキュメントを参照してください。


商標: Microsoft および Microsoft Azure は Microsoft グループ各社の商標です。Terraform は HashiCorp, Inc. の登録商標です。Kubernetes は The Linux Foundation の登録商標です。その他すべての商標は、それぞれの所有者に帰属します。