クイック スタート:ARM テンプレートを使用して予算を作成する

Cost Management での予算は、組織のアカウンタビリティを計画および推進するのに役立ちます。 予算では、特定の期間中に消費またはサブスクライブする Azure サービスを考慮することができます。 コストを事前に管理するために支出を他のユーザーに通知したり、支出の時間変化を監視したりするのに役立ちます。 作成した予算のしきい値を超えた場合は、通知がトリガーされます。 どのリソースも影響を受けることはなく、消費が停止されることはありません。 予算を使用して、コストを分析するときに支出を比較および追跡できます。 このクイックスタートでは、3 つの異なる Azure Resource Manager テンプレート (ARM テンプレート) を使用して予算を作成する方法について説明します。

Azure Resource Manager テンプレートは JavaScript Object Notation (JSON) ファイルであり、プロジェクトのインフラストラクチャと構成が定義されています。 このテンプレートでは、宣言型の構文が使用されています。 デプロイしようとしているものを、デプロイを作成する一連のプログラミング コマンドを記述しなくても記述できます。

環境が前提条件を満たしていて、ARM テンプレートの使用に慣れている場合は、次のいずれかのテンプレートの [Azure へのデプロイ] ボタンを選択します。 Azure portal でテンプレートが開きます。

Template [デプロイ] ボタン
[フィルターなし] Resource Manager テンプレートを Azure にデプロイするボタン。
1 つのフィルター Resource Manager テンプレートを Azure にデプロイするボタン。
2 つ以上のフィルター Resource Manager テンプレートを Azure に配置するボタン。

前提条件

Azure サブスクリプションをお持ちでない場合は、開始する前に 無料アカウント を作成してください。

新しいサブスクリプションをご利用の場合、予算の作成など、Cost Management の機能をすぐには使用できません。 すべての Cost Management 機能を使用できるようになるまでに、最大 48 時間かかる場合があります。

予算は、次の種類の Azure アカウントの種類とスコープに対してサポートされています。

  • Azure ロールベースのアクセス制御 (Azure RBAC) のスコープ
    • 管理グループ
    • サブスクリプション
  • Enterprise Agreement のスコープ
    • 請求先アカウント
    • 部署
    • 登録アカウント
  • 個々の契約
    • 課金アカウント
  • Microsoft Customer Agreement のスコープ
    • 請求先アカウント
    • 請求プロファイル
    • 請求書セクション
    • Customer
  • AWS スコープ
    • 外部アカウント
    • 外部サブスクリプション

      Note

      Cost Management サービスの AWS のコネクタは、2025 年 3 月 31 日に廃止されます。 ユーザーは、AWS コスト管理レポートの代替ソリューションを検討する必要があります。 2024 年 3 月 31 日、Azure は、すべての顧客に対して AWS に新しいコネクタを追加する機能を無効にします。 詳細については、アマゾン ウェブ サービス (AWS) コネクタの廃止に関する記事を参照してください。 予算を表示するには、少なくとも Azure アカウントの読み取りアクセス権が必要です。

Azure EA サブスクリプションの場合、予算を表示するには読み取りアクセス権が必要です。 予算を作成し、管理するには、共同作成者のアクセス許可が必要です。

ユーザーおよびグループごとの予算については、サブスクリプションに従い、次の Azure アクセス許可 (スコープ) がサポートされています。 スコープの詳細については、「Understand and work with scopes (スコープを理解して使用する)」を参照してください。

  • 所有者 – サブスクリプションに対する予算を作成、変更、削除できます。
  • 共同作成者と Cost Management 共同作成者 - 自分の予算を作成、変更、削除できます。 他のユーザーによって作成された予算の予算金額を変更できます。
  • 閲覧者と Cost Management 閲覧者 - 自分がアクセス許可を持っている予算を表示できます。

Cost Management データに対するアクセス許可の割り当てについて詳しくは、「Cost Management のデータへのアクセス許可を割り当てる」をご覧ください。

ニーズに基づいて、次のいずれかのテンプレートを使用します。

Template 説明
[フィルターなし] ARM テンプレートには、フィルターが含まれません。
1 つのフィルター ARM テンプレートには、リソース グループのフィルターがあります。
2 つ以上のフィルター ARM テンプレートには、リソース グループのフィルターと測定カテゴリのフィルターがあります。

テンプレートを確認してデプロイする

テンプレートを確認する

このクイックスタートで使用されるテンプレートは Azure クイックスタート テンプレートからのものです。

