フレキシブル割引プラン

フレキシブル Savings Plan(FSP)は、費用ベースの確約利用割引(CUD)の一種で、 Google Cloudの使用料金を節約できます。FSP では、サブスクリプション期間(1 年間または 3 年間)の月間利用資格期間に、対象となるプロダクト(ファースト パーティ、オープンソース、参加しているサードパーティのモデルを含む)のコレクションに対して最小利用額を確約します。確約と引き換えに、対象となる使用量に対して割引が適用されます。

FSP では、費用ベースの CUD に次の 2 つの新機能が導入されています。

時間単位の利用資格ウィンドウを使用する標準の支出ベースの確約利用割引(CUD)とは異なり、FSP では月単位の利用資格ウィンドウを使用します。そのため、使用パターンが急激に変動するワークロードや予測不可能なワークロードに最適です。

対象となる SKU を探す

Gemini Enterprise FSP は、対象となる Google Cloud 生成 AI モデルとプロダクト サービスに適用されます。これには、ファーストパーティ モデル(Gemini など)、オープンソースの Model-as-a-Service サービス、Vertex AI と Cloud Marketplace で利用可能なサードパーティ(3P)の基盤モデルが含まれます。対象となる SKU の完全なリストについては、Gemini Enterprise フレキシブル Savings Plan の対象となる SKU ページをご覧ください。

フレキシブル割引プランの仕組み

フレキシブル Savings Plan を購入すると、1 年間または 3 年間の期間で特定の月額料金を確約します。システムは使用量をモニタリングし、割引適用可能な使用量モデルの料金を適用します。

対象となるプロダクトで月額コミットメント額を使用した場合、FSP の料金は請求されません。対象プロダクトを使用すると、FSP コミットメントが減額されます。

範囲と料金

FSP の範囲と料金には次のルールが適用されます。

  • 定期購入期間の上限: 期間が 1 か月を超える定期購入は、FSP で割引できません。たとえば、商品の 1 年間のサブスクリプションがある場合、FSP 割引は適用されません。
  • より良いレートで支払う: 対象となるすべてのプロダクトとサブスクリプションについて、常に低い(より良い)レートで支払います。このコミットメント内のプロダクトについて交渉価格がある場合は、一番低い価格が適用されます。FSP では、どのプロダクトの価格も標準のオンデマンド料金を超えることはありません。詳しくは、より良いレートで支払うをご覧ください。
  • 割引対象外の商品: 一部の商品は FSP 割引の対象外ですが、FSP から引き落とされます。これらの料金については、料金表レポートをご覧ください。

Gemini Enterprise 料金

1 年間のフレキシブル Savings Plan では 10% の割引、3 年間のフレキシブル Savings Plan では 20% の割引が、 Gemini Enterprise フレキシブル Savings Plan の対象となる SKU ページに記載されているすべての SKU に適用されます。ただし、次の SKU は FSP による追加割引の対象外ですが、FSP コミットメントは引き続き使用されます。

