Google Cloud

概要

Datadog で Google Cloud Cost Management を使用するには、以下の手順に従います。

  1. Google Cloud Platform インテグレーションを構成する
  2. 必要なアクセス許可 (Google サービス API、エクスポートプロジェクトアクセス、BigQuery データセットアクセス) を持つ詳細使用量コストエクスポートを設定する
  3. 必要なアクセス許可 (バケットアクセス) を持つ Google Cloud Storage バケットを作成または選択する

セットアップ

APITerraform、または以下の手順に従って Datadog で直接セットアップできます。

Google Cloud Platform インテグレーションを構成する

セットアップと構成に移動し、Google Cloud Platform アカウントを追加し、[Google Cloud Platform インテグレーション]を構成する手順に従います。

Datadog Google Cloud Platform インテグレーションでは、このサービスアカウントがアクセスできるすべてのプロジェクトの Cloud Cost を自動的にモニターできます。 これらのプロジェクトのインフラストラクチャーモニタリングホストを制限するには、ホストにタグを適用します。次に、インテグレーションページの Limit Metric Collection Filters セクションで、タグをモニタリングに含めるか除外するかを定義します。
Google Cloud Platform インテグレーションページで構成されたメトリクス収集フィルターの制限セクション

詳細使用量コストエクスポートを有効にする

詳細使用量コストデータには、標準使用量コストデータに含まれるすべての情報に加えて、リソースレベルの詳細なコストデータを提供する追加フィールドが含まれます。
  1. Google Cloud コンソールの Billing の下にある請求エクスポートに移動します。
  2. 詳細使用量コストエクスポートを有効にします (プロジェクトと BigQuery データセットを選択または作成)。
  3. エクスポートが構成された請求アカウントの Billing Account ID を文書化し、エクスポート Project IDDataset Name も文書化します。
強調表示された Google Cloud プロジェクトとデータセット情報

新しく作成された BigQuery 請求エクスポートデータセットには、最新の 2 か月分のデータのみが含まれます。このデータが BigQuery にバックフィルされるまでには 1 ~ 2 日かかる場合があります。

Google サービス API を有効にする

以下のアクセス許可により、Datadog はスケジュールされた BigQuery クエリを使用して請求エクスポートにアクセスし、ストレージバケットに転送することができます。

  • BigQuery API を有効にします。

    1. Google Cloud コンソールで、プロジェクトセレクターページに移動し、Google Cloud プロジェクトを選択します。
    2. すべての転送に対してプロジェクトで請求を有効にします。
  • BigQuery データ転送サービスを有効にします。

    1. API ライブラリで BigQuery データ転送 API ページを開きます。
    2. ドロップダウンメニューから、サービスアカウントを含むプロジェクトを選択します。
    3. ENABLE ボタンをクリックします。

    注: BigQuery データ転送 API は、サービスアカウントを含む Google プロジェクトで有効にする必要があります。

Terraform モードの Cloud Cost Management セットアップフォーム

構成の詳細を定義する

構成のために以下の詳細を入力します。

  • GCP ストレージバケット: ストレージバケットを作成するには Yes を選択し、既存のバケットを使用するには No を選択します。

    : 既存のバケットを使用する場合、バケットが BigQuery エクスポートデータセットと同じ場所にあることを確認します。

  • バケット名: 新しいまたは既存の GCP ストレージバケットの名前。

  • リージョン: バケットの GCP リージョン。例: northamerica-northeast1

  • 請求アカウント ID: 使用量コストエクスポートがコストを報告する請求アカウントの ID。

  • エクスポートプロジェクト名および ID: エクスポートプロジェクトの名前と ID。

  • エクスポートデータセット名および ID: エクスポートデータセットの名前と ID。

コストエクスポートを作成し、Google サービス API を有効にする

上記の詳細使用量コストエクスポートを有効にするおよび Google Service API を有効にするステップを完了し、CCM に戻ります。

生成された Terraform HCL をコピーし、変更を適用する

CCM Terraform セットアップ UI で、Apply Terraform Configuration ステップの指示に従ってください。CCM に戻ってアカウント作成を確認する前に、terraform plan または terraform apply を実行中に表示される問題を解決します。

