자동화로 비용 관리

Cost Management 자동화를 사용하여 비용 데이터를 검색하고 관리하는 사용자 지정 솔루션 집합을 빌드할 수 있습니다. 이 문서에서는 상황에 따라 사용할 수 있는 Cost Management 자동화 및 옵션에 대한 일반적인 시나리오를 설명합니다. Api를 사용하여 개발하려는 경우 일반적인 API 요청 예제를 통해 개발 프로세스를 가속화하는 데 도움을 제공합니다.

오프라인 분석을 위한 비용 데이터 검색 자동화

Azure 비용 데이터를 다운로드하여 다른 데이터 세트와 병합해야 할 수도 있습니다. 또는 사용자의 시스템에 비용 데이터를 통합해야 할 수도 있습니다. 관련된 데이터 양에 따라 다양한 옵션을 사용할 수 있습니다. 모든 경우에 API 및 도구를 사용하려면 적절한 범위에서 Cost Management 권한이 있어야 합니다. 자세한 내용은 데이터에 대한 액세스 권한 할당을 참조하세요.

대량 데이터 세트 처리에 대한 제안

조직의 리소스 또는 구독에 대한 Azure가 많은 경우 다량의 사용 세부 정보 데이터 결과가 포함됩니다. Excel에서는 이렇게 많은 파일을 로드할 수 없는 경우가 많습니다. 이 경우 다음 옵션을 권장합니다.

Power BI

Power BI는 많은 양의 데이터를 수집하고 처리하는 데 사용됩니다. 기업계약 고객인 경우 Power BI 템플릿 앱을 사용하여 청구 계정에 대한 비용을 분석할 수 있습니다. 이 보고서에는 고객이 사용하는 주요 보기가 포함되어 있습니다. 자세한 내용은 Power BI 템플릿 앱을 사용한 Azure 비용 분석을 참조하세요.

Power BI 데이터 커넥터

매일 데이터를 분석하려면 Power BI 데이터 커넥터를 사용하여 자세한 분석을 위해 데이터를 가져오는 것이 좋습니다. 생성하는 모든 보고서는 비용이 증가하는 만큼 커넥터에서 최신 상태로 유지됩니다.

Cost Management 내보내기

매일 데이터를 분석할 필요가 없습니다. 이 경우 Cost Management의 내보내기 기능을 사용하여 Azure Storage 계정으로 데이터 내보내기를 예약합니다. 그런 다음 필요에 따라 Power BI에 데이터를 로드하거나 파일이 충분히 작은 경우 Excel에서 분석할 수 있습니다. 내보내기는 Azure Portal에서 사용할 수 있으며, API 내보내기를 사용하여 내보내기를 구성할 수도 있습니다.

사용량 세부 정보 API

적은 비용의 데이터 세트를 사용하는 경우 사용 세부 정보 API를 사용하는 것이 좋습니다. 권장 모범 사례는 다음과 같습니다.

  • 최신 비용 데이터를 가져오려면 최대 하루에 한 번 쿼리하는 것이 좋습니다. 보고서는 4시간마다 새로 고쳐집니다. 더 자주 호출하는 경우 동일한 데이터를 받게 됩니다.
  • 기록 청구서에 대한 비용 데이터를 다운로드한 후에는 명시적으로 알림을 받는 경우가 아니면 요금이 변경되지 않습니다. 동일한 데이터에 대한 반복 호출을 방지하려면 비용 데이터를 쿼리 가능한 저장소에 캐시하는 것이 좋습니다.
  • 호출을 작은 날짜 범위로 청크 분할하여 다운로드할 수 있는 더 관리하기 쉬운 파일을 가져옵니다. 예를 들어, 월 단위로 Azure 사용 현황 파일이 큰 경우 일별 또는 주별로 청크 분할하는 것이 좋습니다.
  • 사용량 현황 데이터가 많은 범위(예: 청구 계정)가 있는 경우 다운로드할 수 있는 더 관리하기 쉬운 파일을 가져올 수 있도록 자식 범위를 여러 번 호출하는 것이 좋습니다.
  • 데이터 세트가 매월 2GB를 초과하는 경우 스케일링 가능성이 더 뛰어난 솔루션으로 내보내기를 사용하는 것이 좋습니다.

