次の方法で共有


FinOps ハブ テンプレート

このドキュメントでは、FinOps Hubs デプロイ テンプレートに含まれる内容の詳細な概要を示します。 これは、デプロイを調整したり、組織のニーズを満たすためにテンプレートに対して行うことができるカスタマイズを通知したりするためのガイドとして使用できます。 このドキュメントでは、テンプレートをデプロイするために必要な前提条件、カスタマイズできる入力パラメーター、デプロイされるリソース、テンプレートの出力について説明します。 テンプレート出力を使用して、Power BI、データ エクスプローラー、またはその他のツールでハブ インスタンスに接続できます。

FinOps ハブには、セキュリティで保護されたスケーラブルな FinOps プラットフォームを提供するための多くのリソースが含まれています。 やり取りする主なリソースは次のとおりです。

  • 高度な分析用のスケーラブルなデータストアとしてのデータ エクスプローラー (Kusto) (省略可能)。
  • データ インジェストのステージング領域としてのストレージ アカウント (Data Lake Storage Gen2)。
  • データ インジェストとクリーンアップを管理する Data Factory インスタンス。

重要

テンプレートを使用するには、Cost Management エクスポートを作成して、含まれているストレージ アカウントの msexports コンテナーにデータを発行する必要があります。 詳細については、「 新しいハブの作成」を参照してください。


前提条件

テンプレートをデプロイする前に、次の前提条件が満たされていることを確認します。


パラメーター

デプロイのカスタマイズに使用できるパラメーターを次に示します。

パラメーター 説明 規定値
hubName String 省略可能。 ハブの名前。 一意のリソース名を確保するために使用されます。 "finops-hub"
location String 省略可能。 すべてのリソースを作成する必要がある Azure の場所。 以下を参照してください。https://aka.ms/azureregions デプロイと同じ
storageSku String 省略可能。 使用するストレージ SKU。 LRS = 最低コスト、ZRS = 高可用性。 注: Data Lake gen2 ストレージでは Standard SKU を使用できません。 許可: Premium_LRSPremium_ZRS "Premium_LRS"
dataExplorerName String 省略可能。 高度な分析に使用する Azure Data Explorer クラスターの名前。 空の場合、Azure Data Explorer はデプロイされません。 監視対象のコストが $2 から 5M/mo を超える場合は、Power BI で使用する必要があります。 既定値: "" (使用しないでください)。
dataExplorerSkuName String 省略可能。 Azure Data Explorer SKU の名前。 既定値: "Dev(No SLA)_Standard_E2a_v4"。
dataExplorerSkuTier String 省略可能。 Azure Data Explorer クラスターの SKU レベル。 (1 つのノードが原因で) SLA なしでコストを最小限に抑えるために Basic を使用します。 高可用性とパフォーマンスの向上には Standard を使用します。 使用できる値: Basic、Standard。 既定値: "Basic"。
dataExplorerSkuCapacity Int 省略可能。 クラスターで使用するノードの数。 使用できる値: Basic SKU レベルの場合は 1、Standard の場合は 2 から 1000。 既定値: 1。
tags オブジェクト 省略可能。 すべてのリソースに適用するタグ。 また、Cost Management のコスト ロールアップを改善するために、cm-resource-parent タグを追加します。
tagsByResource オブジェクト 省略可能。 リソースの種類に基づいてリソースに適用するタグ。 リソースの種類固有のタグは、すべてのリソースのタグとマージされます。
scopesToMonitor Array 省略可能。 コストを監視および取り込むスコープ ID の一覧。
exportRetentionInDays Int 省略可能。 msexports コンテナーに保持するデータの日数。 0
ingestionRetentionInMonths Int 省略可能。 インジェスト コンテナーに保持するデータの月数。 13
dataExplorerLogRetentionInDays Int 省略可能。 データ エクスプローラー *_log テーブルに保持するデータの日数。 0
dataExplorerFinalRetentionInMonths Int 省略可能。 データ エクスプローラー *_final_v* テーブルに保持するデータの月数。 13
remoteHubStorageUri String 省略可能。 データをプッシュしてリモート ハブに取り込むストレージ アカウント。
remoteHubStorageKey String 省略可能。 リモート ハブにデータをプッシュするときに使用するストレージ アカウント キー。
のパブリックアクセスを有効にする string 省略可能。 データレイク (ストレージ ファイアウォール) へのパブリック アクセスを無効にします。 間違い
virtualNetworkAddressPrefix String 省略可能。 FinOps ハブで使用されるプライベート仮想ネットワークの IP アドレス範囲。 /26 は、IP を無駄にしないようにすることをお勧めします。 内部的には、プライベート エンドポイント用の /28、一時デプロイ スクリプト (コンテナー インスタンス) 用の別の /28 サブネット、Azure Data Explorer の /27 (有効な場合) が作成されます。 '10.20.30.0/26'