手動モードの Cloud Cost Management セットアップフォーム

エクスポートプロジェクトアクセスを構成する

エクスポートデータセットプロジェクトリソースにサービスアカウントをプリンシパルとして追加する:

  1. Google Cloud コンソールの IAM ページに移動し、エクスポートデータセットプロジェクトを選択します。
  2. サービスアカウントをプリンシパルとして選択します。
  3. ドロップダウンリストから次の権限を持つロールを選択します。
  • bigquery.jobs.create
  • bigquery.transfers.get
  • bigquery.transfers.update

注: これはカスタムロールである可能性があります。または、既存の Google Cloud ロール roles/bigquery.admin を使用できます。

エクスポート BigQuery データセットアクセスを構成する

エクスポート BigQuery データセットリソースにサービスアカウントをプリンシパルとして追加する:

  1. BigQuery ページのエクスプローラーペインで、プロジェクトを展開してエクスポート BigQuery データセットを選択します。
  2. Sharing > Permissions の順にクリックし、その後 add principal をクリックします。
  3. 新しいプリンシパルフィールドにサービスアカウントを入力します。
  4. ロールリストの選択を使用して、次の権限を持つロールを割り当てます。
  • bigquery.datasets.get
  • bigquery.tables.create
  • bigquery.tables.delete
  • bigquery.tables.export
  • bigquery.tables.get
  • bigquery.tables.getData
  • bigquery.tables.list
  • bigquery.tables.update
  • bigquery.tables.updateData

注: これはカスタムロールである可能性があります。または、既存の Google Cloud ロール roles/bigquery.dataEditor を使用できます。

バケットアクセスを構成する

GCS バケットリソースにサービスアカウントをプリンシパルとして追加する:

  1. Google Cloud コンソールの Cloud Storage Buckets ページに移動し、バケットを選択します。
  2. 権限タブを選択し、grant access ボタンをクリックします。
  3. 新しいプリンシパルフィールドにサービスアカウントを入力します。
  4. 次の権限を持つロールを割り当てます。
    • storage.buckets.get
    • storage.objects.create
    • storage.objects.delete
    • storage.objects.get
    • storage.objects.list

注: これはカスタムロールである可能性があります。または、既存の Google Cloud ロール roles/storage.legacyObjectReader および roles/storage.legacyBucketWriter を使用できます。

Google Cloud Storage バケットを作成または選択する

Cloud Cost Management は、詳細な使用コストの BigQuery データセットから抽出されたデータを受け取るために GCP ストレージバケットを使用します (datadog_cloud_cost_detailed_usage_export のプレフィックス付き)。新しいバケットを作成するか、既存のものを使用できます。

注: バケットは BigQuery エクスポートデータセットと共に配置されている必要があります

(オプション) クロスプロジェクトサービス認証を構成する:

統合されたサービスアカウントが請求エクスポートデータセットとは異なる Google Cloud Platform プロジェクトに存在する場合、クロスプロジェクトサービスアカウント認証を付与する必要があります。

  1. 公式ドキュメントに従い、以下の値を使用してサービスエージェントの作成をトリガーします。

    • ENDPOINT: bigquerydatatransfer.googleapis.com

    • RESOURCE_TYPE: project

    • RESOURCE_ID: エクスポートデータセットプロジェクト

      これにより、service-<billing project number>@gcp-sa-bigquerydatatransfer.iam.gserviceaccount.com のような新しいサービスエージェントが作成されます。

  2. トリガーによって作成された BigQuery データ転送サービスアカウントロールをサービスアカウントのプリンシパルとして追加します

  3. それに roles/iam.serviceAccountTokenCreator ロールを割り当てます。

Cloud Cost を構成する

セットアップと構成に示された手順に引き続き従います。

注: Datadog でデータが安定するまでに、セットアップ後 48~72 時間かかることがあります。

履歴データの取得