プロダクト 説明 SKU ID
プロビジョンド スループット Vertex AI: プロビジョンド スループット 3 か月 13D9-6212-6E17
プロビジョンド スループット Vertex AI: プロビジョンド スループット 1 年間 9192-74A6-DE45
プロビジョンド スループット Agent Platform モデル: プロビジョンド スループット 3 か月(グローバル以外) F878-80F5-63BF
プロビジョンド スループット Agent Platform モデル: プロビジョンド スループット 1 年間(非グローバル) 2106-EA10-F9CC
プロビジョンド スループット Vertex AI Open Source Model as a Service: プロビジョンド スループット 3 か月 1E0D-E522-0E12
プロビジョンド スループット Vertex AI オープンソース モデル(サービスとして): プロビジョンド スループット 1 年 6009-4CB8-85D6
フル ファインチューニング ファーストパーティ基盤モデルの完全なファインチューニング サービス(1 年間のコミット期間) 88CB-4A51-012D
フル ファインチューニング ファーストパーティ基盤モデルのフル ファインチューニング サービス(3 年間のコミット期間) 0280-9537-E40B
フル ファインチューニング 推論フル ファイン チューニング 1P モデル 1 年間のコミットメント 74E1-4528-1F94
フル ファインチューニング 推論フル ファイン チューニング 1P モデル 3 年間の確約利用 26B4-6E81-10C0
Speech-to-Text Speech-to-Text On-Device 言語サブスクリプション 9886-4062-830D
Speech-to-Text Speech-to-Text On-Device サービング ライブラリのサブスクリプション BEF8-431D-9BF4
Text-to-Speech Text-to-Speech オンデバイス サービング ライブラリのサブスクリプション 3D6B-450F-BA51
Text-to-Speech Text-to-Speech オンデバイス音声サブスクリプション 80AF-473F-9A8D
Gemini Enterprise app Gemini Business: サブスクリプション - 1 か月契約 D03F-9D37-4753
Gemini Enterprise app Gemini Business: サブスクリプション - 1 年間 FE0D-41B2-9575
Gemini Enterprise app Gemini Enterprise Business エディション: サブスクリプションの前払い - 1 か月間 FA2D-55B2-023F
Gemini Enterprise app Gemini Enterprise Business エディション: サブスクリプションの前払い - 1 年間 FB43-B23B-BD15
Gemini Enterprise app Gemini Enterprise Standard: サブスクリプション - 1 か月間 0532-C2F0-1DF0
Gemini Enterprise app Gemini Enterprise Standard: サブスクリプション - 1 年間 B3D3-B9E1-610F
Gemini Enterprise app Gemini Enterprise Plus: サブスクリプション - 1 か月間 4EDF-A125-F89E
Gemini Enterprise app Gemini Enterprise Plus: サブスクリプション - 1 年間 5657-9AD2-26F6
Gemini Enterprise app Gemini Enterprise Frontline: サブスクリプション - 1 か月間 C3B7-10E2-45EE
Gemini Enterprise app Gemini Enterprise Frontline: サブスクリプション - 1 年間 070B-47E2-47B3
Gemini Enterprise app Gemini Enterprise Standard Emerging: サブスクリプション - 1 か月間 54F6-590C-84B5
Gemini Enterprise app Gemini Enterprise Standard Emerging: サブスクリプション - 1 年間 C853-D67D-D911
Gemini Enterprise app Gemini Notebook Enterprise: サブスクリプション - 1 か月間 BF82-0F2F-7FA3
Gemini Enterprise app Gemini Notebook Enterprise: サブスクリプション - 1 年間 8597-66F8-5FF1

サードパーティ モデルとプライベート オファー

Gemini Enterprise フレキシブル Savings Plan は、Vertex AI と Cloud Marketplace を通じて提供されるサードパーティ(3P)の基盤モデルをサポートしています。

Private Offers とのインタラクション

FSP とプライベート オファーの連携は、次のルールに基づいて行われます。

  • 特典の申請階層:
    1. プライベート オファーの割引: パートナーの定価から割引されるプライベート オファーを通じて FSP 対象のサードパーティ製品を購入した場合、割引価格とプライベート オファーの条件が適用されます。また、割引が適用された費用は、毎月の FSP コミットメントから差し引かれます。
    2. プライベート オファーの CUD クレジット: クレジットが付与されるプライベート オファーを通じて FSP 対象のサードパーティ製品を購入した場合、プライベート オファーの購入または分割払いは、毎月の FSP コミットメントから差し引かれます。購入したクレジットの使用は、月単位の FSP コミットメントから追加で差し引かれることはありません。
エンタープライズ契約のコミットメントの相殺

FSP のサードパーティ モデルの費用は、組織のエンタープライズ コミットメントから引き落とされます。この引き落としは、エンタープライズ契約で定義されている標準の Cloud Marketplace 引き落としルールと契約上限に従います。

利用資格期間

利用資格期間は、使用量がコミットメント金額と比較される定期的な期間です。利用資格期間内にコミットメント金額をすべて使用しなかった場合は、残りの金額が請求されます。使用率の低い FSP コミットメントは繰り越されません。

FSP は月単位の利用資格期間をサポートします。つまり、コミットメントした費用を消化する期間は 1 か月間です。ただし、課金システムは使用量を評価し、FSP 割引を 1 時間ごとに適用します。

たとえば、月額確約料金が 100 ドルの場合、システムは 1 時間ごとに使用状況を確認します。1 時間目に割引対象の使用量がある場合、割引が適用され、100 ドルのコミットメントにカウントされます。このプロセスは、100 ドルの上限に達するか、その月が終了するまで継続されます。月末までに使用量が $100 を超えた場合、それ以降の使用量にはデフォルトの消費モデルの料金が適用されます。