사용량 세부 정보 API를 사용하여 검색 자동화

사용 세부 정보 API는 Azure 청구서에 해당하는 원시 집계 비용 데이터를 가져오는 쉬운 방법을 제공합니다. API는 조직에서 프로그래밍 방식으로 데이터 검색 솔루션을 필요로 하는 경우에 유용합니다. 더 작은 비용 데이터 세트를 분석하려는 경우 API를 사용하는 것이 좋습니다. 그러나 데이터 세트가 큰 경우 이전에 식별된 다른 솔루션을 사용해야 합니다. 사용량 세부 정보의 데이터는 시간당 미터 단위로 제공됩니다. 월별 청구를 계산할 때 사용됩니다. 이러한 API의 GA(일반 공급) 버전은 2019-10-01입니다. 2019-04-01-preview를 사용하여 API로 예약 및 Azure Marketplace 구매 미리 보기 버전에 액세스합니다.

대량의 내보낸 데이터를 정기적으로 가져오려면 내보내기를 사용하여 반복적으로 대규모 비용 데이터 세트 검색을 참조하세요.

사용량 세부 정보 API 제안

요청 일정

하루에 두 번 이상 사용량 세부 정보 API에 요청하지 않는 것이 좋습니다. 비용 데이터를 새로 고침 빈도 및 반올림 처리 방법에 대한 자세한 내용은 비용 관리 데이터 이해를 참조하세요.

필터링하지 않은 최상위 수준 범위를 대상으로 하기

API를 사용하여 사용 가능한 최상위 범위에서 필요한 모든 데이터를 가져옵니다. 필터링, 그룹화 또는 집계된 분석을 수행하기 전에 필요한 모든 데이터가 수집될 때까지 기다립니다. API는 집계되지 않은 원시 비용 데이터를 제공하기 위해 특별히 최적화되어 있습니다. Cost Management에서 사용할 수 있는 범위에 대한 자세한 내용은 범위 이해 및 작업을 참조하세요. 범위에 필요한 데이터를 다운로드한 후에는 Excel을 사용하여 필터 및 피벗 테이블로 데이터를 추가로 분석할 수 있습니다.

가격 책정에 대한 참고 사항

가격표나 청구서를 통해 사용량과 요금을 조정하려면 요금 세부 정보의 가격 책정 방식을 참조하세요.

단일 리소스에는 하루의 레코드가 여러 개 있을 수 있습니다.

Azure 리소스 공급자는 사용량 및 요금을 청구 시스템에 내보내고 사용량 레코드의 Additional Info 필드를 채웁니다. 경우에 따라 리소스 공급자는 특정 일의 사용량을 내보내고 사용량 레코드의 Additional Info 필드에서 다른 데이터 센터가 있는 레코드를 스탬프 처리할 수 있습니다. 이로 인해 하루의 사용량 파일에 미터/리소스의 레코드가 여러 개 표시될 수 있습니다. 이 경우 초과 요금이 부과되지 않습니다. 여러 레코드는 해당 일의 리소스에 대한 미터 전체 비용을 나타냅니다.

예제 사용량 정보 API 요청

다음 예제 요청은 Microsoft 고객이 제공하는 일반적인 시나리오를 해결하는 데 사용됩니다.

특정 날짜 범위 동안 범위에 대한 사용량 세부 정보 가져오기

요청에 의해 반환되는 데이터는 청구 시스템이 사용량을 받은 날짜에 해당합니다. 여기에는 여러 청구서의 비용이 포함될 수 있습니다. 사용할 호출은 구독 유형에 따라 달라집니다.

