Azure Backupできめ細かな課金を行うと、チーム、アプリケーション、コスト センター全体のチャージバックとレポートを向上させるために、カスタムの粒度レベルでバックアップ コストを表示できます。
Important
- 詳細な課金は、Recovery Services コンテナーと Backup ボールトの両方をサポートしています。
- この機能は、管理プレーン レポートの変更のみであり、価格メーターや合計バックアップ コストは変更されません。
- 既存の過去の請求書ラインは以前の形式のままであり、選択した細分度を使用するのは新しい料金のみです。
- Vaultレベルは既存および新規Vaultのデフォルトであり、後方互換性を維持しています。
利用可能な課金の詳細レベル
Azure Backupには、レポートとチャージバックの要件に基づいてバックアップ コストを表示および分析するのに役立つ複数の粒度レベルが用意されています。
要件に従って、次のいずれかの粒度レベルを選択できます。
Vaultレベル(デフォルト):関連するRecovery ServicesヴォールトまたはBackup Vaultの下に表示されるバックアップコストを表示します。 指定されたメーターに対応するリソースのコストは、コンテナーごとに 1 行の項目として表示されます。
保護された項目レベル: 保護された各アイテムのバックアップ コストを表示します。
タグレベル:バックアップコストをタグごとに集計し、リソースレベルで支出を表示・分析します。
デフォルトタグ(推奨):タグレベルを選択すると、Azure Backup自動的に内蔵
ms-resource-parentタグをAzure Cost Managementに渡します。 保護対象項目ごとのバックアップ料金はAzure Cost Managementの関連リソースの下に表示されるため、追加設定なしでリソースとバックアップコストを統合的に把握できます。カスタムタグ:バックアップコストを別のリソースに割り当てるには、
cm-resource-parentタグを追加し、バックアップコストが表示されたい対象リソースのAzure Resource Manager(ARM)リソースIDに値を設定します。 Azure Backupはそのリソースの下でバックアップ料金をAzure Cost Managementで集約し、カスタムチャージバックやコスト報告シナリオをサポートできます。
Azureポータルを使って細かい請求を設定する
両方のボールトタイプで手順は同じですが、Properties ペインへのナビゲーションのみ異なります。 設定したいボールトタイプを選択してください:
AzureポータルでRecovery Servicesのボールトに移動し、「設定>プロパティ」を選択します。
[ プロパティ ] ウィンドウの [ コスト管理の粒度] で、[ 更新 ] を選択します。
コスト管理のグラニュラリティ(細分性)ペインで、粒度オプションを選択してください。
タグ レベル を選択し、コストをデフォルトの
ms-resource-parentタグではなくカスタム親リソースにまとめたい場合は、ボールトの タグ ペインに移動し、キーcm-resource-parent、値をターゲット リソースの完全な ARM リソース ID に設定したタグを追加し、保存 を選択してください。 デフォルトの親タググループは手動タグ付けが不要なので、このステップは省略できます。[ 更新] を選択して設定を保存します。
以下の表は、細かさレベルと -CostManagementGranularity パラメータに渡す値を一覧にしています。
| 粒度レベル(ポータル) | Value | Behavior |
|---|---|---|
| ヴォールトレベル(デフォルト) | VaultLevel | バックアップコストは、適用される各請求メーターごとに各ボールトごとに集計されます。 |
| 保護された項目レベル | ProtectedItemLevel | 保護された各アイテムのバックアップコストを表示します。 |
| タグレベル | 親タグ付き保護項目 | バックアップコストを親タグで集約するため、リソースレベルで支出を確認できます。 |
Prerequisites
Azure PowerShellを使って詳細な課金を設定する前に、以下の前提条件を満たしていることを確認してください。
- 使用するボールトの種類に応じて、 Recovery ServicesのVault概要 または バックアップVaultの概要を確認してください。
- Azure ライブラリの
Az.RecoveryServicesとAz.DataProtectionコマンドレットのリファレンスを確認しましょう。 - バックアップ コントリビューターやコントリビューター ロールなど、ボールトに書き込み権限があるか確認してください。
- カスタムタグの場合は、ボールトにタグを追加する権限と、使用するARM リソース ID の親リソースへの読み取りアクセス権を持っていることを確認してください。
詳細な請求構成のために Azure PowerShell を設定する
Azure Az PowerShell モジュールを使用して Azure と対話します。 Azure PowerShell の詳細な課金設定を始める前に、まずAzure PowerShellをインストールしてください。 Az PowerShell モジュールに移行するには、「Migrate Azure PowerShell from AzureRM to Az」をご覧ください。
Azure PowerShell を設定するには、以下のcmdletを実行してください:
必要なモジュールをインストールまたは更新してください。
注
-CostManagementGranularityパラメータは、Recovery ServicesのVaultに対してAz.RecoveryServices 7.14.1以降、バックアップ用Vault にはAz.DataProtection 3.1.0以降が必要です。Install-Module -Name Az.RecoveryServices -MinimumVersion 7.14.1 -Force Install-Module -Name Az.DataProtection -MinimumVersion 3.1.0 -Forceインストールモジュールのバージョンを確認してください:
Get-Module -Name Az.RecoveryServices, Az.DataProtection -ListAvailable | Select-Object Name, Version出力例:
Name Version ---- ------- Az.DataProtection 3.1.0 Az.RecoveryServices 7.14.1新しいパラメータがインストール済みのモジュールで利用可能かどうかを確認してください:
'New-AzRecoveryServicesVault', 'Update-AzRecoveryServicesVault', 'New-AzDataProtectionBackupVault', 'Update-AzDataProtectionBackupVault' | ForEach-Object { $cmd = Get-Command $_ -ErrorAction SilentlyContinue [pscustomobject]@{ Cmdlet = $_ Installed = $null -ne $cmd HasParameter = ($null -ne $cmd) -and $cmd.Parameters.ContainsKey('CostManagementGranularity') } } | Format-Table -AutoSize出力例:
Cmdlet Installed HasParameter ------ --------- ------------ New-AzRecoveryServicesVault True True Update-AzRecoveryServicesVault True True New-AzDataProtectionBackupVault True True Update-AzDataProtectionBackupVault True TrueConnect-AzAccountを使ってAzureアカウントにサインインしてください。 表示される Web ページで、アカウントの資格情報を入力するように求められます。1 つのアカウントが複数のサブスクリプションを持つことができるため、使用するサブスクリプションをアカウントに関連付けます。
Select-AzSubscription -SubscriptionName $SubscriptionName
次の表は、この記事で各コンテナーの種類ごとに使用するコマンドレットの一覧です。
| タスク | Recovery Services コンテナー | バックアップ保管庫 |
|---|---|---|
| 作成時に粒度を設定 | -CostManagementGranularity を指定した New-AzRecoveryServicesVault |
-CostManagementGranularity を指定した New-AzDataProtectionBackupVault |
| 細分性を変更する | -CostManagementGranularity を指定した Update-AzRecoveryServicesVault |
-CostManagementGranularity を指定した Update-AzDataProtectionBackupVault |
| 読み取り粒度 |
Get-AzRecoveryServicesVault - Properties.CostManagementSettings.GranularityLevel を読んでください |
Get-AzDataProtectionBackupVault - CostManagementSettingGranularityLevel |
| カスタム親タグを適用してください | Update-AzTag |
Update-AzTag |
Azure PowerShell を使用して詳細な課金を構成する
設定したいボールトタイプを選択してください:
ヴォールトの作成時に粒度を設定する
-CostManagementGranularityパラメータはNew-AzRecoveryServicesVaultでは任意です。 このオプションをボールト作成時に指定しなければ、デフォルト値は VaultLevelになります。
粒度レベルを指定してヴォールトを作成するには、以下のコマンドレットを実行します。
ProtectedItemLevelを粒度表の任意の数値に置き換えます。
$vault = New-AzRecoveryServicesVault `
-Name "afs-vault" `
-ResourceGroupName "backup-rg" `
-Location "westus" `
-CostManagementGranularity ProtectedItemLevel
$vault.Properties.CostManagementSettings.GranularityLevel
出力例:
ProtectedItemLevel
既存のヴォールトの粒度を変更する
2 日目の変更には、Update-AzRecoveryServicesVault を使用します。 このコマンドレットはポータルでのフロー、[Recovery Services コンテナー]>[プロパティ]>[コスト管理の粒度]>[更新] を反映しています。
コンテナーを保護アイテム レベルに切り替える
ヴォールトを保護アイテムレベルに切り替えるには、以下のコマンドレットを実行してください:
$updatedVault = Update-AzRecoveryServicesVault `
-ResourceGroupName "backup-rg" `
-Name "afs-vault" `
-CostManagementGranularity ProtectedItemLevel
$updatedVault.Properties.CostManagementSettings.GranularityLevel
出力例:
ProtectedItemLevel
現在の粒度設定を見る
Get-AzRecoveryServicesVault 新しいパラメータは必要ありません。 設定は返却されたヴォールトオブジェクトの Properties.CostManagementSettings.GranularityLevelに現れ、 CrossSubscriptionRestoreStateと同じパターンに従っています。
現在の粒度設定を見るには、以下のコマンドレットを実行してください:
$vault = Get-AzRecoveryServicesVault `
-ResourceGroupName "backup-rg" `
-Name "afs-vault"
$vault.Properties.CostManagementSettings.GranularityLevel
出力例:
ProtectedItemLevel
サブスクリプション内のすべての Recovery Services ヴォールトの粒度設定を監査するには、以下のコマンドレットを実行します。
Get-AzRecoveryServicesVault | ForEach-Object {
[pscustomobject]@{
Name = $_.Name
ResourceGroupName = $_.ResourceGroupName
Location = $_.Location
Granularity = $_.Properties.CostManagementSettings.GranularityLevel
}
} | Format-Table -AutoSize
出力例:
Name ResourceGroupName Location Granularity
---- ----------------- -------- -----------
afs-vault backup-rg westus ProtectedItemLevel
fin-vault finance-rg eastus VaultLevel
hr-vault hr-rg westus2 ProtectedItemWithParentTag
タグレベルの粒度を設定する
タグレベルの粒度には、以下の独立した役割が含まれます:
- ボールトにタグを適用する際:標準のAz.Resourcesコマンドレットを再利用してください。 このプロセスではタグ付けのための新しいバックアップコマンドレットは必要ありません。
-
タグレベルのコストグループ化を有効にする:ボールトの
-CostManagementGranularityパラメータをProtectedItemWithParentTagに設定します。
シナリオ1:デフォルトの親タグを使う
バックアップサービスは自動的に ms-resource-parent タグを適用するため、Vault上でタグレベルの細かさを有効にするだけで済みます。 手動タグ付けは不要です。
デフォルトの親タグを使用するには、以下の手順に従ってください:
Vault でタグ レベルのコスト グループ化を有効にしてください。
Update-AzRecoveryServicesVault ` -ResourceGroupName "backup-rg" ` -Name "afs-vault" ` -CostManagementGranularity ProtectedItemWithParentTag構成済みの設定を確認してください。
$vault = Get-AzRecoveryServicesVault -ResourceGroupName "backup-rg" -Name "afs-vault" $vault.Properties.CostManagementSettings.GranularityLevel出力例:
ProtectedItemWithParentTag
注
デフォルトの ms-resource-parent タグは、ボールトや保護されたリソースの表示タグとしては適用されません。 Azure Backupは請求の詳細の一部としてタグをAzure Cost Managementに渡すため、ボールトのタグパネルには表示されません。
シナリオ 2: カスタム親タグを使用する
カスタム親でコストをグループ化するには、まず cm-resource-parent タグをボールトに適用し、その値を親リソースのARMリソースIDに設定します。 次に、コンテナーでタグ レベルの粒度を有効にします。
Important
Update-AzTag -Operation Mergeを使って、ヴォールトの既存のタグを保持してください。
New-AzTag リソース上のすべてのタグを置き換えるので、ここでは使わないでください。
カスタムタグを使用するには、以下の手順に従ってください:
Recovery Services コンテナーにカスタムの親タグを適用します。 タグキーは
cm-resource-parentで、タグ値は親リソースのARMリソースIDです。$vault = Get-AzRecoveryServicesVault -ResourceGroupName "backup-rg" -Name "afs-vault" $parent = Get-AzResource -Name "financeparent" -ResourceGroupName "storage-rg" Update-AzTag -ResourceId $vault.ID ` -Tag @{ "cm-resource-parent" = $parent.Id } ` -Operation Merge出力例:
Id : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/backup-rg/providers/Microsoft.RecoveryServices/vaults/afs-vault/providers/Microsoft.Resources/tags/default Name : default Type : Microsoft.Resources/tags Properties : Name Value ================== ========================================================== cm-resource-parent /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resour ceGroups/storage-rg/providers/Microsoft.Storage/storageAcc ounts/financeparentVault でタグ レベルのコスト グループ化を有効にしてください。
Update-AzRecoveryServicesVault ` -ResourceGroupName "backup-rg" ` -Name "afs-vault" ` -CostManagementGranularity ProtectedItemWithParentTag構成済みの設定を確認してください。
$vault = Get-AzRecoveryServicesVault -ResourceGroupName "backup-rg" -Name "afs-vault" $vault.Properties.CostManagementSettings.GranularityLevel出力例:
ProtectedItemWithParentTag
以下の表は、 --cost-management-granularity オプションに渡す細かさレベルと値を一覧にしています。
| 粒度レベル(ポータル) | Value | Behavior |
|---|---|---|
| ヴォールトレベル(デフォルト) | VaultLevel | バックアップコストは、適用される各請求メーターごとに各ボールトごとに集計されます。 |
| 保護された項目レベル | ProtectedItemLevel | 保護された各アイテムのバックアップコストを表示します。 |
| タグレベル | 親タグ付き保護項目 | バックアップコストを親タグで集約するため、リソースレベルで支出を確認できます。 |
Prerequisites
Azure CLIを使って細分化請求を設定する前に、以下の前提条件を満たしていることを確認してください。
- 使用するボールトの種類に応じて、 Recovery ServicesのVault概要 または バックアップVaultの概要を確認してください。
-
az backup vaultとaz dataprotection backup-vaultのコマンド リファレンスを確認してください。 - バックアップ コントリビューターやコントリビューター ロールなど、ボールトに書き込み権限があるか確認してください。
- カスタムタグの場合は、ボールトにタグを追加する権限と、使用するARM リソース ID の親リソースへの読み取りアクセス権を持っていることを確認してください。
-
--cost-management-granularityオプションには、Recovery Services コンテナーには Azure CLI バージョン 2.89.0 以降、バックアップ コンテナーにはdataprotection拡張機能バージョン 1.13.0 以降が必要です。
詳細な請求構成用に Azure CLI を設定する
細かな請求設定のためにAzure CLIを設定する前に、まずAzure CLIをインストールしてください。 これらのコマンドは、常に最新バージョンの CLI が含まれている Azure Cloud Shell で実行することもできます。
Azure CLI を設定するには、以下のコマンドを実行してください:
インストール済みのAzure CLIバージョンを確認してください:
az version出力例:
{ "azure-cli": "2.89.0", "azure-cli-core": "2.89.0", "azure-cli-telemetry": "1.1.0", "extensions": {} }データ保護拡張機能を追加してください。
az dataprotectionコマンドグループは拡張機能であり、CLIコアの一部ではないため、バックアップボールトを管理する前に必ずインストールする必要があります。 Recovery Servicesのボールトだけを使う場合はこのステップを省略してください。az extension add --name dataprotection --upgrade拡張機能がインストールされているか確認してください:
az extension list --query "[].{Name:name, Version:version}" -o table出力例:
Name Version --------------- --------- dataprotection 1.13.0インストールされているAzure CLIバージョンでgranularityオプションが利用可能か確認してください。 このオプションはコマンドのヘルプ出力に現れます:
az backup vault update --help出力例:
--cost-management-granularity Use this parameter to configure cost management settings for the vault. By default, the property is "VaultLevel" for the vault. Allowed values: ProtectedItemLevel, ProtectedItemWithParentTag, VaultLevel.バックアップボールトでオプションが利用可能かどうかを確認するには、代わりに以下のコマンドを実行してください:
az dataprotection backup-vault update --help出力例:
--cost-management-granularity Settings for cost management granularity level for a vault. Accepted values: ProtectedItemLevel, ProtectedItemWithParentTag, VaultLevelAzure アカウントにサインインします。
az login使いたいサブスクリプションを設定してください。アカウントに複数のサブスクリプションがある場合があります:
az account set --subscription "<subscription-name-or-id>"
以下の表は、各ボールトタイプで使用するコマンドを一覧にしています。
| タスク | Recovery Services コンテナー | バックアップ保管庫 |
|---|---|---|
| 作成時に粒度を設定 |
az backup vault create with --cost-management-granularity |
az dataprotection backup-vault create with --cost-management-granularity |
| 細分性を変更する |
az backup vault update with --cost-management-granularity |
az dataprotection backup-vault update with --cost-management-granularity |
| 読み取り粒度 | az backup vault show |
az dataprotection backup-vault show |
| コンテナーと粒度の一覧を表示する | az backup vault list |
az dataprotection backup-vault list |
| カスタム親タグを適用してください | az tag update |
az tag update |
Azure CLI を使用して詳細な課金を構成する
設定したいボールトタイプを選択してください:
粒度レベルを指定したコンテナーを作成する
粒度レベルを指定してボールトを作成するには、以下のコマンドを実行します:
az backup vault create \
--name "afs-vault" \
--resource-group "backup-rg" \
--location "westus" \
--cost-management-granularity ProtectedItemLevel \
--query "{name:name, granularity:properties.costManagementSettings.granularityLevel}"
出力例:
{
"granularity": "ProtectedItemLevel",
"name": "afs-vault"
}
既存のヴォールトの粒度を変更する
既存のボールトの粒度を変更するには、以下のコマンドを実行します:
az backup vault update \
--name "afs-vault" \
--resource-group "backup-rg" \
--cost-management-granularity ProtectedItemWithParentTag \
--query "properties.costManagementSettings.granularityLevel" -o tsv
出力例:
ProtectedItemWithParentTag
現在の粒度設定を見る
az backup vault showコマンドは新しいオプションを受け入れません。 粒度レベルを確認するには、JSON出力から properties.costManagementSettings.granularityLevel を読み取ってください。
ボールトに設定されたコスト管理の細分度レベルを取得するには、以下のコマンドを実行します:
az backup vault show \
--name "afs-vault" \
--resource-group "backup-rg" \
--query "properties.costManagementSettings.granularityLevel" -o tsv
出力例:
VaultLevel
サブスクリプション内のすべてのRecovery Servicesのボールトを監査するには、以下のコマンドを実行します:
az backup vault list \
--query "[].{Name:name, ResourceGroup:resourceGroup, Granularity:properties.costManagementSettings.granularityLevel}" \
-o table
出力例:
Name ResourceGroup Granularity
--------- --------------- --------------------------
afs-vault backup-rg VaultLevel
fin-vault finance-rg ProtectedItemLevel
hr-vault hr-rg ProtectedItemWithParentTag
タグレベルの粒度を設定する
タグレベルの粒度には、以下の独立した役割が含まれます:
-
ヴォールトにタグを適用する:標準の
az tagコマンドグループを使います。 タグ付けにバックアップ専用コマンドは必要ありません。 -
タグレベルのコストグループ化を有効にする:ボールトの
--cost-management-granularityパラメータをProtectedItemWithParentTagに設定します。
シナリオ1:デフォルトの親タグを使う
バックアップサービスは自動的に ms-resource-parent タグを適用します。 Vault 上でタグレベルの細かさを有効にするだけで、手動のタグ付けは不要です。
デフォルトの親タグを使用するには、以下の手順に従ってください:
Vault でタグ レベルのコスト グループ化を有効にしてください。
az backup vault update \ --name "afs-vault" \ --resource-group "backup-rg" \ --cost-management-granularity ProtectedItemWithParentTag構成済みの設定を確認してください。
az backup vault show \ --name "afs-vault" \ --resource-group "backup-rg" \ --query "properties.costManagementSettings.granularityLevel" -o tsv出力例:
ProtectedItemWithParentTag
注
デフォルトの ms-resource-parent タグは、ボールトや保護されたリソースの表示タグとしては適用されません。 Azure Backupは請求情報の一部としてタグをAzure Cost Managementに渡すため、az backup vault show --query tagsには表示されません。
シナリオ 2: カスタム親タグを使用する
カスタム親でコストをグループ化するには、まず cm-resource-parent タグをボールトに適用し、その値を親リソースのARMリソースIDに設定します。 次に、Vaultでタグレベルの粒度を有効にしてください。
Important
az tag update --operation Mergeを使って、ヴォールトの既存のタグを保持してください。
Replace操作はリソース上のすべてのタグを上書きします。
カスタムタグを使用するには、以下の手順に従ってください:
Vaultにカスタム親タグを適用してください。 タグキーは
cm-resource-parentで、タグ値は親リソースのARMリソースIDです。vaultId=$(az backup vault show \ --name "afs-vault" \ --resource-group "backup-rg" \ --query id -o tsv) parentId=$(az storage account show \ --name "financeparent" \ --resource-group "storage-rg" \ --query id -o tsv) az tag update \ --resource-id "$vaultId" \ --operation Merge \ --tags "cm-resource-parent=$parentId" \ --query "properties.tags" -o json出力例:
{ "cm-resource-parent": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/storage-rg/providers/Microsoft.Storage/storageAccounts/financeparent" }Vault でタグ レベルのコスト グループ化を有効にしてください。
az backup vault update \ --name "afs-vault" \ --resource-group "backup-rg" \ --cost-management-granularity ProtectedItemWithParentTag構成済みの設定を確認してください。
az backup vault show \ --name "afs-vault" \ --resource-group "backup-rg" \ --query "properties.costManagementSettings.granularityLevel" -o tsv出力例:
ProtectedItemWithParentTag
コスト分析でのバックアップ料金の検証
Azure Backupの詳細な課金を構成したら、選択した粒度を使用して、更新されたバックアップ料金が Cost Management に正しく反映されていることを確認します。
注
- Cost Management の粒度を更新すると、選択した形式で新しい料金が表示されます。
- 以前の料金は以前の形式を維持します。
- アクティビティ ログは、コスト設定の変更をキャプチャします。
- 更新された変更がコスト分析に表示されるまでに最大 2 時間かかる場合があります。
Cost Analysis でバックアップ料金を検証するには、次の手順に従います。
Azure portalの「コスト管理+請求」に行き、「コスト管理>コスト分析」を選択してください。 スコープを ターゲットサブスクリプションに設定してください。
[コスト分析] ウィンドウで、[リソースとして表示] を設定し、選択した粒度形式で新しいバックアップ料金が表示されるかどうかを確認します。
次のスクリーンショットに示す価格は、例示目的のみです。
詳細な課金に関する問題のトラブルシューティング
このセクションでは、Azure Backupの詳細な課金に関連する問題を解決するためのトラブルシューティング手順について説明します。
予想される料金は コスト分析には表示されません。
この問題を解決するには:
ボールトの種類がRecovery ServicesのVaultかBackup Vaultかを確認してください。
粒度設定を保存したことを確認します。
更新操作が正常に完了したアクティビティ ログを確認します。
最大 2 時間待ち、 Cost Analysis を更新して変更を表示します。
Cost Analysis で正しいサブスクリプションと時間範囲のスコープを選択していることを確認します。