BigQuery への Cloud Billing データのエクスポートを設定する

このドキュメントでは、BigQuery への Cloud Billing データのエクスポートを設定する際に必要なすべての設定手順について説明します。

Cloud Billing データを BigQuery にエクスポートするには、次の手順を行います。

  • Cloud Billing データを保存するプロジェクトを作成し、そのプロジェクトで課金を有効にします(まだ行っていない場合)。
  • プロジェクトと Cloud 請求先アカウントで権限を構成します。
  • BigQuery Data Transfer Service API を有効にします(料金データのエクスポートに必要です)。
  • データを保存する BigQuery データセットを作成します。
  • データセットに書き込む費用データと料金データの Cloud Billing エクスポートを有効にします。

このドキュメントでは、これらの各ステップについて詳しく説明します。

Google Cloud コンソールについて

Google Cloud Console(ドキュメントを表示コンソールを開く)は、Google Cloud プロダクトを使用するシステムのプロビジョニング、構成、管理、モニタリングに使用されるウェブ UI です。Google Cloud コンソールを使用して、Google Cloud と Cloud Billing のリソースを設定して管理します。

このタスクに必要な権限

Google Cloud 使用料金データの BigQuery データセットへのエクスポートを有効にして構成するには、次の権限が必要です。

  • Cloud Billing の場合は、対象の Cloud 請求先アカウントに対する、請求先アカウントの費用管理者ロールまたは請求先アカウント管理者ロールが必要です。
  • BigQuery には、Cloud Billing データの保存に使用する BigQuery データセットを含む Google Cloud プロジェクトに対する BigQuery ユーザーのロールが必要です。

また、Cloud Billing 料金データのエクスポートを有効にして構成するには、次の権限が必要です。

  • Cloud Billing の場合、対象の Cloud 請求先アカウントに対する請求先アカウント管理者のロールが必要です。
  • BigQuery には、Cloud Billing 料金データが格納される BigQuery データセットを含む Google Cloud プロジェクトに対して、BigQuery 管理者のロールが必要です。
  • 対象のデータセットを含む Google Cloud プロジェクトには、resourcemanager.projects.update 権限が必要です。この権限は、roles/editor のロールに含まれています。

他のプロジェクト権限が必要になる場合もあります。Google Cloud 組織のメンバーで、新しいプロジェクトを作成するには、組織またはフォルダに対するプロジェクト作成者のロールが必要です。新しいプロジェクトを作成するには、次の権限が必要です。

  • resourcemanager.organizations.get
  • resourcemanager.projects.create

Google Cloud の権限の詳細については、以下をご覧ください。

Cloud Billing データを BigQuery にエクスポートできるようにする

このセクションの 5 つの手順を完了して、BigQuery への Cloud Billing データのエクスポートを有効にします。

課金データのエクスポートを有効にして、BigQuery で Cloud Billing データのサンプルクエリを実行する方法については、課金データのエクスポートのインタラクティブなチュートリアルをご覧ください。

販売パートナーは、Partner Sales Console を使用して、チャネル サービスの課金データに対して販売パートナー固有のエクスポートを設定できます。その場合は、このページの手順 1~4 に沿って、プロジェクトと BigQuery データセットを作成します。手順 5 では、チャネル サービスのデータを BigQuery にエクスポートするの説明に従ってエクスポートを有効にします。

1. プロジェクトを選択または作成する

BigQuery にエクスポートされた Cloud Billing データは、BigQuery データセットに格納されます。データセットは、指定した Google Cloud プロジェクトに格納されます。

エクスポートされた Cloud Billing データなど、Cloud 請求先アカウントの FinOps と請求管理に必要なすべてのリソースを格納する、別の Google Cloud プロジェクトを作成して使用することをおすすめします。請求管理のユースケースで FinOps 重視のプロジェクトを使用するメリットの詳細をご確認ください。

In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

Go to project selector

詳細については、プロジェクトの作成と管理をご覧ください。

2. 課金が有効になっていることを確認する

データセットの格納用に選択した Google Cloud プロジェクトで課金が有効になっていて、その Google Cloud プロジェクトが、BigQuery データセットにエクスポートする予定のデータが含まれる同じ Cloud 請求先アカウントにリンクされていることを確認する必要があります。

3. BigQuery Data Transfer Service API を有効にする