EA(기업계약) 또는 종량제 구독이 있는 레거시 고객의 경우 다음 호출을 사용합니다.

GET https://management.azure.com/{scope}/providers/Microsoft.Consumption/usageDetails?$filter=properties%2FusageStart%20ge%20'2020-02-01'%20and%20properties%2FusageEnd%20le%20'2020-02-29'&$top=1000&api-version=2019-10-01

Microsoft 고객 계약이 있는 최신 고객의 경우 다음 호출을 사용합니다.

GET https://management.azure.com/{scope}/providers/Microsoft.Consumption/usageDetails?startDate=2020-08-01&endDate=2020-08-05&$top=1000&api-version=2019-10-01

참고 항목

$filter 매개 변수는 Microsoft 고객 계약에서 지원되지 않습니다.

분할 상환 비용 세부 정보 얻기

발생한 구매를 표시하는 데 실제 비용이 필요한 경우 다음 요청에서 메트릭ActualCost으로 변경합니다. 분할 상환 및 실제 비용을 사용하려면 2019-04-01-preview 버전을 사용해야 합니다. 현재 API 버전은 새 형식/메트릭 특성과 변경된 속성 이름을 제외하고 2019-10-01 버전과 동일하게 작동합니다. Microsoft 고객 계약이 있는 경우 다음 예제에서 필터를 startDate하고 endDate 합니다.

GET https://management.azure.com/{scope}/providers/Microsoft.Consumption/usageDetails?metric=AmortizedCost&$filter=properties/usageStart+ge+'2019-04-01'+AND+properties/usageEnd+le+'2019-04-30'&api-version=2019-04-01-preview

예산으로 경고 및 작업 자동화

클라우드에서 투자 가치를 극대화하는 데 중요한 두 가지 구성 요소가 있습니다. 하나는 자동 예산 만들기입니다. 다른 하나는 예산 경고에 대한 응답으로 비용 기반 오케스트레이션을 구성하는 것입니다. 예산 만들기를 자동화하는 방법에는 여러 가지가 있습니다. 구성된 경고 임계값을 초과하면 다양한 경고 응답이 발생합니다.

다음 섹션에서는 사용 가능한 옵션에 대해 설명하고, 예산 자동화를 시작하기 위한 샘플 API 요청을 제공합니다.

예산 임계값과 비교하여 비용을 평가하는 방법

비용은 하루에 한 번 예산 임계값과 비교하여 평가됩니다. 새 예산을 만들 때 또는 예산 재설정일에는 평가를 수행하지 않았을 수 있으므로 임계값과 비교한 비용이 0/null이 됩니다.

Azure에서 비용이 임계값을 초과했음을 감지하는 경우 알림이 감지 기간의 시간 내에 트리거됩니다.

현재 비용 보기

현재 비용을 보려면 쿼리 API를 사용하여 GET 호출을 수행해야 합니다.

예산 API에 대한 GET 호출은 비용 분석에 표시된 현재 비용을 반환하지 않습니다. 대신, 호출에서 마지막으로 평가된 비용을 반환합니다.

예산 만들기 자동화

예산 API를 사용하여 예산 만들기를 자동화할 수 있습니다. 예산은 예산 템플릿을 사용하여 만들 수도 있습니다. 템플릿은 Azure 배포를 표준화하는 동시에 비용 제어가 적절하게 구성되고 적용되도록 하는 쉬운 방법입니다.

예산 경고 이메일이 지원되는 로캘

예산을 사용하면 비용이 설정된 임계값을 초과하는 경우 경고가 표시됩니다. 예산당 최대 5명의 이메일 수신자를 설정할 수 있습니다. 예산 임계값을 초과하면 수신자는 24시간 이내에 이메일 알림을 받습니다. 그러나 수신자는 다른 언어로 된 이메일을 받을 수도 있습니다. 다음 언어 문화권 코드를 예산 API와 함께 사용할 수 있습니다. 다음 예와 유사한 locale 매개 변수를 사용하여 문화권 코드를 설정합니다.