コミットメントの過剰使用(コミットメントを超える使用)

1 か月あたりの対象となる使用量がコミットメントした月額料金を超えた場合、FSP は上限までの使用量をカバーし、残りの使用量は標準のオンデマンド料金またはこのコミットメント内のプロダクトの交渉価格で請求されます。

  • メカニズム: システムは、月額コミットメント額に相当する使用量に FSP 割引料金を適用します。
  • 費用: 月間の上限を超える使用量については、標準のオンデマンド料金(「デフォルト」の使用量モデル)またはコミットメント内のプロダクトの交渉済み料金のいずれかで請求されます。超過分には FSP 割引は適用されません。

使用率の低いコミットメント(コミットメントを満たしていない)

ある月の対象となる使用量がコミットメントの金額を下回った場合でも、コミットメントの全額をお支払いいただく必要があります。

  • 繰り越しなし: 未使用のコミットメントは翌月に繰り越されません。
  • 費用: 購入した月額コミットメントの全額をお支払いいただきます。コミットメントの未使用部分については、月末にコミットメント料金が請求されます。

割引の適用方法

FSP の範囲内では、割引は次の順序で適用されます。

  1. 使用時間: 以前の使用時間の費用が最初に適用されます。
  2. 割引レベル: 特定の使用時間内で、オンデマンドの正規価格に対して最も割引率の高い使用量が次に適用されます。このグリーディー選択により、コミットメントの費用で最初に最も高い割引率が適用されます。
  3. 比例適用: 複数のリソースの使用量が 1 時間以内に同じ割引率を共有している場合、コミットメントはその割引レベルと使用時間内のすべての費用に比例して適用されます。

FSP の対象となるサブスクリプションをお持ちの場合、サブスクリプションの特典がまず使用量に適用されます。定期購入の費用は FSP の費用コミットメントの達成にカウントされますが、FSP ではサブスクリプション料金に追加の割引は適用されません。

より良いレートで支払う

デフォルトの使用量モデルの料金、サードパーティのプライベート オファー、FSP 使用量モデルの料金のうち、最も低い料金が適用されます。

開始時間と日割り計算

FSP を購入すると、購入時間に基づいてコミットメントが有効になります。

  • :00 ~ :49(1 時間の最初の 50 分間)に購入した場合: 次の時間の開始時に開始します。
  • :50 ~ :59(正時まで 10 分以内)に購入した場合: 1 時間スキップされ、その次の正時から開始します。

有効化と利用資格の期間の境界はすべて、太平洋時間(PT)(America/Los_Angeles)で動作します。

月の途中で購入した場合の月額料金の按分

月の途中で FSP を購入してすぐに有効にした場合、最初の利用資格期間は、その月の残りの日数で日割り計算されます。

  1. 最初の月の日割り計算: 有効化のタイムスタンプから現在の暦月の末日(月の最終日の午後 11 時 59 分 59 秒(太平洋時間))までの期間について、日割り計算された費用利用資格が付与されます。その月のコミットメント料金と使用率のしきい値は、その月の経過時間の割合に比例してスケーリングされます。
  2. 翌月以降: 翌月の 1 日午前 12 時(太平洋時間)から、1 年間または 3 年間の残りの期間について、各利用資格期間が暦月全体と一致します。
  3. 先月の日割り計算: 今月の初日から期間の終了日までの期間について、日割り計算された費用の利用資格が付与されます。その月のコミットメント料金と使用率不足のしきい値は、その月の経過時間の割合に比例して調整されます。

たとえば、4 月 16 日午前 0 時(PT)に有効になる月額コミットメントが 3,000 ドルの 1 年間の FSP を購入したとします(4 月は合計 30 日なので、残り 15 日です)。4 月のコミットメントは $1,500($3,000 × 15/30)に按分されます。

キャンセル、移行、修正

購入後は、FSP のキャンセルや変更はできません。コミットメントの期間中は、合意した月額を支払う必要があります。コミットメントを誤って購入した場合や、コミットメントの構成を間違えた場合は、Cloud Billing サポートにご連絡ください。

