Azure 소매 가격 개요

Azure 고객은 모든 Azure 서비스의 소매 가격을 검색하는 프로그래밍 방식의 방법을 찾고 있습니다. 이제 소매 요금 가격 API를 사용하여 모든 Azure 서비스에 대한 소매 가격을 가져올 수 있습니다. 이전에 Azure 서비스의 가격을 검색할 수 있는 유일한 방법은 Azure 가격 책정 계산기나 Azure Portal을 사용하는 것이었습니다. 이 API를 사용하면 인증되지 않은 환경을 통해 모든 Azure 서비스의 소매가를 확인할 수 있습니다. API를 사용하여 지역 및 SKU별로 Azure 서비스의 가격을 살펴볼 수 있습니다. 프로그래밍 방식의 API를 통해 SKU 및 지역 간의 내부 분석 및 가격 비교를 위한 도구를 직접 만들 수도 있습니다.

중요

Microsoft가 모든 Azure 서비스의 가격을 책정하는 데 사용하는 통화는 USD입니다. USD 통화로 표시된 가격은 Microsoft 소매 가격입니다. API에서 반환되는 기타 비 USD 가격은 예산 비용을 예측하는 데 도움이 되는 참조용입니다.

미리 보기 버전

에서 새 2023-01-01-preview API 버전을 https://prices.azure.com/api/retail/prices?api-version=2023-01-01-preview사용할 수 있습니다. 미리 보기 버전은 이전 API 버전과 호환됩니다. URL은 기본 미터 및 기본 미터가 아닌 미터를 포함한 전체 미터 집합을 반환합니다.

또는 https://prices.azure.com/api/retail/prices?api-version=2023-01-01-previewhttps://prices.azure.com/api/retail/prices 사용하면 전체 미터 집합이 반환됩니다.

저축 플랜의 요금은 버전에서 https://prices.azure.com/api/retail/prices?api-version=2023-01-01-preview 만 사용할 수 있습니다.

기본 미터 필터링

다음을 사용하여 기본 미터 가격만 검색하도록 응답을 제한할 수 있습니다.

https://prices.azure.com/api/retail/prices?api-version=2023-01-01-preview&meterRegion='primary'

기본 미터 필터링은 를 포함한 2023-01-01이상 API 버전에서 2021-10-01 지원됩니다.

Azure 저장 계획 지원