{
  "eTag": "\"1d681a8fc67f77a\"",
  "properties": {
    "timePeriod": {
      "startDate": "2020-07-24T00:00:00Z",
      "endDate": "2022-07-23T00:00:00Z"
    },
    "timeGrain": "BillingMonth",
    "amount": 1,
    "currentSpend": {
      "amount": 0,
      "unit": "USD"
    },
    "category": "Cost",
    "notifications": {
      "actual_GreaterThan_10_Percent": {
        "enabled": true,
        "operator": "GreaterThan",
        "threshold": 20,
        "locale": "en-us",
        "contactEmails": [
          "user@contoso.com"
        ],
        "contactRoles": [],
        "contactGroups": [],
        "thresholdType": "Actual"
      }
    }
  }
}

문화권 코드에서 지원되는 언어:

문화권 코드 언어
en-us 영어(미국)
ja-jp 일본어(일본)
zh-cn 중국어(간체, 중국)
de-de 독일어(독일)
es-es 스페인어(스페인, 국제)
fr-fr 프랑스어(프랑스)
it-it 이탈리아어(이탈리아)
ko-kr 한국어(대한민국)
pt-br 포르투갈어(브라질)
ru-ru 러시아어(러시아)
zh-tw 중국어(번체, 대만)
cs-cz 체코어(체코)
pl-pl 폴란드어(폴란드)
tr-tr 터키어(튀르키예)
da-dk 덴마크어(덴마크)
en-gb 영어(영국)
hu-hu 헝가리어(헝가리)
nb-no 노르웨이어 복말(노르웨이)
nl-nl 네덜란드어(네덜란드)
pt-pt 포르투갈어(포르투갈)
sv-se 스웨덴어(스웨덴)

일반적인 예산 API 구성

Azure 환경에서 예산을 구성하는 방법에는 여러 가지가 있습니다. 먼저 시나리오를 고려한 다음, 이를 사용하도록 설정하는 구성 옵션을 식별합니다. 검토할 옵션은 다음과 같습니다.

  • 시간 조직 - 예산에서 비용을 발생시키고 평가하는 데 사용하는 되풀이 기간을 나타냅니다. 가장 일반적인 옵션은 매월, 매분기 및 매년입니다.
  • 기간 - 예산이 유효한 기간을 나타냅니다. 예산은 유효한 상태로 유지되는 동안에만 적극적으로 모니터링하고 경고합니다.
  • 알림
    • 연락처 이메일 – 예산에서 비용이 발생하고 정의된 임계값을 초과하는 경우 이메일 주소에서 경고를 받습니다.
    • 연락처 역할 - 이 옵션을 사용하면 지정된 범위에서 일치하는 Azure 역할이 있는 모든 사용자가 이메일 경고를 받습니다. 예를 들어 구독 소유자는 구독 범위에서 만들어진 예산에 대한 경고를 받을 수 있습니다.
    • 연락처 그룹 - 경고 임계값을 초과하는 경우 예산에서 구성된 작업 그룹을 호출합니다.
  • 비용 차원 필터 - 비용 분석 또는 쿼리 API에서 수행할 수 있는 것과 동일한 필터링을 예산에서도 수행할 수 있습니다. 이 필터를 사용하여 예산으로 모니터링하는 비용 범위를 줄입니다.

요구 사항에 맞는 예산 만들기 옵션이 확인되었으면 API를 사용하여 예산을 만듭니다. 아래 예제는 일반적인 예산 구성을 시작하는 데 도움이 됩니다.

여러 리소스 및 태그로 필터링된 예산 만들기

요청 URL: PUT https://management.azure.com/subscriptions/{SubscriptionId} /providers/Microsoft.Consumption/budgets/{BudgetName}/?api-version=2019-10-01

