FOCUS Cloud Billing データを BigQuery にエクスポートするように設定する

このドキュメントでは、BigQuery への FOCUS 使用料金の Cloud Billing データのエクスポートを設定する際に必要なすべての手順について説明します。FOCUS 使用料金のエクスポートは、FinOps Open Cost and Usage Specification(FOCUS)標準に正規化された詳細な使用料金データを含む不変の BigQuery データセット(リンクされたデータセット)です。

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

  • エクスポートされた Cloud Billing データを保存するプロジェクトを作成し、そのプロジェクトで課金を有効にします(まだ行っていない場合)。
  • プロジェクトと Cloud 請求先アカウントで権限を構成します。
  • FOCUS 使用料金の課金データのエクスポートを有効にします。

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

FOCUS Export を使用した BigQuery の使用料金

BigQuery を使用して課金対象の使用量と費用データを保存、分析すると、BigQuery の使用料金が発生します。BigQuery の主な費用は、BigQuery に保存されるデータのストレージと、クエリ処理に使用されるコンピューティングです。

FOCUS の課金データのエクスポートは、Google 管理の不変エクスポート(リンクされたデータセットを使用)として提供されるため、FOCUS データのストレージ費用は請求されません。ただし、FOCUS データをクエリすると料金が発生します。詳細については、BigQuery の使用料金をご覧ください。

Google Cloud コンソールについて

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

このタスクに必要な権限

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

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

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

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

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

このセクションの 3 つの手順を完了して、BigQuery への FOCUS 使用料金のエクスポートを有効にします。

1. プロジェクトの選択または作成

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

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

Google Cloud コンソールのプロジェクト セレクタページで、 Google Cloud プロジェクトを選択または作成します。

プロジェクトの選択または作成に必要なロール

  • プロジェクトを選択する: プロジェクトの選択に特定の IAM ロールは必要ありません。ロールが付与されているプロジェクトであれば、どのプロジェクトでも選択できます。
  • プロジェクトを作成する: プロジェクトを作成するには、resourcemanager.projects.create 権限を含むプロジェクト作成者ロール(roles/resourcemanager.projectCreator)が必要です。詳しくは、ロールを付与する方法をご覧ください。

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

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

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

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

3. FOCUS の使用料金を BigQuery にエクスポートできるようにする

Google Cloud コンソールの [請求] セクションで Cloud Billing データのエクスポートを有効にします。

FOCUS 使用料金エクスポートでは、Google が提供する不変の BigQuery データセットを使用して、FinOps Open Cost and Usage Specification(FOCUS)標準を使用して正規化された詳細な使用料金データを格納します。FOCUS は、テクノロジー課金データ ジェネレータが一貫した費用と使用状況のデータセットを生成するための明確な要件を定義するオープン仕様です。FOCUS エクスポートの列は、通常、詳細な使用料金エクスポートのフィールドにマッピングされます。

Cloud Billing データを FOCUS BigQuery データセットにエクスポートできるようにするには、次の操作を行います。

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

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

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

  3. [BigQuery Export] タブで、[FOCUS エクスポートを有効にする] をクリックして FOCUS エクスポートを構成します。

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

    BigQuery では、選択したプロジェクトは、エクスポートされたデータを Google が提供する不変の FOCUS データセットに格納するために使用されます。

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

  5. BigQuery にデータをエクスポートするには、BigQuery API が必要です。選択したプロジェクトで BigQuery API が有効になっていない場合は、有効にするように求められます。必要に応じて、[BigQuery API を有効にする] をクリックして API を有効にします。

  6. FOCUS データセットのデータのロケーションを選択します。データのロケーションは、データが保存されるマルチリージョンまたはリージョンを指定します。データセット内のすべてのテーブルでこのロケーションが共有されます。

    1. [ロケーション タイプ] で、[マルチリージョン](推奨)または [リージョン] を選択します。
    2. 指定したロケーション タイプのロケーションを選択します。

      FOCUS 使用料金のエクスポート(標準使用料金と詳細な使用料金の費用データ エクスポートも含む)には、マルチリージョン ロケーション(EU または米国)を選択することをおすすめします。なお、Cloud Billing データのエクスポートでは、すべてのマルチリージョン ロケーション(EU または米国)がサポートされています。BigQuery への Cloud Billing データのエクスポートでは、データセットのリージョン ロケーションのサブセットのみがサポートされています。

      選択したロケーションにより、前月のデータが遡及的にデータセットに追加されるかどうかが決まります。データセットのロケーションとデータの可用性について詳しくは、制限事項をご覧ください。

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

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