Cloud Billing の料金データを BigQuery にエクスポートする場合は、BigQuery Data Transfer Service API を有効にする必要があります。Cloud Billing の料金データをエクスポートする予定がない場合は、 手順 4 に進みます。BigQuery データセットを作成するにスキップします。

BigQuery Data Transfer Service API は、BigQuery データセットの格納に使用しているのと同じ Google Cloud プロジェクトで有効にする必要があります。プロジェクト セクションの推奨事項に従っている場合、これは FinOps または請求管理用の Google Cloud プロジェクトです。

BigQuery Data Transfer Service API を有効にする方法は次のとおりです。

  1. Google Cloud Console にログインし、API のページに移動します。

    BigQuery Data Transfer Service API ページに移動

  2. ページの左上で、プロジェクトを選択します。BigQuery データセットの格納に使用している同じプロジェクトで BigQuery Data Transfer Service API を有効にする必要があります。プロジェクト セクションの推奨事項に従っている場合、これは FinOps または請求管理用の Google Cloud プロジェクトです。

  3. [BigQuery Data Transfer Service API] ページで、[有効にする] をクリックして、選択したプロジェクトで API を有効にします。

API の有効化の詳細については、サービス使用状況のドキュメントをご覧ください。

4.BigQuery データセットを作成する

BigQuery への Cloud Billing データのエクスポートを有効にするには、エクスポートしたデータを管理する BigQuery データセットを事前に少なくとも 1 つ作成しておく必要があります。同じデータセットに標準の使用料金データ、詳細な使用料金データ、料金データを格納できます。

データセットは、指定した Google Cloud プロジェクトに格納されます。データセットは、テーブルビューへのアクセスを整理して制御するために使用されるトップレベル コンテナです。テーブルまたはビューはデータセットに属していなければなりません。したがって、データを BigQuery に読み込む前に、1 つ以上のデータセットを作成する必要があります。

既存のデータセットを使用する場合は、BigQuery への課金データのエクスポートに影響する可能性のある制限事項を確認してください。たとえば、顧客管理の暗号鍵による暗号化を使用するように構成されたデータセットにデータをエクスポートしたり、サポート対象外のリージョン ロケーションで構成されたデータセットを使用したりすることはできません。

BigQuery データセットの作成手順は次のとおりです。

  1. Google Cloud Console にログインし、BigQuery ページに移動します。

    [BigQuery] ページに移動

  2. Google Cloud Console ページの上部にある [プロジェクト] プルダウン リスト(マイ プロジェクト )で、データセットの格納用に設定したプロジェクトを選択します。次のステップで使用するため、プロジェクト ID をメモしておきます。

  3. [エクスプローラ] パネルの固定したプロジェクトのセクションで、 your-project-ID をクリックしてプロジェクトを開き、既存のデータセットと保存済みクエリを確認します。

  4. プロジェクト ID の横にある [アクションを表示] メニュー()をクリックして、[データセットを作成] をクリックします。[データセットを作成] パネルが開きます。

    1. [データセット ID] を入力します。 プロジェクト固有の ID ではなく、all_billing_data など、プロジェクトにまたがる ID をおすすめします。
    2. [データのロケーション] を選択します。データのロケーションは、データが保存されるマルチリージョンまたはリージョンを指定します。この場所は、このデータセット内のすべてのテーブルで共有されます。

      マルチリージョン ロケーション(EU または米国)を選択することをおすすめします**。標準の使用料金と詳細な使用料金データのエクスポートでは、選択したロケーションが前月のデータが過去に遡って遡及的にデータセットに追加されるかどうかに影響します。データセットのロケーションとデータの可用性について詳しくは、制限事項をご確認ください。

      Cloud Billing データのエクスポートでは、すべてのマルチリージョン ロケーション(EU または米国)がサポートされています。ただし、BigQuery への Cloud Billing データのエクスポートでは、データセットのリージョン ロケーションのサブセットのみがサポートされていますデータセットのロケーションの詳細については、制限事項をご覧ください。

      データセットを作成した後で、そのロケーションを変更することはできません。ロケーションに関する詳細をご覧ください。

    3. [テーブルの有効期限を有効にする] オプションがオフになっていることを確認します。

      テーブルの有効期限を有効にして日数を入力すると、このデータセットに作成された新しいテーブルは、作成後、指定した日数が経過すると自動的に削除されます。

    4. [詳細オプション] セクションで、[暗号化] の設定が「Google が管理する暗号鍵」になっていることを確認します。

      顧客管理の暗号鍵(CMEK)オプションは使用しないでください。Cloud Billing データレコードを BigQuery にエクスポートする場合、CMEK 暗号化はサポートされていません。CMEK

    5. 保存するには、[データセットを作成] をクリックします。