{
  "eTag": "\"1d34d016a593709\"",
  "properties": {
    "category": "Cost",
    "amount": 100.65,
    "timeGrain": "Monthly",
    "timePeriod": {
      "startDate": "2017-10-01T00:00:00Z",
      "endDate": "2018-10-31T00:00:00Z"
    },
    "filter": {
      "and": [
        {
          "dimensions": {
            "name": "ResourceId",
            "operator": "In",
            "values": [
              "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{meterName}",
              "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{meterName}"
            ]
          }
        },
        {
          "tags": {
            "name": "category",
            "operator": "In",
            "values": [
              "Dev",
              "Prod"
            ]
          }
        },
        {
          "tags": {
            "name": "department",
            "operator": "In",
            "values": [
              "engineering",
              "sales"
            ]
          }
        }
      ]
    },
    "notifications": {
      "Actual_GreaterThan_80_Percent": {
        "enabled": true,
        "operator": "GreaterThan",
        "threshold": 80,
        "contactEmails": [
          "user1@contoso.com",
          "user2@contoso.com"
        ],
        "contactRoles": [
          "Contributor",
          "Reader"
        ],
        "contactGroups": [
          "/subscriptions/{subscriptionID}/resourceGroups/{resourceGroupName}/providers/microsoft.insights/actionGroups/{actionGroupName}
        ],
        "thresholdType": "Actual"
      }
    }
  }
}

예산 경고에 대한 비용 기반 오케스트레이션 구성

Azure 작업 그룹을 사용하여 자동화된 작업을 시작하도록 예산을 구성할 수 있습니다. 예산을 사용한 작업 자동화에 대해 자세히 알아보려면 예산을 사용한 자동화를 참조하세요.

데이터 대기 시간 및 속도 제한

API는 하루에 한 번만 호출하는 것이 좋습니다. Azure 리소스 공급자에서 새 사용량 데이터가 수신되면 Cost Management 데이터가 4시간마다 데이터를 새로 고칩니다. 더 자주 호출해도 더 많은 데이터가 제공되지 않습니다. 대신 부하가 증가합니다.

쿼리 API 쿼리 처리 단위

쿼리 API는 기존 속도 제한 프로세스 외에도 API 호출 비용에 따라 처리를 제한합니다. API 호출 비용은 QPU(쿼리 처리 단위)로 표현됩니다. QPU는 Cosmos DB RU와 같은 성능 통화입니다. CPU 및 메모리와 같은 시스템 리소스를 추상화합니다.

QPU 계산

현재, 할당된 할당량에서 쿼리된 1개월 동안의 데이터에 대해 하나의 QPU가 차감됩니다. 이 논리는 예고 없이 변경될 수 있습니다.

QPU 요소

다음 요소는 API 요청에서 사용하는 QPU 수에 영향을 줍니다.

  • 날짜 범위. 요청의 날짜 범위가 증가하면 사용된 QPU 수가 증가합니다.

기타 QPU 요소는 예고 없이 추가될 수 있습니다.

QPU 할당량

다음 할당량은 테넌트별로 구성됩니다. 다음 할당량이 모두 소진되면 요청이 제한됩니다.

  • 10초당 12 QPU
  • 1분당 60 QPU
  • 1시간당 600 QPU

할당량은 필요에 따라 변경될 수 있으며 더 많은 할당량이 추가될 수 있습니다.

응답 헤더

응답 헤더를 검사하여 API 요청에 사용된 QPU 수와 남은 QPU 수를 추적할 수 있습니다.

x-ms-ratelimit-microsoft.costmanagement-qpu-retry-after

백오프할 시간(초)을 나타냅니다. 요청이 429로 제한되면 요청을 다시 시도하기 전에 이 헤더에 지정된 시간만큼 백오프합니다.

x-ms-ratelimit-microsoft.costmanagement-qpu-consumed

API 호출에서 사용하는 QPU

x-ms-ratelimit-microsoft.costmanagement-qpu-remaining

남은 할당량 목록

다음 단계