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

このガイドでは、BigQuery への Cloud Billing データのエクスポートを有効にするために必要なすべての設定手順を説明します。

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

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

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

Google Cloud コンソールについて

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

このタスクに必要な権限

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

また、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 データなど、請求管理に必要なリソースを格納する Google Cloud プロジェクトを作成することをおすすめします。この請求管理用の Google Cloud プロジェクトは、Cloud Billing API へのアクセスや、プログラムによる予算通知の Pub/Sub チャンネルなどの Cloud Billing 管理タスクにも使用できます。

重要: データセットの格納に選択する Google Cloud プロジェクトは、BigQuery データセットにエクスポートする予定のデータを格納する同じ Cloud 請求先アカウントにリンクする必要があります。Google Cloud プロジェクトは、ある時点において 1 つの Cloud 請求先アカウントのみにリンクされます。Cloud 請求先アカウントは、1 つ以上のプロジェクトにリンクされます

Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

プロジェクト セレクタに移動

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

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 プロジェクトで有効にする必要があります。プロジェクト セクションの推奨事項に従っている場合、これは請求管理用の Google Cloud プロジェクトです。

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

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

    BigQuery Data Transfer Service API ページに移動

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

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

API の有効化の詳細については、Service Usage のドキュメントをご覧ください。

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

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

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

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

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

  1. Google Cloud コンソールにログインし、[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. [テーブルの有効期限を有効にする] オプションがオフになっていることを確認します。

      テーブルの有効期限を有効にして日数を入力すると、このデータセットに作成された新しいテーブルは、作成後、指定した日数が経過すると自動的に削除されます。重要: エクスポートされた Cloud Billing データレコードを含むテーブルを削除すると、それらのレコードは消去され、削除されたレコードのバックフィルはできません。

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

      顧客管理の暗号鍵(CMEK)オプションは使用しないでください。Cloud Billing データレコードを BigQuery にエクスポートする場合、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 の費用データが BigQuery データセットに表示されるまでに数時間かかる場合があります。データは時系列でエクスポートされます。エクスポートに今月と前月に遡ってデータが含まれるように構成されている場合、エクスポートしたデータが現在の使用状況データに追いつくまでに最大 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 コンソールで利用可能な費用と料金のレポート