BigQuery への課金データのエクスポートに影響する可能性がある制限事項をご確認ください。

販売パートナー*は、販売パートナー固有のチャネル サービスの課金データのエクスポートを有効にするときに作成したプロジェクトとデータセットを再利用できます。

5. Cloud Billing の BigQuery データセットへのエクスポートを有効にする

Google Cloud コンソールの Cloud Billing セクションで Cloud Billing データのエクスポートを有効にします。エクスポートできるデータの種類は次のとおりです。

  • 標準的な使用料金データ - アカウント ID、請求書の日付、サービス、SKU、プロジェクト、ラベル、ロケーション、費用、使用量、クレジット、調整、通貨など、標準の Cloud 請求先アカウントの使用料金情報が含まれます。

    標準的な使用量データのエクスポートを使用して、費用データの幅広い傾向を分析できます。

  • 詳細な使用料金データ - Cloud 請求先アカウントの費用の詳細が含まれます。標準的な使用料金データに加えて、リソースレベルの費用データ(サービスの使用状況を生成する仮想マシンや SSD など)も含まれます。

    詳細なエクスポートを使用して、リソースレベルでの費用を分析し、コスト増加を引き起こしている可能性のあるリソースを特定します。

    詳細なエクスポートには、Compute Engine に関するリソースレベルの情報が自動的に含まれます。詳細なデータ エクスポートで Google Kubernetes Engine(GKE)クラスタの費用の内訳を表示するには、GKE の費用割り当ても有効にする必要があります。

  • 料金データ - アカウント ID、サービス、SKU、プロダクト、地理的メタデータ、料金の単位、通貨、集計、階層など、Cloud 請求先アカウントの料金情報が含まれます。

Cloud Billing の使用料金データまたは料金データを BigQuery にエクスポートできるようにするには、次のようにします。

  1. Google Cloud コンソールで [課金データのエクスポート] ページに移動します。

    [課金データのエクスポート] ページに移動

  2. プロンプトで、課金データのエクスポートする Cloud 請求先アカウントを選択します。選択した請求先アカウントの [課金データをエクスポート] ページが表示されます。

  3. [BIGQUERY EXPORT] タブで、エクスポートするデータの種類ごとに [設定を編集] をクリックします。各種類のデータを個別に構成します。

  4. [プロジェクト] リストから、BigQuery データセットの格納用に設定したプロジェクトを選択します。

    選択したプロジェクトは、エクスポートされた Cloud Billing データを BigQuery データセットに格納するために使用されます。

    標準と詳細な使用料金データのエクスポートの場合、Cloud Billing データには、同じ Cloud 請求先アカウントによって支払われた Google Cloud プロジェクトのすべての使用量と費用データが含まれます。

    料金データのエクスポートの場合、Cloud Billing データには、選択したデータセット プロジェクトに関連付けられている Cloud 請求先アカウントに固有の料金データのみが含まれます。

  5. [データセット ID] フィールドで、エクスポートした Cloud Billing データの格納用に設定したデータセットを選択します。

    BigQuery にエクスポートされるすべてのタイプの Cloud Billing データには、以下が適用されます。

    • BigQuery にデータをエクスポートするには、BigQuery API が必要です。選択したプロジェクトで BigQuery API が有効になっていない場合は、有効にするように求められます。[BigQuery API を有効化] をクリックして API を有効にします。
    • 選択したプロジェクトに BigQuery データセットが含まれていない場合は、データセットを作成するよう求められます。必要に応じて、この手順に沿って新しいデータセットを作成します
    • 既存のデータセットを使用している場合は、BigQuery への課金データのエクスポートに影響する可能性がある制限事項CMEK を使用するように構成されたデータセットにデータをエクスポートできない、サポートされていないリージョン ロケーションで構成されたデータセットを使用できないなど)を確認します。

    料金データのエクスポートの場合、BigQuery にデータをエクスポートするには、BigQuery Data Transfer Service API が必要です。選択したプロジェクトで BigQuery Data Transfer Service API が有効になっていない場合は、有効にするように求められます。必要に応じて、API を有効にする手順を行います。

  6. [保存] をクリックします。

