Cost Management의 예산을 통해 조직 책임을 계획하고 주도할 수 있습니다. 예산을 사용하여 특정 기간 중 사용자가 소비 또는 구독하는 Azure 서비스를 설명할 수 있습니다. 비용을 적극적으로 관리하고 지출이 진행되는 방식을 모니터링하기 위해 지출에 대해 다른 사람들에게 알리는 데 도움이 됩니다. 사용자가 만든 예산 임계값을 초과하면 알림이 트리거됩니다. 리소스에는 영향을 미치지 않으며 소비도 중단되지 않습니다. 예산을 사용하여 비용 분석 시 지출을 비교하고 추적할 수 있습니다. 이 빠른 시작에서는 세 가지 ARM 템플릿(Azure Resource Manager 템플릿)을 사용하여 예산을 만드는 방법을 보여 줍니다.
새 구독이 있는 경우 즉시 예산을 만들거나 다른 Cost Management 기능을 사용할 수 없습니다. 모든 Cost Management 기능을 사용하려면 최대 48시간이 걸릴 수 있습니다.
예산은 다음과 같은 유형의 Azure 계정 유형 및 범위에 대해 지원됩니다.
Azure EA 구독의 경우 예산을 보는 읽기 권한이 있어야 합니다. 예산을 만들고 관리하려면 기여자 사용 권한이 있어야 합니다.
필요에 따라 다음 템플릿 중 하나를 사용합니다.
템플릿 검토
이 빠른 시작에서 사용되는 템플릿은 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'))]"
}
}
}
템플릿에 다음과 같은 Azure 리소스 하나가 정의되어 있습니다.
템플릿 배포
다음 이미지를 선택하고 Azure에 로그인하여 템플릿을 엽니다. 템플릿은 필터 없이 예산을 만듭니다.
다음 값을 선택하거나 입력합니다.
- 구독: Azure 구독을 선택합니다.
- 리소스 그룹: 필요한 경우 기존 리소스 그룹을 선택하거나 새 리소스 그룹을 만듭니다.
- 지역: Azure 지역을 선택합니다. 예: 미국 중부
- 예산 이름: 예산의 이름을 입력합니다. 리소스 그룹 내에서 고유해야 합니다. 영숫자, 밑줄 및 하이픈만 허용됩니다.
- 금액: 예산을 추적하는 데 드는 총 비용을 입력합니다.
- 시간 조직: 예산이 적용되는 시간을 입력합니다. 허용되는 값은 매월, 매분기 또는 매년입니다. 시간 조직이 끝나면 예산이 초기화됩니다.
- 시작 날짜: 해당 월의 1일을 YYYY-MM-DD 형식의 시작 날짜로 입력합니다. 미래의 시작 날짜는 오늘부터 3개월 이내여야 합니다. 시간 조직 기간을 사용하여 과거의 시작 날짜를 지정할 수 있습니다.
- 종료 날짜: 예산의 종료 날짜를 YYYY-MM-DD 형식으로 입력합니다.
- 첫 번째 임계값: 첫 번째 알림의 임계값을 입력합니다. 비용이 임계값을 초과하면 알림이 전송됩니다. 항상 백분율이며 0.01~1000 사이여야 합니다.
- 두 번째 임계값: 두 번째 알림의 임계값을 입력합니다. 비용이 임계값을 초과하면 알림이 전송됩니다. 항상 백분율이며 0.01~1000 사이여야 합니다.
- 연락처 이메일 임계값을 초과하면 예산 알림을 보낼 이메일 주소 목록을 입력합니다. 문자열 배열을 허용합니다. 필요한 형식은
["user1@domain.com","user2@domain.com"]
입니다.
Azure 구독 유형에 따라 다음 작업 중 하나를 수행합니다.
- 검토 + 만들기를 선택합니다.
- 사용 약관을 검토하고 위에 명시된 사용 약관에 동의함을 선택한 다음 구매를 선택합니다.
검토 + 만들기를 선택한 경우 템플릿의 유효성이 검사됩니다. 만들기를 실행합니다.
Azure Portal은 템플릿을 배포하는데 사용됩니다. Azure Portal 외에도 Azure PowerShell, Azure CLI 및 REST API를 사용할 수 있습니다. 다른 배포 템플릿을 알아보려면 템플릿 배포를 참조하세요.
템플릿 검토
이 빠른 시작에서 사용되는 템플릿은 Azure 빠른 시작 템플릿에서 나온 것입니다.
{
"$schema": "https://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.5.6.12127",
"templateHash": "16839077498193926768"
}
},
"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."
}
},
"resourceGroupFilterValues": {
"type": "array",
"metadata": {
"description": "The set of values for the resource group filter."
}
}
},
"resources": [
{
"type": "Microsoft.Consumption/budgets",
"apiVersion": "2021-10-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')]"
}
},
"filter": {
"dimensions": {
"name": "ResourceGroupName",
"operator": "In",
"values": "[parameters('resourceGroupFilterValues')]"
}
}
}
}
]
}
템플릿에 다음과 같은 Azure 리소스 하나가 정의되어 있습니다.
템플릿 배포
다음 이미지를 선택하고 Azure에 로그인하여 템플릿을 엽니다. 템플릿은 리소스 그룹에 대한 필터가 있는 예산을 만듭니다.
다음 값을 선택하거나 입력합니다.
- 구독: Azure 구독을 선택합니다.
- 리소스 그룹: 필요한 경우 기존 리소스 그룹을 선택하거나 새 리소스 그룹을 만듭니다.
- 지역: Azure 지역을 선택합니다. 예: 미국 중부
- 예산 이름: 예산의 이름을 입력합니다. 리소스 그룹 내에서 고유해야 합니다. 영숫자, 밑줄 및 하이픈만 허용됩니다.
- 금액: 예산을 추적하는 데 드는 총 비용을 입력합니다.
- 시간 조직: 예산이 적용되는 시간을 입력합니다. 허용되는 값은 매월, 매분기 또는 매년입니다. 시간 조직이 끝나면 예산이 초기화됩니다.
- 시작 날짜: 해당 월의 1일을 YYYY-MM-DD 형식의 시작 날짜로 입력합니다. 미래의 시작 날짜는 오늘부터 3개월 이내여야 합니다. 시간 조직 기간을 사용하여 과거의 시작 날짜를 지정할 수 있습니다.
- 종료 날짜: 예산의 종료 날짜를 YYYY-MM-DD 형식으로 입력합니다.
- 첫 번째 임계값: 첫 번째 알림의 임계값을 입력합니다. 비용이 임계값을 초과하면 알림이 전송됩니다. 항상 백분율이며 0.01~1000 사이여야 합니다.
- 두 번째 임계값: 두 번째 알림의 임계값을 입력합니다. 비용이 임계값을 초과하면 알림이 전송됩니다. 항상 백분율이며 0.01~1000 사이여야 합니다.
- 연락처 이메일 임계값을 초과하면 예산 알림을 보낼 이메일 주소 목록을 입력합니다. 문자열 배열을 허용합니다. 필요한 형식은
["user1@domain.com","user2@domain.com"]
입니다.
- 리소스 그룹 필터 값 필터링할 리소스 그룹 이름 목록을 입력합니다. 문자열 배열을 허용합니다. 필요한 형식은
["Resource Group Name1","Resource Group Name2"]
입니다. 배열은 비워둘 수 없습니다.
Azure 구독 유형에 따라 다음 작업 중 하나를 수행합니다.
- 검토 + 만들기를 선택합니다.
- 사용 약관을 검토하고 위에 명시된 사용 약관에 동의함을 선택한 다음 구매를 선택합니다.
검토 + 만들기를 선택한 경우 템플릿의 유효성이 검사됩니다. 만들기를 실행합니다.
Azure Portal은 템플릿을 배포하는데 사용됩니다. Azure Portal 외에도 Azure PowerShell, Azure CLI 및 REST API를 사용할 수 있습니다. 다른 배포 템플릿을 알아보려면 템플릿 배포를 참조하세요.
템플릿 검토
이 빠른 시작에서 사용되는 템플릿은 Azure 빠른 시작 템플릿에서 나온 것입니다.
{
"$schema": "https://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.8.9.13224",
"templateHash": "16562188350105885076"
}
},
"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."
}
},
"contactRoles": {
"type": "array",
"defaultValue": [
"Owner",
"Contributor",
"Reader"
],
"metadata": {
"description": "The list of contact roles to send the budget notification to when the threshold is exceeded."
}
},
"contactEmails": {
"type": "array",
"metadata": {
"description": "The list of email addresses to send the budget notification to when the threshold is exceeded."
}
},
"contactGroups": {
"type": "array",
"metadata": {
"description": "The list of action groups to send the budget notification to when the threshold is exceeded. It accepts array of strings."
}
},
"resourceGroupFilterValues": {
"type": "array",
"metadata": {
"description": "The set of values for the resource group filter."
}
},
"meterCategoryFilterValues": {
"type": "array",
"metadata": {
"description": "The set of values for the meter category filter."
}
}
},
"resources": [
{
"type": "Microsoft.Consumption/budgets",
"apiVersion": "2021-10-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')]",
"contactRoles": "[parameters('contactRoles')]",
"contactGroups": "[parameters('contactGroups')]"
},
"NotificationForExceededBudget2": {
"enabled": true,
"operator": "GreaterThan",
"threshold": "[parameters('secondThreshold')]",
"contactEmails": "[parameters('contactEmails')]",
"contactRoles": "[parameters('contactRoles')]",
"contactGroups": "[parameters('contactGroups')]",
"thresholdType": "Forecasted"
}
},
"filter": {
"and": [
{
"dimensions": {
"name": "ResourceGroupName",
"operator": "In",
"values": "[parameters('resourceGroupFilterValues')]"
}
},
{
"dimensions": {
"name": "MeterCategory",
"operator": "In",
"values": "[parameters('meterCategoryFilterValues')]"
}
}
]
}
}
}
]
}
템플릿에 다음과 같은 Azure 리소스 하나가 정의되어 있습니다.
템플릿 배포
다음 이미지를 선택하고 Azure에 로그인하여 템플릿을 엽니다. 템플릿은 리소스 그룹용 필터와 미터 범주용 필터를 사용하여 예산을 만듭니다.
다음 값을 선택하거나 입력합니다.
- 구독: Azure 구독을 선택합니다.
- 리소스 그룹: 필요한 경우 기존 리소스 그룹을 선택하거나 새 리소스 그룹을 만듭니다.
- 지역: Azure 지역을 선택합니다. 예: 미국 중부
- 예산 이름: 예산의 이름을 입력합니다. 리소스 그룹 내에서 고유해야 합니다. 영숫자, 밑줄 및 하이픈만 허용됩니다.
- 금액: 예산을 추적하는 데 드는 총 비용을 입력합니다.
- 시간 조직: 예산이 적용되는 시간을 입력합니다. 허용되는 값은 매월, 매분기 또는 매년입니다. 시간 조직이 끝나면 예산이 초기화됩니다.
- 시작 날짜: 해당 월의 1일을 YYYY-MM-DD 형식의 시작 날짜로 입력합니다. 미래의 시작 날짜는 오늘부터 3개월 이내여야 합니다. 시간 조직 기간을 사용하여 과거의 시작 날짜를 지정할 수 있습니다.
- 종료 날짜: 예산의 종료 날짜를 YYYY-MM-DD 형식으로 입력합니다.
- 첫 번째 임계값: 첫 번째 알림의 임계값을 입력합니다. 비용이 임계값을 초과하면 알림이 전송됩니다. 항상 백분율이며 0.01~1000 사이여야 합니다.
- 두 번째 임계값: 두 번째 알림의 임계값을 입력합니다. 비용이 임계값을 초과하면 알림이 전송됩니다. 항상 백분율이며 0.01~1000 사이여야 합니다.
- 연락처 역할 임계값을 초과하면 예산 알림을 보낼 연락처 역할 목록을 입력합니다. 기본값은 소유자, 기여자 및 읽기 권한자입니다. 필요한 형식은
["Owner","Contributor","Reader"]
입니다.
- 연락처 이메일 임계값을 초과하면 예산 알림을 보낼 이메일 주소 목록을 입력합니다. 문자열 배열을 허용합니다. 필요한 형식은
["user1@domain.com","user2@domain.com"]
입니다.
- 연락처 그룹은 작업 그룹 리소스 ID 목록을 전체 리소스 URI로 입력하여 임계값 초과 시 예산 알림을 보냅니다. 문자열 배열을 허용합니다. 필요한 형식은
["action group resource ID1","action group resource ID2"]
입니다. 작업 그룹을 사용하지 않으려면 []
를 입력합니다.
- 리소스 그룹 필터 값 필터링할 리소스 그룹 이름 목록을 입력합니다. 문자열 배열을 허용합니다. 필요한 형식은
["Resource Group Name1","Resource Group Name2"]
입니다. 배열은 비워둘 수 없습니다.
- 측정기 범주 필터 값 Azure 서비스 측정기 범주 목록을 입력합니다. 문자열 배열을 허용합니다. 필요한 형식은
["Meter Category1","Meter Category2"]
입니다. 배열은 비워둘 수 없습니다.
Azure 구독 유형에 따라 다음 작업 중 하나를 수행합니다.
- 검토 + 만들기를 선택합니다.
- 사용 약관을 검토하고 위에 명시된 사용 약관에 동의함을 선택한 다음 구매를 선택합니다.
검토 + 만들기를 선택한 경우 템플릿의 유효성이 검사됩니다. 만들기를 실행합니다.
Azure Portal은 템플릿을 배포하는데 사용됩니다. Azure Portal 외에도 Azure PowerShell, Azure CLI 및 REST API를 사용할 수 있습니다. 다른 배포 템플릿을 알아보려면 템플릿 배포를 참조하세요.
다음 방법 중 하나를 사용하여 예산이 만들어졌는지 확인합니다.
예산이 더 이상 필요하지 않은 경우 다음 방법 중 하나를 사용하여 삭제합니다.
이 빠른 시작에서는 예산을 만들고 이를 사용하여 배포했습니다. Cost Management and Billing과 Azure Resource Manager에 대해 자세히 알아보려면 아래 문서를 계속 진행하세요.