FOCUS のデータセットとデータテーブル

FOCUS の使用料金のエクスポートを有効にすると、すぐに BigQuery エクスポートによって、FOCUS のエクスポート設定に基づいて、新しいデータセットに課金データを含むデータセットとテーブルが作成されます。

  • FOCUS エクスポートを有効にしたときに指定した Google Cloud プロジェクトに、次の命名パターンを使用して不変のデータセットが作成されます。

    gcp_billing_immutable_<BILLING_ACCOUNT_ID>_<Location>

    データセットの名前は、次の 3 つのコンポーネントで構成されます。

    1. gcp_billing_immutable - FOCUS エクスポートのデータセット名。
    2. Billing_account_ID - FOCUS エクスポートが有効になっている Cloud 請求先アカウントの ID。
    3. Location - FOCUS エクスポートを有効にしたときに選択した特定のリージョンまたはマルチリージョンのロケーション

    データセット名の例: gcp_billing_immutable_010101_F0FFF0_61C528_us

  • FOCUS 請求データテーブルは、FOCUS データセットに次の名前で作成されます。

    gcp_billing_export_focus_<BILLING_ACCOUNT_ID>

    テーブル名の例: gcp_billing_export_focus_010101_F0FFF0_61C528

FOCUS 使用料金のエクスポート設定を更新する

FOCUS 使用量費用の BigQuery へのエクスポートを有効にした後は、次のようなさまざまなデータ エクスポート設定を変更できます。

  • FOCUS データセットが保存されているプロジェクトを変更します。
  • FOCUS データセットのリージョン設定を変更します。リージョン設定を変更すると、新しい不変のデータセットが作成されます。
  • FOCUS 使用料金のエクスポートを無効にします。

課金データが保存されているプロジェクトやデータセットを更新する前、または FOCUS エクスポートを無効にする前に、これらの更新が BigQuery にエクスポートされる FOCUS 課金データに与える影響について、制限事項データの可用性のガイドラインを確認してください。

FOCUS 使用料金のエクスポートを無効にする

BigQuery にエクスポートされる Cloud Billing データの 1 種類を無効にするには、次の操作を行います。

  1. [FOCUS エクスポートを無効にする] を選択します。
  2. [確認] を選択して、選択内容を保存します。

FOCUS 使用料金のエクスポートを後で再び有効にする場合は、FOCUS エクスポートを最初に有効にしたときに作成された同じ不変データセットを使用するために、同じプロジェクトとロケーションの設定を再選択する必要があります。FOCUS エクスポートが無効になっていた期間にエクスポートされなかったデータのバックフィルはサポートされていません。

FOCUS 使用料金のエクスポートを再度有効にする

以前に無効にした FOCUS エクスポートを再度有効にするには、Cloud Billing データを BigQuery にエクスポートできるようにするをご覧ください。

  • FOCUS エクスポートを最初に有効にしたときに作成された同じ不変データセットを使用するには、元々使用していたのと同じプロジェクトとリージョンの設定を再選択します。
  • 別のプロジェクトまたはリージョン設定を選択すると、新しい不変データセットが作成され、FOCUS エクスポートを再度有効にした日付以降の FOCUS データが新しいデータセットにエクスポートされます。

FOCUS 使用料金のエクスポートのプロジェクトまたはデータセットを変更する

FOCUS 課金データが保存されているプロジェクトまたはデータセットを更新するには、次の操作を行います。

  1. FOCUS は、FOCUS 使用料金のエクスポートを有効にしたときに作成される不変のデータセットを使用します。FOCUS エクスポートの設定を編集するには、まず FOCUS エクスポートを無効にする必要があります。
  2. 次に、[FOCUS エクスポートを有効にする] を選択し、FOCUS エクスポートのプロジェクトと位置情報の設定を選択します。
  3. [保存] を選択して、FOCUS エクスポートの設定を確定します。

    有効化プロセスで、以前の構成とは異なるプロジェクトまたはリージョンを選択すると、選択したプロジェクトに新しい不変データセットが作成されます。

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

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

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

billing-export-bigquery@system.gserviceaccount.com

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

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

FOCUS の使用費用データテーブル