割引と手数料のアトリビューション

FSP では比例配分が使用されます。これは、他の費用ベースの確約利用割引(CUD)で使用される配分モデルと同じです。費用は 1 時間ごとに割り当てられます。料金は、各プロジェクトが消費した対象使用量の合計に比例して、Cloud 請求先アカウントのプロジェクトに適用されます。詳細については、確約利用割引の料金とクレジットのアトリビューションをご覧ください。

フレキシブル割引プランを購入する

FSP は、 Google Cloud コンソール(セルフサービス)を使用して直接購入できます。

フレキシブル Savings Plan を購入するには、コミットメント期間に関連付けられたオファー ID が必要です。特典 ID を確認するには、購入する特典を特定するをご覧ください。

FSP を構成するときに、次の項目を指定します。

  • サブスクリプション期間(1 年または 3 年)。
  • 月単位の利用資格時間枠あたりのコミットメント額。
  • FSP の名前。この名前は、すべての FSP と確約利用割引(CUD)で一意である必要があります。

フレキシブル割引プランを表示する

有効なフレキシブル Savings プランと過去のフレキシブル Savings プランは、 Google Cloud コンソールの [確約利用割引(CUD)] ページで確認できます。

このページには、コミットメントの管理に役立つ 2 つの詳細レベル(集計ビューとインスタンス ビュー)が表示されます。これらのビューの詳細については、コミットメントを表示するをご覧ください。

[インスタンス ビュー] で、利用資格ウィンドウの内訳を確認できます。

フレキシブル割引プランをモニタリングして分析する

標準の Cloud Billing FinOps ツールを使用して、FSP をモニタリングして管理できます。

  • 費用レポート: FSP の確約料金とオンデマンド費用を表示します。FSP の対象となる料金と使用量の費用を分離できます。
  • 料金明細レポート: FSP 料金の詳細な内訳を表示して、請求書を調整します。
  • Cloud Billing から BigQuery へのエクスポート: 課金データを BigQuery にエクスポートして、アクティブな FSP、過去のパフォーマンス、使用率指標をプログラムで追跡します(サンプルクエリを使用してこのデータを分析できます)。

サンプルクエリ

次のサンプルクエリを使用して、Cloud Billing から BigQuery へのエクスポート データを使用してフレキシブル Savings Plan(FSP)を分析します。

コミットメントの削減額を計算する

コミットメントによる削減額は、コミットメントによる純削減額を示します。

削減額をドルで計算する

次のクエリを使用して、節約額をドルで計算します。

使用料金がアクティブに発生している当月(オープン ウィンドウ)

オープン ウィンドウは、使用料金がアクティブに発生している請求対象期間の月を指します。

このクエリを使用して、使用料金がまだ発生している現在の請求期間の月の費用削減額を計算します。

WITH
  cost_data AS (
    SELECT
      *
    FROM
      `PROJECT.DATASET.gcp_billing_export_resource_v1_BILLING_ACCOUNT_ID`
    WHERE
      DATE(TIMESTAMP_TRUNC(usage_start_time, DAY, 'US/Pacific'))
        BETWEEN 'START_DATE' AND 'END_DATE'
  ),
  flexible_saving_plan_cost_data AS (
    SELECT
      *,
      COALESCE(
        NULLIF(consumption_model.applied_subscription_instance_id, ''),
        subscription.instance_id) AS cud_subscription_instance_id
    FROM cost_data
    WHERE
      consumption_model.id IN ('BBB5-D209-3835', 'C109-C9C0-A044')
  )
SELECT
  cud_subscription_instance_id,
  consumption_model.id AS consumption_model_id,
  SUM(cost_at_effective_price_default) - SUM(cost) AS commitment_savings
FROM flexible_saving_plan_cost_data
GROUP BY ALL;

次のように置き換えます。

  • PROJECT: Cloud Billing エクスポート データセットを含む Google Cloud プロジェクトの ID。
  • DATASET: Cloud Billing エクスポート テーブルを含む BigQuery データセットの名前。
  • BILLING_ACCOUNT_ID: Cloud 請求先アカウント API ID。
  • START_DATE: クエリ範囲の開始日(YYYY-MM-DD 形式)。
  • END_DATE: クエリ範囲の終了日(YYYY-MM-DD 形式)。