エクスポートする Cloud Billing データを更新する

BigQuery への Cloud Billing データのエクスポートを有効にすると、さまざまなタイプを無効または有効にすることで、エクスポートするデータを変更できます。

いずれかのタイプのデータ エクスポートを無効にする前に、BigQuery にエクスポートされる課金データに与える影響について、制限事項データ可用性のガイドラインを確認してください。

BigQuery にエクスポートされる Cloud Billing データのうち、いずれかのタイプを無効にする手順は次のとおりです。

  1. 必要に応じて [標準エクスポートを無効化]、[詳細なエクスポートを無効化]、[料金のエクスポートを無効化] のいずれかを選択します。
  2. [確認] を選択して、選択内容を保存します。

BigQuery へのエクスポートで現在無効なタイプの Cloud Billing を有効にするには、Cloud Billing データを BigQuery にエクスポートできるようにするをご覧ください。

データセットの権限について

BigQuery への Cloud Billing データのエクスポートでは、サービス アカウントを使用してデータセットの権限を管理します。

BigQuery への Cloud Billing データのエクスポートを有効にすると、指定したデータセットにサービス アカウントがオーナーとして自動的に追加されます。サービス アカウントは次のようになります。

  • 標準の使用料金と詳細な使用料金のデータセットの場合: billing-export-bigquery@system.gserviceaccount.com
  • 価格データセットの場合: cloud-account-pricing@cloud-account-pricing.iam.gserviceaccount.com

サービス アカウントは Google が所有、管理し、オフライン プロセスでテーブルを作成して Cloud Billing レコードを書き込むために必要な権限を備えています。

BigQuery への課金データのエクスポートに影響する可能性がある制限事項をご確認ください。

課金データテーブル

BigQuery への Cloud Billing のエクスポートを有効にした直後に、課金データテーブルが BigQuery データセットに自動的に作成されます。これらの BigQuery テーブルとテーブル スキーマの詳細については、BigQuery で自動作成されるデータテーブルについてをご覧ください。

データの読み込み頻度

  • BigQuery への標準の使用料金と詳細な使用料金のエクスポートを有効にした初回は、Google Cloud の費用データが表示されるまでに数時間を要する場合があります。データは時系列でエクスポートされます。エクスポートに今月と前月に遡ってデータが含まれるように構成されている場合、エクスポートしたデータが現在の使用状況データに追いつくまでに最大 5 日ほどかかることがあります。
  • BigQuery への料金データのエクスポートを初めて有効にした際には、Google Cloud の料金データが表示されるまでに最大 48 時間を要する場合があります。

BigQuery テーブルへのデータの読み込み頻度について学習する

制限事項