앞에서 설명한 것처럼 Azure 저축 플랜 소매 가격은 미리 보기 버전(https://prices.azure.com/api/retail/prices?api-version=2023-01-01-preview)에서만 지원됩니다. 저축 플랜에 적합한 미터의 경우 결과에는 저축 계획에 해당하는 섹션이 있습니다. 저축 계획에 투입하면 가격보다 OnDemand 저렴한 가격을 얻을 수 있습니다. Azure 저축 계획에 대한 자세한 내용은 Azure 저축 계획 설명서를 참조하세요.

다음은 저축 계획 정보가 포함된 예제 API 응답입니다.


        {
            "currencyCode": "USD",
            "tierMinimumUnits": 0.0,
            "retailPrice": 2.305,
            "unitPrice": 2.305,
            "armRegionName": "southindia",
            "location": "IN South",
            "effectiveStartDate": "2019-05-14T00:00:00Z",
            "meterId": "0084b086-37bf-4bee-b27f-6eb0f9ee4954",
            "meterName": "M8ms",
            "productId": "DZH318Z0BQ4W",
            "skuId": "DZH318Z0BQ4W/00BQ",
            "availabilityId": null,
            "productName": "Virtual Machines MS Series",
            "skuName": "M8ms",
            "serviceName": "Virtual Machines",
            "serviceId": "DZH313Z7MMC8",
            "serviceFamily": "Compute",
            "unitOfMeasure": "1 Hour",
            "type": "Consumption",
            "isPrimaryMeterRegion": true,
            "armSkuName": "Standard_M8ms",
            "savingsPlan": [
                {
                    "unitPrice": 0.8065195,
                    "retailPrice": 0.8065195,
                    "term": "3 Years"
                },
                {
                    "unitPrice": 1.5902195,
                    "retailPrice": 1.5902195,
                    "term": "1 Year"
                }
            ]
        },

API 엔드포인트

https://prices.azure.com/api/retail/prices

API 샘플 호출

다음은 몇 가지 예입니다.

가상 머신에 대해서만 필터링된 호출 예제

https://prices.azure.com/api/retail/prices?$filter=serviceName eq 'Virtual Machines'

예약에 대해서만 필터링된 예제 호출

https://prices.azure.com/api/retail/prices?$filter=priceType eq 'Reservation'

예약된 instance 가상 머신에 대해 필터링된 호출 예제

https://prices.azure.com/api/retail/prices?$filter=serviceName eq 'Virtual Machines' and priceType eq 'Reservation'

컴퓨팅 리소스에 대해 필터링된 예제 호출

https://prices.azure.com/api/retail/prices?$filter=serviceFamily eq 'Compute'

통화가 유로인 컴퓨팅에 대해 필터링된 호출 예제

https://prices.azure.com/api/retail/prices?currencyCode='EUR'&$filter=serviceFamily eq 'Compute'

API 응답 예제

예약 가격이 없는 샘플 API 응답은 다음과 같습니다.

{
            "currencyCode": "USD",
            "tierMinimumUnits": 0.0,
            "retailPrice": 0.176346,
            "unitPrice": 0.176346,
            "armRegionName": "westeurope",
            "location": "EU West",
            "effectiveStartDate": "2020-08-01T00:00:00Z",
            "meterId": "000a794b-bdb0-58be-a0cd-0c3a0f222923",
            "meterName": "F16s Spot",
            "productId": "DZH318Z0BQPS",
            "skuId": "DZH318Z0BQPS/00TG",
            "productName": "Virtual Machines FS Series Windows",
            "skuName": "F16s Spot",
            "serviceName": "Virtual Machines",
            "serviceId": "DZH313Z7MMC8",
            "serviceFamily": "Compute",
            "unitOfMeasure": "1 Hour",
            "type": "DevTestConsumption",
            "isPrimaryMeterRegion": true,
            "armSkuName": "Standard_F16s"
        }

다음은 응답에서 예약 가격 및 용어가 포함된 샘플 API 응답입니다.

{
            "currencyCode": "USD",
            "tierMinimumUnits": 0.0,
            "reservationTerm": "1 Year",
            "retailPrice": 25007.0,
            "unitPrice": 25007.0,
            "armRegionName": "southcentralus",
            "location": "US South Central",
            "effectiveStartDate": "2020-08-01T00:00:00Z",
            "meterId": "0016083a-928f-56fd-8eeb-39287dcf676d",
            "meterName": "E64 v4",
            "productId": "DZH318Z0D1L7",
            "skuId": "DZH318Z0D1L7/018J",
            "productName": "Virtual Machines Ev4 Series",
            "skuName": "E64 v4",
            "serviceName": "Virtual Machines",
            "serviceId": "DZH313Z7MMC8",
            "serviceFamily": "Compute",
            "unitOfMeasure": "1 Hour",
            "type": "Reservation",
            "isPrimaryMeterRegion": true,
            "armSkuName": "Standard_E64_v4"
        }

다음은 USD 이외의 통화를 사용하는 샘플 응답입니다.

{
  "currencyCode": "EUR",
  "tierMinimumUnits": 0,
  "retailPrice": 0.6176,
  "unitPrice": 0.6176,
  "armRegionName": "westeurope",
  "location": "EU West",
  "effectiveStartDate": "2021-04-01T00:00:00Z",
  "meterId": "000a794b-bdb0-58be-a0cd-0c3a0f222923",
  "meterName": "F16s Spot",
  "productId": "DZH318Z0BQPS",
  "skuId": "DZH318Z0BQPS/00TG",
  "productName": "Virtual Machines FS Series Windows",
  "skuName": "F16s Spot",
  "serviceName": "Virtual Machines",
  "serviceId": "DZH313Z7MMC8",
  "serviceFamily": "Compute",
  "unitOfMeasure": "1 Hour",
  "type": "Consumption",
  "isPrimaryMeterRegion": true,
  "armSkuName": "Standard_F16s"
}

API 응답 페이지 매김

API 응답은 페이지 매김을 제공합니다. 각 API 요청에 대해 최대 1,000개의 레코드가 반환됩니다. API 응답의 끝에는 다음 페이지에 대한 링크가 있습니다. 예를 들면 다음과 같습니다.

"NextPageLink": https://prices.azure.com:443/api/retail/prices?$filter=serviceName%20eq%20%27Virtual%20Machines%27&$skip=1000

API 속성 세부 정보

다음은 API 응답의 일부인 모든 속성 세부 정보입니다.

필드 예제 값 정의
currencyCode USD 지정하지 않는 한 요금이 정의되고 가격을 USD로 반환하는 통화입니다.
tierMinimumUnits 0 가격을 이용하기 위한 최소 사용량 단위
reservationTerm 1년 예약 기간 – 1년 또는 3년
retailPrice 0.176346 할인이 없는 가격
unitPrice 0.176346
armRegionName westeurope 서비스를 사용할 수 있는 Azure Resource Manager 지역입니다. 이 버전은 상업용 클라우드에서만 가격을 지원합니다.
Location 서유럽 리소스가 배포되는 Azure 데이터 센터
effectiveStartDate 2020-08-01T00:00:00Z 선택적 필드입니다. 소매 가격이 적용되는 날짜를 표시합니다.
meterId 000a794b-bdb0-58be-a0cd-0c3a0f222923 리소스의 고유 식별자
meterName F16s 스폿 미터의 이름
productid DZH318Z0BQPS 제품의 UniqueID
skuId DZH318Z0BQPS/00TG SKU에 대한 UniqueID
productName Virtual Machines FS 시리즈 Windows 제품 이름
skuName F16s 스폿 SKU name
serviceName Virtual Machines 서비스 이름
serviceId DZH313Z7MMC8 서비스의 UniqueID
serviceFamily Compute SKU의 서비스 제품군
unitOfMeasure 1시간 서비스에 대한 사용량 측정 방법
Type DevTestConsumption 미터 소비 유형입니다. 다른 형식은 및 Consumption입니다Reservation.
isPrimaryMeterRegion True 미터 영역이 기본 미터로 설정되었는지 여부를 나타냅니다. 기본 미터는 요금 및 청구에 사용됩니다.
armSkuName Standard_F16s Azure에 등록된 SKU 이름
term 3년 정보와 관련된 savingsPlan Azure 저축 계획의 기간입니다.

API 필터

필터는 다음 필드에 대해 지원됩니다.

  • armRegionName
  • Location
  • meterId
  • meterName
  • productid
  • skuId
  • productName
  • skuName
  • serviceName
  • serviceId
  • serviceFamily
  • priceType
  • armSkuName

API 샘플 호출에 표시된 것처럼 API 엔드포인트에 필터를 추가합니다.

지원되는 통화

API 샘플 호출에 표시된 대로 통화 코드를 API 엔드포인트에 추가합니다.

통화 코드 세부 정보
USD 미국 달러
Aud 호주 달러
Brl 브라질 레알
Cad 캐나다 달러
Chf 스위스 프랑
Cny 중국 위안
Dkk 덴마크 크로네
Eur 유로
Gbp 영국 파운드
Inr 인도 루피
일본 엔
한국 원
Nok 노르웨이 크로네
Nzd 뉴질랜드 달러
문질러 러시아어 루블
Sek 스웨덴 크로나
Twd 대만 달러

프로그래밍 방식 예제

다음 간단한 Python 애플리케이션은 API를 사용하여 미국 중남부 지역의 표준 NP20 SKU 가상 머신의 소매점 가격을 쿼리합니다. 애플리케이션은 쿼리의 출력을 필터링하고 원하는 정보를 테이블 형식으로 표시합니다.

#!/usr/bin/env python3
import requests
import json
from tabulate import tabulate 


def build_pricing_table(json_data, table_data):
    for item in json_data['Items']:
        meter = item['meterName']
        table_data.append([item['armSkuName'], item['retailPrice'], item['unitOfMeasure'], item['armRegionName'], meter, item['productName']])
        
def main():
    table_data = []
    table_data.append(['SKU', 'Retail Price', 'Unit of Measure', 'Region', 'Meter', 'Product Name'])
    
    api_url = "https://prices.azure.com/api/retail/prices?api-version=2021-10-01-preview"
    query = "armRegionName eq 'southcentralus' and armSkuName eq 'Standard_NP20s' and priceType eq 'Consumption' and contains(meterName, 'Spot')"
    response = requests.get(api_url, params={'$filter': query})
    json_data = json.loads(response.text)
    
    build_pricing_table(json_data, table_data)
    nextPage = json_data['NextPageLink']
    
    while(nextPage):
        response = requests.get(nextPage)
        json_data = json.loads(response.text)
        nextPage = json_data['NextPageLink']
        build_pricing_table(json_data, table_data)

    print(tabulate(table_data, headers='firstrow', tablefmt='psql'))
    
if __name__ == "__main__":
    main()

이 코드를 실행하면 다음과 같은 출력이 생성됩니다.

+----------------+----------------+-------------------+----------------+------------+------------------------------------+
| SKU            |   Retail Price | Unit of Measure   | Region         | Meter      | Product Name                       |
|----------------+----------------+-------------------+----------------+------------+------------------------------------|
| Standard_NP20s |       0.828503 | 1 Hour            | southcentralus | NP20s Spot | Virtual Machines NP Series Windows |
| Standard_NP20s |       0.448207 | 1 Hour            | southcentralus | NP20s Spot | Virtual Machines NP Series         |
+----------------+----------------+-------------------+----------------+------------+------------------------------------+

다음 단계