月次請求対象期間の終了後に完了した月(クローズド ウィンドウ)

完了した月(閉じたウィンドウ)は、請求対象期間が終了し、料金がアクティブに発生しなくなったことを意味します。また、すべての使用料金が課金システムで処理され、最終的な費用と節約額が請求対象期間の月に発行された請求書に含まれていることを意味します。

このクエリを使用して、完了した請求対象期間の月の節約額を計算します。

WITH
  cost_data AS (
    SELECT
      *
    FROM
      `PROJECT.DATASET.gcp_billing_export_resource_v1_BILLING_ACCOUNT_ID`
    WHERE
      DATE(TIMESTAMP_TRUNC(usage_start_time, DAY, 'US/Pacific'))
        BETWEEN 'START_DATE' AND 'END_DATE'
  ),
  flexible_saving_plan_cost_data AS (
    SELECT
      COALESCE(
        NULLIF(consumption_model.applied_subscription_instance_id, ''),
        subscription.instance_id) AS cud_subscription_instance_id,
      consumption_model.id AS consumption_model_id,
      cost_at_effective_price_default,
      cost,
      (
        SELECT SUM(credit.amount)
        FROM UNNEST(credits) credit
        WHERE credit.type = 'FEE_UTILIZATION_OFFSET'
      ) AS row_fee_utilization_offset
    FROM cost_data
    WHERE
      consumption_model.id IN ('BBB5-D209-3835', 'C109-C9C0-A044')
  )
SELECT
  cud_subscription_instance_id,
  consumption_model_id,
  SUM(cost_at_effective_price_default)
    -   (SUM(cost)
    +   IFNULL(SUM(row_fee_utilization_offset), 0)) AS commitment_savings
FROM flexible_saving_plan_cost_data
GROUP BY ALL;

次のように置き換えます。

  • PROJECT: Cloud Billing エクスポート データセットを含む Google Cloud プロジェクトの ID。
  • DATASET: Cloud Billing エクスポート テーブルを含む BigQuery データセットの名前。
  • BILLING_ACCOUNT_ID: Cloud 請求先アカウント API ID。
  • START_DATE: クエリ範囲の開始日(YYYY-MM-DD 形式)。
  • END_DATE: クエリ範囲の終了日(YYYY-MM-DD 形式)。

削減額を割合で計算する

次のクエリを使用して、節約率を計算します。

今月(ウィンドウを開く)

このクエリを使用して、当月の節約率を計算します。

WITH
  cost_data AS (
    SELECT
      *
    FROM
      `PROJECT.DATASET.gcp_billing_export_resource_v1_BILLING_ACCOUNT_ID`
    WHERE
      DATE(TIMESTAMP_TRUNC(usage_start_time, DAY, 'US/Pacific'))
        BETWEEN 'START_DATE' AND 'END_DATE'
  ),
  flexible_saving_plan_cost_data AS (
    SELECT
      *,
      COALESCE(
        NULLIF(consumption_model.applied_subscription_instance_id, ''),
        subscription.instance_id) AS cud_subscription_instance_id
    FROM cost_data
    WHERE
      consumption_model.id IN ('BBB5-D209-3835', 'C109-C9C0-A044')
  )
SELECT
  cud_subscription_instance_id,
  consumption_model.id AS consumption_model_id,
  SAFE_DIVIDE(
    (SUM(cost_at_effective_price_default) - SUM(cost)),
    SUM(cost_at_effective_price_default)) AS commitment_savings
FROM flexible_saving_plan_cost_data
GROUP BY ALL;

次のように置き換えます。

  • PROJECT: Cloud Billing エクスポート データセットを含む Google Cloud プロジェクトの ID。
  • DATASET: Cloud Billing エクスポート テーブルを含む BigQuery データセットの名前。
  • BILLING_ACCOUNT_ID: Cloud 請求先アカウント API ID。
  • START_DATE: クエリ範囲の開始日(YYYY-MM-DD 形式)。
  • END_DATE: クエリ範囲の終了日(YYYY-MM-DD 形式)。
完了した月(クローズド ウィンドウ)

このクエリを使用して、完了した請求対象期間の月の節約率を計算します。