Cloud Billing データを BigQuery にエクスポートする場合、次の制限があります。

  • Cloud Billing データの使用に対応している BigQuery データセットのロケーション

    BigQuery データセットは、マルチリージョン(EU または米国)かリージョンのいずれかのロケーションを使用するように構成されています。データセットのロケーションは作成時に設定します。データセットの作成後にロケーションを変更することはできません。

    Cloud Billing データのエクスポートは、すべてのマルチリージョン ロケーション(EU または米国)をサポートしていますが、リージョンのロケーションではサブセットのみをサポートしています。Cloud Billing エクスポート設定を構成するときに、サポート対象外のリージョン ロケーションを使用するように構成されたデータセットを作成または選択すると、エクスポートの設定を保存する際に、無効なデータセット リージョン エラーが表示されます。

    次の表に、Cloud Billing データを含む BigQuery データセットで使用できるマルチリージョン ロケーションリージョン ロケーションを示します。

    南北アメリカ アジア太平洋 ヨーロッパ

    マルチリージョン: 米国

    リージョン:

    • northamerica-northeast1(モントリオール)
    • southamerica-east1(サンパウロ)
    • us-central1(アイオワ)
    • us-east1(サウスカロライナ)
    • us-east4(北バージニア)
    • us-west1(オレゴン)
    • us-west2(ロサンゼルス)
    • us-west3(ソルトレイクシティ)
    • us-west4(ラスベガス)

    リージョン:

    • asia-east1(台湾)
    • asia-east2(香港)
    • asia-northeast1(東京)
    • asia-northeast2(大阪)
    • asia-northeast3(ソウル)
    • asia-south1(ムンバイ)
    • asia-southeast1(シンガポール)
    • asia-southeast2(ジャカルタ)
    • australia-southeast1(シドニー)

    マルチリージョン: EU

    リージョン:

    • europe-central2(ワルシャワ)
    • europe-north1(フィンランド)
    • europe-west1(ベルギー)
    • europe-west2(ロンドン)
    • europe-west3(フランクフルト)
    • europe-west4(オランダ)
    • europe-west6(チューリッヒ)

  • 標準的な使用料金データまたは詳細な使用料金データを格納する BigQuery データセットの場合、データセットで構成したロケーションのタイプにより、データセットにエクスポートされる Google Cloud 課金データの対象期間が変わります。

    • データセットがマルチリージョン ロケーション(EU または米国)を使用するように構成されている場合、エクスポートの再有効化を実施しない限り、エクスポートを最初に有効にした日の前月の始め以降に発生した Google Cloud 課金データがデータセットに保存されます。つまり、Google Cloud の課金データは、当月と前月について遡及的に追加されます。エクスポートされたデータの最初のバックフィルでは、Cloud Billing データの遡及的なエクスポートが完了して現在の使用状況データが表示されるまでに最大で 5 日ほどかかる場合があります。
    • データセットが、サポートされたリージョン ロケーションを使用するよう構成されている場合、標準的な使用料金データおよび詳細な使用料金データは、Cloud Billing エクスポートを有効にした日付以降に発生した Google Cloud 課金データのみが反映されます。つまり、Google Cloud の課金データは、非マルチリージョン データセット ロケーションに対して遡及的に追加されることはありません。したがって、エクスポートを有効にする前の Cloud Billing データは表示されません。

    • 詳細については、データの可用性をご覧ください。

  • 料金データを格納する BigQuery データセットには、Cloud Billing データのエクスポートの設定日以降に発生した Google Cloud 課金データのみが保存されます。つまり、Google Cloud の料金データが過去に遡って追加されることはなく、エクスポートを有効にする前の Cloud Billing の料金データは表示されません。詳細については、データの可用性をご覧ください。

  • 詳細な使用料金データをエクスポートする場合、Compute Engine に関するリソースレベルの情報も自動的にエクスポートされます。詳細なデータ エクスポートで Google Kubernetes Engine(GKE)クラスタの費用の内訳を表示するには、GKE の費用割り当てを有効にする必要があります。

  • データセットの暗号化: BigQuery に課金データをエクスポートする場合、顧客管理の暗号鍵(CMEK)はサポートされていません。課金データを含むデータセットで CMEK を有効にすると、Cloud Billing は、データセット内の該当テーブルに課金データを書き込むことができなくなります。代わりに、Google が所有して管理する鍵をデータセットが使用できるようにする必要があります。

  • エクスポートされたデータを含むテーブルで BigQuery の行レベルのセキュリティを使用するには、BigQuery の TRUE フィルタを使用して、テーブルに対する完全アクセス権を Cloud Billing エクスポート サービス アカウント billing-export-bigquery@system.gserviceaccount.com に付与する必要があります。次のコマンドで Cloud Billing サービス アカウントにアクセス権を付与します。

    CREATE ROW ACCESS POLICY cloud_billing_export_policy
    ON `__project_id__.__dataset_id__.__table_id__`
    GRANT TO ('serviceAccount:billing-export-bigquery@system.gserviceaccount.com')
    FILTER USING (TRUE);
    
  • リソースレベルのタグが BigQuery のエクスポートに反映されるまで、最長で 1 時間ほどかかることがあります。1 時間以内にタグが追加または削除された場合、あるいはリソースの存在時間が 1 時間未満の場合は、エクスポートに表示されないことがあります。

    リソースレベルのタグは、次のリソースで使用できます。

    • Compute Engine インスタンス
    • Spanner インスタンス
    • Cloud Run サービス
    • Artifact Registry リポジトリ
  • VPC Service Controls を使用している場合、BigQuery のエクスポートがブロックされることがあります。この問題を解決するには、VPC を手動で除外する必要があります。

Google Cloud コンソールで利用可能な費用と料金のレポート