FOCUS 使用量と費用のエクスポートを有効にすると、すぐに BigQuery によって不変のデータセットと、不変の BigQuery データセットに FOCUS データテーブルが作成されます。FOCUS テーブル スキーマの詳細については、FOCUS データ エクスポートの構造をご覧ください。

データの読み込み頻度

FOCUS の使用料金を BigQuery に初めてエクスポートするとき、 Google Cloud の費用データが BigQuery データセットに反映されるまでに数時間かかることがあります。データは時系列順にエクスポートされます。今月と前月のデータを遡及的に含めるようにエクスポートが構成されている場合、エクスポートしたデータが現在の使用料データに追いつくまでに最大 5 日ほどかかることがあります。

BigQuery テーブルへのデータの読み込み頻度をご覧ください。

制限事項

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

Cloud Billing データ エクスポートのテーブル スキーマ

Cloud Billing データ エクスポートのテーブル スキーマは変更される可能性があります。

テーブル スキーマが変更された場合(Cloud Billing データ エクスポートの BigQuery テーブル スキーマに新しいフィールドが追加された場合など)、エクスポートされた列を直接参照するクエリは失敗する可能性があります。この問題を解決するには、エクスポートしたテーブルをクエリして目的の構造で情報を表示する BigQuery ビューを作成することをおすすめします。

その後、エクスポートしたテーブルではなく、ビューから pull するレポートやダッシュボードにフィードするようにクエリを調整できます。ビューを使用すると、クエリとダッシュボードで使用されるデータの構造を標準化できます。

作成するビューではデータを正規化し、クエリですべての関連テーブルに同じスキーマを使用する必要があります。これにより、将来のスキーマの変更から保護し、データスキーマが変更されたときに、それらのインスタンスでビューの基盤となるクエリを変更できるようになります。

FOCUS のエクスポートとデータ保持

Google が提供する FOCUS BigQuery エクスポートにエクスポートされた請求データには、2 年間の有効期間(TTL)ポリシーが適用されます。2 年以上前のデータは、BigQuery データセットの提供された FOCUS エクスポート テーブルから自動的に削除されます。FOCUS の請求データ履歴を 2 年を超えて保持する必要がある場合は、FOCUS データを所有する長期保存テーブルにコピーしてください。

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(チューリッヒ)

リージョン:

  • me-central1(ドーハ)
  • me-central2(ダンマーム)
  • me-west1(テルアビブ)

ロケーションとデータの可用性:

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

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

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

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

エクスポート設定を無効にする、再度有効にする、編集する

エクスポート設定を無効にする、再度有効にする、または編集して、エクスポートされた課金データが保存されているプロジェクトまたはデータセットを更新した場合、以前にエクスポートされた課金データは新しいデータセットにバックフィルされません。別のプロジェクトまたはデータセットに切り替える前にエクスポートされた課金情報を含めるには、新しいデータセットと以前のデータセットを手動で結合する必要があります。詳細については、結合オペレーションをご覧ください。

データセットの暗号化

BigQuery データセットは、データセットの作成時に暗号鍵オプション( Google-owned and Google-managed encryption keyまたは顧客管理の暗号鍵(CMEK))を設定することで、保存データの暗号化を使用するように構成されます。データセットの暗号化オプションは、作成時にのみ設定できます。データセットの作成後に暗号化設定を変更することはできません。

BigQuery への Cloud Billing データのエクスポートをすでに有効にしていて、データセットがGoogle-managed encryption keyを使用するように構成されている場合は、bq コマンドライン ツールを使用して、データセット内の各テーブルで CMEK を有効にできます。特に構成しない限り、BigQuery はデータセットのデフォルト鍵を自動的に使用して、エクスポート テーブルを保護します。

BigQuery テーブルの CMEK を有効にする方法を確認する

行レベルのセキュリティ

エクスポートされたデータを含むテーブルで 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);

FOCUS または詳細な費用データと GKE

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

リソースレベルのタグ

リソースレベルのタグが BigQuery のエクスポートに反映されるまで、最長で 1 時間ほどかかることがあります。1 時間以内にタグが追加または削除された場合、あるいはリソースの存在時間が 1 時間未満の場合は、エクスポートに表示されないことがあります。

リソースレベルのタグは、標準の使用料金のエクスポート詳細な使用料金のエクスポートの複数のリソースで使用できます。