新しく作成された BigQuery 請求エクスポートデータセットには、最新の 2 か月分のデータのみが含まれます。このデータが BigQuery にバックフィルされるまでには 1 ~ 2 日かかる場合があります。Datadog は、BigQuery テーブルに表示されたら最大 15 か月分の利用可能な履歴コストデータを自動的に取り込みます。

Google Cloud は、BigQuery エクスポートが最初に作成される際に自動的に含まれる 2 か月を超える追加の履歴データをバックフィルするプロセスを提供していません。

コストタイプ

インジェストしたデータは、以下のコストタイプで可視化することができます。

コストタイプ説明
gcp.cost.amortized期間中、使用時に割り当てられたリソースの総コスト。コストには、プロモーションクレジットやコミットされた使用量割引クレジットが含まれます。
gcp.cost.amortized.shared.resources.allocatedGoogle Cloud Platform の減価償却コストすべてと、コンテナワークロードのための追加の内訳とインサイト。コンテナコスト割り当てが必要です。
gcp.cost.ondemandパブリックおよびプライベートの割引が適用される前の、リソースの総パブリックオンデマンドコスト。

すぐに使えるタグ

Datadog は、複数のソースからのタグで Google Cloud コストデータを自動的に強化します。コストデータにタグがどのように適用されるかの包括的な概要については、タグを参照してください。

以下のすぐに使えるタグは、詳細使用量コストレポートから派生しており、コストデータの発見と理解を容易にします。

タグ名タグの説明
google_product請求されている Google サービス。
google_cost_typeこの項目でカバーされる課金の種類 (例: 通常、税金、調整、または丸め誤差)。
google_usage_type項目の使用量の詳細 (例: Standard Storage US)。
google_locationマルチリージョン、国、リージョン、またはゾーンのレベルで項目に関連する場所。
google_region項目に関連するリージョン。
google_zone項目に関連する Availability Zone。
google_pricing_usage_unit使用量コストを計算するために使用される料金単位 (例: ジビバイト、テビバイト、または年)。
google_is_unused_reservation使用が予約されていたものの使用されなかったかどうか。
service_descriptionGoogle Cloud サービス (例: Compute Engine または BigQuery)。
project_idCloud Billing データを生成した Google Cloud プロジェクトの ID。
project_nameCloud Billing データを生成した Google Cloud プロジェクトの名前。
cost_typeこの行項目が表すコストの種類: regulartaxadjustment、または rounding error
sku_descriptionリソースの使用量の詳細を説明する、使用されたリソースタイプの説明。
resource_nameお客様がリソースに追加する名前。これはすべてのリソースに該当するとは限りません。
global_resource_nameGoogle Cloud によって生成されたグローバルに一意なリソース識別子。

コストと監視可能性の相関

監視可能性データの文脈でコストを確認することは、インフラストラクチャーの変更がコストにどのように影響するかを理解し、コストが変動する理由を特定し、コストとパフォーマンスの両方のインフラストラクチャーを最適化するために重要です。Datadog は、監視可能性とコストメトリクスの相関を簡素化するため、主要な Google 製品のコストデータにおけるリソース識別タグを更新します。

例えば、各 Cloud SQL データベースのコストと使用状況を表示するには、gcp.cost.amortizedgcp.cloudsql.database.cpu.utilization、および gcp.cloudsql.database.memory.utilization (または他の Cloud SQL メトリック) を使ってテーブルを作成し、database_id でグループ化できます。または、Cloud Function の使用状況とコストを並べて表示するには、gcp.cloudfunctions.function.execution_count および gcp.cost.amortizedfunction_name でグループ化してグラフ化できます。

以下のすぐに使えるタグが利用可能です。

Google 製品タグ
Compute Engineinstance_id, instance-type
Cloud Functionsfunction_name
Cloud Runjob_name, service_name
Cloud SQLdatabase_id
Cloud Spannerinstance_id
App Enginemodule_id
BigQueryproject_id, dataset_id
Kubernetes Enginecluster_name

コンテナ割り当て

コンテナ割り当てメトリクスには、Google Cloud Platform メトリクスと同じコストがすべて含まれていますが、コンテナワークロードのための追加の内訳とインサイトも含まれています。詳細はコンテナコスト割り当てを参照してください。

参考資料