リソース

デプロイ時に、ターゲット リソース グループに次のリソースが作成されます。

リソースでは、 <hubName>-<purpose>-<unique-suffix>という名前付け規則が使用されます。 名前は、長さと文字の制限を考慮して調整されます。 <unique-suffix>は、リソース名が必要に応じてグローバルに一意であることを確認するために使用されます。

  • <hubName>store<unique-suffix> ストレージ アカウント (Data Lake Storage Gen2)
    • BLOB コンテナー:
      • msexports – Cost Management のエクスポートを一時的に格納します。
      • ingestion – 取り込まれたデータを格納します。

        Note

        将来的には、このコンテナーを使用して、Cost Management の外部で外部データをステージングします。- config – ハブのメタデータと構成設定を格納します。 ファイル:

        • settings.json – ハブの設定。
        • schemas/focuscost_1.0.json – Parquet 変換用の FOCUS 1.0 スキーマ定義。
        • schemas/focuscost_1.0-preview(v1).json – Parquet 変換用の FOCUS 1.0-preview スキーマ定義。
        • schemas/pricesheet_2023-05-01_ea.json – Parquet 変換用の価格シート EA スキーマ定義バージョン 2023-05-01。
        • schemas/pricesheet_2023-05-01_mca.json – Parquet 変換用の価格シート MCA スキーマ定義バージョン 2023-05-01。
        • schemas/reservationdeatils_2023-03-01.json – Parquet 変換用の予約詳細スキーマ定義バージョン 2023-03-01。
        • schemas/reservationrecommendations_2023-05-01_ea.json – Parquet 変換用の予約の推奨事項 EA スキーマ定義バージョン 2023-05-01。
        • schemas/reservationrecommendations_2023-05-01_mca.json – Parquet 変換用の予約の推奨事項 MCA スキーマ定義バージョン 2023-05-01。
        • schemas/reservationtransactions_2023-05-01_ea.json – Parquet 変換用の予約トランザクション EA スキーマ定義バージョン 2023-05-01。
        • schemas/reservationtransactions_2023-05-01_mca.json – Parquet 変換用の予約トランザクション MCA スキーマ定義バージョン 2023-05-01。
  • デプロイ スクリプト用の <hubName>script<unique-suffix> ストレージ アカウント(Data Lake Storage Gen2)。
  • <hubName>-engine-<unique-suffix> Data Factory インスタンス
    • パイプライン:
      • config_InitializeHub – デプロイ後に FinOps ハブ インスタンスを初期化 (または更新) します。
      • config_ConfigureExports – すべてのスコープの Cost Management エクスポートを作成します。
      • config_StartBackfillProcess – 保持設定に基づいて、毎月のバックフィル ジョブを実行します。
      • config_RunBackfillJob – 指定した日付範囲に対して定義されているすべてのスコープのエクスポートを作成してトリガーします。
      • config_StartExportProcess – settings.jsonで定義されているスコープに基づいて、このハブ用に構成されているすべての Cost Management エクスポートの一覧を取得し、config_RunExportJobs パイプラインを使用して各エクスポートを実行します。
      • config_RunExportJobs – 指定した Cost Management エクスポートを実行します。
      • msexports_ExecuteETL – Data Factory パイプライン トリガーの制限を考慮するために、 msexports_ETL_ingestion パイプラインをキューに入れます。
      • msexports_ETL_ingestion – Cost Management のエクスポートを Parquet に変換し、各日のエクスポートで複製された履歴データを削除します。
      • ingestion_ExecuteETL – Data Factory パイプライン トリガーの制限を考慮するために、 ingestion_ETL_dataExplorer パイプラインをキューに入れます。
      • ingestion_ETL_dataExplorer – Parquet データを Azure Data Explorer クラスターに取り込みます。
    • トリガー:
      • config_SettingsUpdated – settings.jsonが更新されたときに、 config_ConfigureExports パイプラインをトリガーします。
      • config_DailySchedule – 現在の月のコスト データに対して毎日、 config_RunExportJobs パイプラインをトリガーします。
      • config_MonthlySchedule – 前月のコスト データに対して毎月 config_RunExportJobs パイプラインをトリガーします。
      • msexports_ManifestAdded – Cost Management のエクスポートが完了したときに、 msexports_ExecuteETL パイプラインをトリガーします。
      • ingestion_ManifestAdded – manifest.json ファイルが追加されたときに ingestion_ExecuteETL パイプラインをトリガーします (msexports_ETL_ingestion パイプラインによって処理されます)。
    • マネージド プライベート エンドポイント
      • <hubName>store<unique-suffix> - ストレージ アカウントのマネージド プライベート エンドポイント。
      • <hubName>-vault-<unique-suffix> - Azure Key Vault のマネージド プライベート エンドポイント。
  • <hubName>-vault-<unique-suffix> Key Vault インスタンス
    • シークレット:
      • Data Factory システムマネージド ID
  • <dataExplorerName> データエクスプローラー クラスター
    • Hub データベース – 内部を抽象化するための公開関数。
      • 2 セットの関数が含まれています。
        • サポートされている最新の FOCUS バージョン (CostsPricesなど) のデータセット固有の関数。
        • サポートされている各 FOCUS バージョンのデータセット固有の関数 (例: FOCUS 1.0 の Costs_v1_0)。 これらの関数は、下位互換性のために用意されています。 すべての関数は、対象の FOCUS バージョンにアラインされたすべてのデータを返します。
      • データセットには、CostsPricesが含まれます。
      • サポートされている FOCUS バージョンには、v1_0が含まれます。
    • Ingestion データベース – 取り込まれたデータを格納します。
      • 設定:
        • HubSettingsLog テーブル – 高レベルの構成変更の履歴 (バージョン、スコープなど) を格納します。
        • HubSettings 関数 – ハブ インスタンス設定の最新バージョンを取得します。
        • HubScopes 関数 – このハブ インスタンスに対して現在構成されているスコープを取得します。
      • データを開く:
      • データセット:
        • <dataset>_raw テーブル – 取り込み元からの直接の生データ。 複数のソースからのデータに対して共用体スキーマを使用します。
        • <dataset>_transform_vX_Y 関数 – 必要に応じて開いているデータ テーブルを使用して、未加工データを正規化し、対象の FOCUS バージョンに合わせてクリーンアップします。
        • <dataset>_final_vX_Y テーブル – ターゲットの FOCUS バージョンにアラインされた対応する生テーブルのクリーン バージョン。 データが生テーブルに取り込まれる際に、対応する変換関数を使用する更新ポリシーを介して入力されます。