WITH
  cost_data AS (
    SELECT
      *
    FROM
      `PROJECT.DATASET.gcp_billing_export_resource_v1_BILLING_ACCOUNT_ID`
    WHERE
      DATE(TIMESTAMP_TRUNC(usage_start_time, DAY, 'US/Pacific'))
        BETWEEN 'START_DATE' AND 'END_DATE'
  ),
  flexible_saving_plan_cost_data AS (
    SELECT
      COALESCE(
        NULLIF(consumption_model.applied_subscription_instance_id, ''),
        subscription.instance_id) AS cud_subscription_instance_id,
      consumption_model.id AS consumption_model_id,
      cost_at_effective_price_default,
      cost,
      (
        SELECT SUM(credit.amount)
        FROM UNNEST(credits) credit
        WHERE credit.type = 'FEE_UTILIZATION_OFFSET'
      ) AS row_fee_utilization_offset
    FROM cost_data
    WHERE
      consumption_model.id IN ('BBB5-D209-3835', 'C109-C9C0-A044')
  )
SELECT
  cud_subscription_instance_id,
  consumption_model_id,
  SAFE_DIVIDE(
    (SUM(cost_at_effective_price_default)
      -   (SUM(cost) + IFNULL(SUM(row_fee_utilization_offset), 0))),
    SUM(cost_at_effective_price_default)) AS commitment_savings
FROM flexible_saving_plan_cost_data
GROUP BY ALL;

次のように置き換えます。

  • PROJECT: Cloud Billing エクスポート データセットを含む Google Cloud プロジェクトの ID。
  • DATASET: Cloud Billing エクスポート テーブルを含む BigQuery データセットの名前。
  • BILLING_ACCOUNT_ID: Cloud 請求先アカウント API ID。
  • START_DATE: クエリ範囲の開始日(YYYY-MM-DD 形式)。
  • END_DATE: クエリ範囲の終了日(YYYY-MM-DD 形式)。

コミットメントの使用率を計算する

コミットメントの使用率は、コミットメントをどれだけ効果的に使用しているかを示す指標です。

今月(ウィンドウを開く)

このクエリを使用して、当月の使用率を計算します。

WITH
  cost_data AS (
    SELECT
      *
    FROM
      `PROJECT.DATASET.gcp_billing_export_resource_v1_BILLING_ACCOUNT_ID`
    WHERE
      usage_start_time BETWEEN 'START_DATE_TIME'
        AND 'END_DATE_TIME'
  ),
  flexible_saving_plan_cost_data AS (
    SELECT
      *,
      IF(sku.description NOT LIKE '%Flexible Savings Plan%', TRUE, FALSE)
        AS is_cud_usage_sku,
      COALESCE(
        NULLIF(consumption_model.applied_subscription_instance_id, ''),
        subscription.instance_id) AS cud_subscription_instance_id
    FROM cost_data
    WHERE
      consumption_model.id IN ('BBB5-D209-3835', 'C109-C9C0-A044')
  ),
  cud_subscriptions AS (
    SELECT
      subscription.instance_id AS cud_subscription_instance_id,
      subscription.display_name AS subscription_display_name,
      subscription.entitlement_period AS subscription_entitlement_period,
      term AS subscription_term,
      consumption_model.id AS consumption_model_id,
      commitment_amount.value AS commitment_amount,
    FROM `PROJECT.DATASET.cud_subscriptions_export`
    WHERE
      consumption_model.id IN ('BBB5-D209-3835', 'C109-C9C0-A044')
  ),
  cud_usage AS (
    SELECT
      COALESCE(
        fsp_cost.cud_subscription_instance_id,
        fsp_subs.cud_subscription_instance_id) AS cud_subscription_instance_id,
      COALESCE(fsp_cost.consumption_model_id, fsp_subs.consumption_model_id)
        AS consumption_model_id,
      IF(fsp_cost.is_cud_usage_sku, fsp_cost.cost, 0) AS cud_usage_cost,
      fsp_subs.subscription_display_name AS subscription_display_name,
      fsp_subs.subscription_entitlement_period
        AS subscription_entitlement_period,
      fsp_subs.subscription_term AS subscription_term,
      SAFE_DIVIDE(
        fsp_subs.commitment_amount,
        NULLIF(fsp_cost.currency_conversion_rate, 1)) AS commitment_amount,
    FROM
      flexible_saving_plan_cost_data AS fsp_cost
    FULL JOIN cud_subscriptions AS fsp_subs
      USING (cud_subscription_instance_id, consumption_model_id)
  )