{
  "$schema": "https://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "metadata": {
    "_generator": {
      "name": "bicep",
      "version": "0.26.54.24096",
      "templateHash": "10216192224502761212"
    }
  },
  "parameters": {
    "budgetName": {
      "type": "string",
      "defaultValue": "MyBudget",
      "metadata": {
        "description": "Name of the Budget. It should be unique within a resource group."
      }
    },
    "amount": {
      "type": "int",
      "defaultValue": 1000,
      "metadata": {
        "description": "The total amount of cost or usage to track with the budget"
      }
    },
    "timeGrain": {
      "type": "string",
      "defaultValue": "Monthly",
      "allowedValues": [
        "Monthly",
        "Quarterly",
        "Annually"
      ],
      "metadata": {
        "description": "The time covered by a budget. Tracking of the amount will be reset based on the time grain."
      }
    },
    "startDate": {
      "type": "string",
      "metadata": {
        "description": "The start date must be first of the month in YYYY-MM-DD format. Future start date should not be more than three months. Past start date should be selected within the timegrain preiod."
      }
    },
    "endDate": {
      "type": "string",
      "metadata": {
        "description": "The end date for the budget in YYYY-MM-DD format. If not provided, we default this to 10 years from the start date."
      }
    },
    "firstThreshold": {
      "type": "int",
      "defaultValue": 90,
      "metadata": {
        "description": "Threshold value associated with a notification. Notification is sent when the cost exceeded the threshold. It is always percent and has to be between 0.01 and 1000."
      }
    },
    "secondThreshold": {
      "type": "int",
      "defaultValue": 110,
      "metadata": {
        "description": "Threshold value associated with a notification. Notification is sent when the cost exceeded the threshold. It is always percent and has to be between 0.01 and 1000."
      }
    },
    "contactEmails": {
      "type": "array",
      "metadata": {
        "description": "The list of email addresses to send the budget notification to when the threshold is exceeded."
      }
    }
  },
  "resources": [
    {
      "type": "Microsoft.Consumption/budgets",
      "apiVersion": "2023-11-01",
      "name": "[parameters('budgetName')]",
      "properties": {
        "timePeriod": {
          "startDate": "[parameters('startDate')]",
          "endDate": "[parameters('endDate')]"
        },
        "timeGrain": "[parameters('timeGrain')]",
        "amount": "[parameters('amount')]",
        "category": "Cost",
        "notifications": {
          "NotificationForExceededBudget1": {
            "enabled": true,
            "operator": "GreaterThan",
            "threshold": "[parameters('firstThreshold')]",
            "contactEmails": "[parameters('contactEmails')]"
          },
          "NotificationForExceededBudget2": {
            "enabled": true,
            "operator": "GreaterThan",
            "threshold": "[parameters('secondThreshold')]",
            "contactEmails": "[parameters('contactEmails')]"
          }
        }
      }
    }
  ],
  "outputs": {
    "name": {
      "type": "string",
      "value": "[parameters('budgetName')]"
    },
    "resourceId": {
      "type": "string",
      "value": "[subscriptionResourceId('Microsoft.Consumption/budgets', parameters('budgetName'))]"
    }
  }
}

テンプレートには、1 つの Azure リソースが定義されています。

テンプレートのデプロイ

  1. Azure にサインインし、テンプレートを開くには次のイメージを選択します。 テンプレートでは、フィルターなしで予算が作成されます。

    Resource Manager テンプレートを Azure に配置するボタン。

  2. 次の値を選択または入力します。

    Resource Manager テンプレートで、フィルターなしで予算を作成し、ポータルでデプロイする

    • サブスクリプション: Azure サブスクリプションを選択します。
    • Resource group: 必要に応じて、既存リソース グループ、または [新規作成] を選択します。
    • リージョン: Azure のリージョンを選択します。 たとえば [米国中部] です。
    • 予算名: 予算の名前を入力します。 リソース グループ内で一意であることが必要です。 使用できる文字は、英数字、アンダー スコア、ハイフンのみです。
    • 金額: 予算で追跡するコストの合計額を入力します。
    • 時間グレイン: 予算の対象となる時間を入力します。 指定できる値は、毎月、四半期ごと、毎年です。 時間グレインの終了時点で予算はリセットされます。
    • 開始日: 月の第 1 日目に対する開始日を入力します (YYYY-MM-DD 形式)。 将来の開始日は、今日から 3 か月以内でなければなりません。 時間グレイン期間に対する過去の開始日を指定することができます。
    • 終了日: 予算の終了日を YYYY-MM-DD 形式で入力します。
    • 最初のしきい値: 最初の通知のしきい値を入力します。 コストがしきい値を超えたとき、通知が送信されます。 常にパーセント単位となります。0.01 から 1000 の範囲で指定してください。
    • 2 つめのしきい値: 2 つめの通知のしきい値を入力します。 コストがしきい値を超えたとき、通知が送信されます。 常にパーセント単位となります。0.01 から 1000 の範囲で指定してください。
    • 連絡先の電子メール: しきい値を超えたときに予算の通知の送信先となる一連のメール アドレスを入力します。 文字列の配列を指定できます。 ["user1@domain.com","user2@domain.com"] 形式で指定する必要があります。
  3. ご利用の Azure サブスクリプションの種類に応じて、次のいずれかのアクションを実行します。

    • [Review + create](レビュー + 作成) を選択します。
    • 使用条件を確認し、 [上記の使用条件に同意する] を選択し、 [購入] を選択します。
  4. [確認と作成] を選択した場合は、テンプレートが検証されます。 [作成] を選択します

    Resource Manager テンプレートで、フィルターなしで予算をデプロイする場合のポータルの通知のスクリーンショット。

テンプレートをデプロイするには Azure portal を使用します。 Azure portal だけでなく、Azure PowerShell、Azure CLI、REST API を使用することもできます。 他のデプロイ テンプレートについては、「テンプレートのデプロイ」を参照してください。

デプロイの検証

次のいずれかの方法を使用して、予算が作成されていることを確認します。

Cost Management + Billing> スコープの選択 >[部署] に移動します。

リソースをクリーンアップする

予算が不要になった場合は、次のいずれかの方法を使用して削除します。

[コストの管理と請求] に移動し > 請求スコープ >[予算] を選び > 予算を選び >[予算の削除] を選びます。

次のステップ

このクイックスタートでは、予算を作成し、デプロイしました。 Cost Management and Billing および Azure Resource Manager の詳細については、引き続き以下の記事を参照してください。