上記の情報に加えて、デプロイ プロセスを自動化するために次のリソースが作成されます。 デプロイ スクリプトは自動的に削除する必要があります。 ただし、次のリリースにアップグレードするときにエラーが発生する可能性があるため、マネージド ID を削除しないでください。

  • マネージド ID:
  • デプロイ スクリプト (デプロイが成功した後に自動的に削除):
    • <datafactory>_deleteOldResources – 以前の FinOps ハブデプロイから未使用のリソースを削除します。
    • <datafactory>_stopTriggers – triggerManager ID を使用して、ハブ内のすべてのトリガーを停止します。
    • <datafactory>_startTriggers – triggerManager ID を使用してハブ内のすべてのトリガーを開始します。
    • <storage>_uploadSettings – blobManager ID を使用してsettings.json ファイルをアップロードします。

出力

デプロイによって生成される出力を次に示します。

出力 説明
name String リソース グループの名前。
location String Azure リソースの場所のリソースがデプロイされました。
dataFactorytName String Data Factory の名前。
storageAccountId String デプロイされたストレージ アカウントのリソース ID。
storageAccountName String ハブ インスタンス用に作成されたストレージ アカウントの名前。 これは、FinOps ツールキットの Power BI レポートをデータに接続するときに使用する必要があります。
storageUrlForPowerBI String カスタム Power BI レポートをデータに接続するときに使用する URL。
clusterId String Data Explorer クラスターのリソース ID。
clusterUri String データ エクスプローラー クラスターの URI。
ingestionDbName String データの取り込みに使用されるデータ エクスプローラー データベースの名前。
hubDbName String データのクエリに使用されるデータ エクスプローラー データベースの名前。
managedIdentityId String Data Factory マネージド ID のオブジェクト ID。 これは、マネージド エクスポートを構成するときに必要になります。
managedIdentityTenantId String Azure AD テナント ID。 これは、マネージド エクスポートを構成するときに必要になります。