SELECT
  cud_subscription_instance_id,
  consumption_model_id,
  subscription_display_name,
  subscription_entitlement_period,
  subscription_term,
  SAFE_DIVIDE(SUM(cud_usage_cost), commitment_amount)
    AS commitment_utilization_rate
FROM cud_usage
GROUP BY ALL;

次のように置き換えます。

  • PROJECT: Cloud Billing エクスポート データセットを含む Google Cloud プロジェクトの ID。
  • DATASET: Cloud Billing エクスポート テーブルを含む BigQuery データセットの名前。
  • BILLING_ACCOUNT_ID: Cloud 請求先アカウント API ID。
  • START_DATE_TIME: クエリ範囲の開始日時(YYYY-MM-DD HH:MM:SS 形式)。
  • END_DATE_TIME: クエリ範囲の終了日時(YYYY-MM-DD HH:MM:SS 形式)。

月次請求対象期間の終了後に完了した月(クローズド ウィンドウ)

このクエリを使用して、完了した請求対象期間の月の使用率を計算します。

WITH
  cost_data AS (
    SELECT
      *
    FROM
      `PROJECT.DATASET.gcp_billing_export_resource_v1_BILLING_ACCOUNT_ID`
    WHERE
      usage_start_time BETWEEN 'START_DATE_TIME'
        AND 'END_DATE_TIME'
  ),
  flexible_saving_plan_cost_data AS (
    SELECT
      COALESCE(
        NULLIF(consumption_model.applied_subscription_instance_id, ''),
        subscription.instance_id) AS cud_subscription_instance_id,
      consumption_model.id AS consumption_model_id,
      currency_conversion_rate,
      (
        SELECT SUM(credit.amount)
        FROM UNNEST(credits) credit
        WHERE credit.type = 'FEE_UTILIZATION_OFFSET'
      ) AS row_fee_utilization_offset
    FROM cost_data
    WHERE
      consumption_model.id IN ('BBB5-D209-3835', 'C109-C9C0-A044')
  ),
  cud_subscriptions AS (
    SELECT
      subscription.instance_id AS cud_subscription_instance_id,
      subscription.display_name AS subscription_display_name,
      subscription.entitlement_period AS subscription_entitlement_period,
      term AS subscription_term,
      consumption_model.id AS consumption_model_id,
      commitment_amount.value AS commitment_amount,
    FROM `PROJECT.DATASET.cud_subscriptions_export`
    WHERE
      consumption_model.id IN ('BBB5-D209-3835', 'C109-C9C0-A044')
  ),
  cud_usage AS (
    SELECT
      COALESCE(
        fsp_cost.cud_subscription_instance_id,
        fsp_subs.cud_subscription_instance_id) AS cud_subscription_instance_id,
      COALESCE(fsp_cost.consumption_model_id, fsp_subs.consumption_model_id)
        AS consumption_model_id,
      fsp_cost.row_fee_utilization_offset,
      fsp_subs.subscription_display_name AS subscription_display_name,
      fsp_subs.subscription_entitlement_period
        AS subscription_entitlement_period,
      fsp_subs.subscription_term AS subscription_term,
      SAFE_DIVIDE(
        fsp_subs.commitment_amount,
        NULLIF(fsp_cost.currency_conversion_rate, 1)) AS commitment_amount,
    FROM
      flexible_saving_plan_cost_data AS fsp_cost
    FULL JOIN cud_subscriptions AS fsp_subs
      USING (cud_subscription_instance_id, consumption_model_id)
  )
SELECT
  cud_subscription_instance_id,
  consumption_model_id,
  subscription_display_name,
  subscription_entitlement_period,
  subscription_term,
  SAFE_DIVIDE(IFNULL(SUM(row_fee_utilization_offset), 0), commitment_amount)
    AS commitment_utilization_rate
FROM cud_usage
GROUP BY ALL;

次のように置き換えます。

  • PROJECT: Cloud Billing エクスポート データセットを含む Google Cloud プロジェクトの ID。
  • DATASET: Cloud Billing エクスポート テーブルを含む BigQuery データセットの名前。
  • BILLING_ACCOUNT_ID: Cloud 請求先アカウント API ID。
  • START_DATE_TIME: クエリ範囲の開始日時(YYYY-MM-DD HH:MM:SS 形式)。
  • END_DATE_TIME: クエリ範囲の終了日時(YYYY-MM-DD HH:MM:SS 形式)。

購入金額を調整する

これらのクエリを使用して、過去の未カバーの使用量に基づいて最適な FSP コミットメント サイズを決定します。

ステップ 1: 対象となる SKU と割引率を確認する

このクエリは、クラウド料金のエクスポートから FSP の対象となる SKU とその割引率を取得します。

WITH PricingExport AS (
  SELECT
    sku.id AS sku_id,
    sku.description AS sku_description,
    REPLACE(
      cmp.consumption_model, 'consumptionModels/', '') AS consumption_model_id,
    cmp.consumption_model_display_name,
    cmp.list_price.tiered_rates[SAFE_OFFSET(0)].usd_amount
      AS internal_list_price,
    cmp.billing_account_price.tiered_rates[SAFE_OFFSET(0)].usd_amount
      AS consumption_model_discounted_price
  FROM
    `PROJECT.DATASET.cloud_pricing_export`,
    UNNEST(consumption_model_prices) AS cmp
  WHERE
    DATE(_PARTITIONTIME) = 'PARTITION_DATE'
),
PricingWithOnDemandPrices AS (
  SELECT
    *,
    MAX(
      CASE
        WHEN consumption_model_display_name = 'Default' THEN internal_list_price
      END) OVER (PARTITION BY sku_id) AS on_demand_list_price
  FROM
    PricingExport
)
SELECT
  sku_id,
  sku_description,
  consumption_model_id,
  consumption_model_display_name,
  on_demand_list_price,
  consumption_model_discounted_price,
  SAFE_DIVIDE(
    (on_demand_list_price - consumption_model_discounted_price),
    NULLIF(on_demand_list_price, 0)) * 100 AS discount_rate
FROM
  PricingWithOnDemandPrices
WHERE consumption_model_display_name != 'Default'
ORDER BY
  consumption_model_display_name,
  sku_id;

次のように置き換えます。

  • PROJECT: Cloud Billing エクスポート データセットを含む Google Cloud プロジェクトの ID。
  • DATASET: Cloud Billing エクスポート テーブルを含む BigQuery データセットの名前。
  • PARTITION_DATE: クエリするクラウド料金エクスポート テーブルのパーティション分割日。

ステップ 2: 過去の未カバーの使用量に割引率を適用する

このクエリを使用して、ステップ 1 で見つけた割引率を過去の未適用の使用量に適用し、FSP の潜在的な費用を見積もります。

WITH
  cost_data AS (
    SELECT
      *
    FROM
      `PROJECT.DATASET.gcp_billing_export_resource_v1_BILLING_ACCOUNT_ID`
    WHERE
      usage_start_time BETWEEN 'START_DATE_TIME'
        AND 'END_DATE_TIME'
  ),
  flexible_saving_plan_uncovered_cost AS (
    SELECT
      *
    FROM
      cost_data
    WHERE
      consumption_model.description = 'Default'
      AND sku.id IN (SKU_LIST)
  )
SELECT
  DATE(usage_start_time) AS usage_date,
  invoice.month AS invoice_month,
  SUM(cost) AS uncovered_cost,
  SUM(cost) * DISCOUNT_RATE AS potential_flexible_saving_plan_cost
FROM
  flexible_saving_plan_uncovered_cost
GROUP BY ALL;

次のように置き換えます。

  • PROJECT: Cloud Billing エクスポート データセットを含む Google Cloud プロジェクトの ID。
  • DATASET: Cloud Billing エクスポート テーブルを含む BigQuery データセットの名前。
  • BILLING_ACCOUNT_ID: Cloud 請求先アカウント API ID。
  • START_DATE_TIME: クエリ範囲の開始日時(YYYY-MM-DD HH:MM:SS 形式)。
  • END_DATE_TIME: クエリ範囲の終了日時(YYYY-MM-DD HH:MM:SS 形式)。
  • SKU_LIST: 手順 1 で特定した SKU ID のカンマ区切りのリスト。
  • DISCOUNT_RATE: 手順 1 で特定した各 SKU の割引率。