공개적으로 사용 가능한 Google Cloud 가격 책정 정보 가져오기

이 페이지에서는 다음과 같은 Cloud Billing Catalog API 사용 방법을 보여줍니다.

  • 각 서비스의 관련 메타데이터를 포함한 모든 공개 서비스의 목록을 가져옵니다.
  • 다음을 포함한 서비스의 모든 공개 SKU의 목록을 가져옵니다.
    • 사람이 읽을 수 있는 SKU 설명
    • SKU 공개 가격
    • SKU를 구매할 수 있는 지역
    • SKU 카테고리 지정 데이터

커스텀 계약 가격이 있는 경우 Pricing API를 사용하여 Cloud Billing 계정에 적용할 수 있는 가격을 가져올 수 있습니다.

시작하기 전에

Cloud Billing API 사용 설정

API 사용 설정

Cloud Billing Catalog API를 호출하려면 API 키가 필요합니다. API 키에 관한 자세한 내용은 API 키 사용에서 확인할 수 있습니다.

카탈로그의 공개 서비스 나열

이 단계에서는 각 서비스의 관련 메타데이터를 포함한 모든 공개 서비스의 목록을 가져옵니다.

다음 코드 스니펫은 카탈로그의 모든 공개 서비스를 나열합니다.

요청:

GET https://cloudbilling.googleapis.com/v1/services?key=<var>API_KEY</var>

응답:

{
  "services": [
    {
      "name": "[SERVICE_NAME]",
      "serviceId": "[SERVICE_ID]",
      "displayName": "[DISPLAY_NAME]",
    },
    [...]
  ],
  "nextPageToken": "[NEXT_PAGE_TOKEN]"
}

각 항목의 의미는 다음과 같습니다.

  • [SERVICE_NAME]은 서비스의 리소스 이름입니다.
  • [SERVICE_ID]는 서비스의 식별자입니다.
  • [DISPLAY_NAME]은 사람이 읽을 수 있는 서비스의 표시 이름입니다.

결과는 페이지로 나누기되며 페이지당 SKU 5,000개로 제한됩니다. 응답에는 다음 5,000개의 결과를 가져오는 데 사용할 수 있는 nextPageToken이 포함됩니다. 다음 배치를 가져오려면 pageToken=[NEXT_PAGE_TOKEN]을 설정합니다. 페이지당 SKU 수를 줄이려면 pageSize=[CUSTOM_PAGE_SIZE]를 설정합니다. 모든 항목이 나열된 경우 토큰이 반환되지 않습니다.

서비스의 SKU 목록 가져오기

다음 코드는 지정한 서비스의 카탈로그에 있는 SKU를 나열합니다.

요청:

GET https://cloudbilling.googleapis.com/v1/services/SERVICE_ID/skus?key=<var>API_KEY</var>

각 항목의 의미는 다음과 같습니다.

  • SERVICE_ID는 상위 서비스의 식별자입니다.

응답:

{
  "skus": [
    {
        "name": "[SKU_NAME]",
        "skuId": "[SKU_ID]",
        "description": "[SKU_DESCRIPTION]",
        "category": {
            "serviceDisplayName": "[SVC_DISPLAY_NAME]",
            "resourceFamily": "[FAMILY]",
            "resourceGroup": "[GROUP]",
            "usageType": "[USAGE]",
        },
        "serviceRegions": [
          "[REGION]"
        ],
        "pricingInfo": [
          {
              "effectiveTime": "[TIME]",
              "summary": "[SUMMARY]",
              "pricingExpression": {
                  "usageUnit": "[USAGE_UNIT]",
                  "usageUnitDescription": "[USAGE_UNIT_DESCRIPTION]",
                  "baseUnit": "[BASE_UNIT]",
                  "baseUnitDescription": "[BASE_UNIT_DESCRIPTION]",
                  "baseUnitConversionFactor": [BASE_CONVERSION_FACTOR],
                  "displayQuantity": [DISPLAY_QUANTITY],
                  "tieredRates": [
                    {
                        "startUsageAmount": [START_AMOUNT],
                        "unitPrice": {
                            "currencyCode": "[CURRENCY_CODE]",
                            "units": [UNITS],
                            "nanos": [NANOS],
                        },
                    }
                  ],
              },
              "aggregationInfo": {
                  "aggregationLevel": enum("[AGGREGATION_LEVEL]"),
                  "aggregationInterval": enum("[AGGREGATION_INTERVAL]"),
                  "aggregationCount": [AGGREGATION_COUNT],
              },
              "currencyConversionRate": [CONVERSION_RATE],
          }
        ],
        "serviceProviderName": "[SERVICE_PROVIDER]",
        "geoTaxonomy": {
          "type": "[TAXONOMY_TYPE]",
          "regions": [
          "[REGION]"
        ]
      }
    }
  ],
  "nextPageToken": "[NEXT_PAGE_TOKEN]"
}

각 항목의 의미는 다음과 같습니다.

  • [SKU_NAME]services/{SERVICE_ID}/skus/{SKU_ID} 형식의 SKU 리소스 이름입니다.
  • [SKU_ID]는 SKU의 고유 식별자입니다.
  • [SKU_DESCRIPTION]은 사람이 읽을 수 있는 SKU의 설명입니다.
  • [SVC_DISPLAY_NAME]은 SKU가 속한 서비스의 표시 이름입니다.
  • [FAMILY]는 SKU가 참조하는 제품 유형입니다. 예: '컴퓨팅'. '스토리지', 네트워크' 등
  • [GROUP]은 관련 SKU의 그룹 분류입니다. 예: 'RAM', 'GPU', '예측' 등
  • [USAGE]는 SKU의 소모량을 나타냅니다. 예: 'OnDemand', 'Preemptible', 'Commit1Mo', 'Commit1Yr' 등
  • [REGION]은 SKU가 제공되는 서비스 지역 목록입니다. 예: 'asia-east1'
  • [TIME]2014-10-02T15:01:23.045123456Z 형식으로 표시되는 타임스탬프로서 가격 책정이 적용된 시간을 나타냅니다.
  • [SUMMARY]는 사람이 읽을 수 있는 가격 정보 요약입니다.
  • [USAGE_UNIT]은 가격이 지정된 사용량 단위의 약칭입니다. 예를 들어 usageUnit에 'GiBy'를 입력하면 사용량이 'GiB(기비바이트)' 단위로 지정됨을 의미합니다.
  • [USAGE_UNIT_DESCRIPTION]은 사람이 읽을 수 있는 사용량 단위입니다(예시: 'GiB').
  • [BASE_UNIT]은 SKU의 기본 단위이며 사용량 내보내기에 사용되는 단위입니다. 예를 들어 "By" baseUnit은 사용량이 "바이트"로 지정되었음을 의미합니다.
  • [BASE_UNIT_DESCRIPTION]은 인간이 읽을 수 있는 형식의 기본 단위입니다. 예를 들면 "바이트"입니다.
  • [BASE_CONVERSION_FACTOR]는 usage_unit당 가격을 base_unit당 가격으로 변환하고 start_usage 금액을 base_unit의 start_usage_amount로 변환하는 변환 계수입니다. 예를 들면 start_usage_amount * base_unit_convert_factor = start_usage_amount in base_unit입다.
  • [DISPLAY_QUANTITY]는 가격 책정 정보를 표시할 때 권장되는 수량 단위입니다. 가격 책정 정보를 표시할 때는 (unitPrice * displayQuantity) per displayQuantity usageUnit을 표시하는 것이 좋습니다. 이 입력란은 가격 수식에 영향을 미치지 않으며 표시 목적으로만 사용됩니다. 예를 들어 unitPrice가 '0.0001 USD'면 usageUnit은 'GB'이며 displayQuantity는 '1000'입니다. 따라서 가격 책정 정보를 표시할 때 권장되는 방식은 '1000GB당 0.10 USD'가 됩니다.
  • [START_AMOUNT] 이 금액이 사용된 후 비로소 요율에 따라 사용량의 가격이 책정됩니다. 예를 들어 startUsageAmount 10은 처음 10개 usage_units 이후부터 아래 정의된 가격으로 사용량에 가격이 책정된다는 뜻입니다.
  • [CURRENCY_CODE]는 ISO 4217에 따라 정의된 3자리 통화 코드입니다.
  • [UNITS]는 전체 금액 단위입니다. 예: currencyCode가 'USD'인 경우 단위 1개는 1달러(USD)입니다.
  • [NANOS]는 금액의 나노(10^-9) 단위 번호입니다. 이 값은 -999,999,999 ~ +999,999,999(포함) 사이여야 합니다. 단위가 양수라면 나노가 양수 또는 0이어야 합니다. 단위가 0인 경우에는 나노가 양수, 0 또는 음수가 될 수 있습니다. 음수 단위일 때는 나노가 음수 또는 0이어야 합니다.

SKU 비용은 units + nanos입니다. 예를 들어 $1.75 비용은 units=1nanos=750,000,000으로 나타냅니다.

  • [AGGREGATION_LEVEL]은 비용 계산을 위해 사용량을 집계하는 수준입니다. 유효한 값은 ACCOUNT, PROJECT, AGGREGATION_LEVEL_UNSPECIFIED입니다.
  • [AGGREGATION_INTERVAL]은 비용 계산을 위해 사용량을 집계하는 간격입니다. 유효한 값은 DAILY, MONTHLY, AGGREGATION_INTERVAL_UNSPECIFIED입니다.
  • [AGGREGATION_COUNT]는 집계하는 간격의 수입니다. 예를 들어 aggregationLevel이 'DAILY'이고 aggregationCount가 14라면 14일 동안 집계됩니다.
  • [CONVERSION_RATE]는 USD에서 요청에 지정된 통화로 전환될 때 적용되는 통화 전환율입니다. 통화가 지정되지 않은 경우 기본값은 1.0입니다.
  • [SERVICE_PROVIDER]는 서비스 제공업체를 식별합니다. Google Cloud Platform의 자사 서비스에는 'Google'이 사용됩니다.
  • [TAXONOMY_TYPE]은 SKU의 지리적 분류 유형입니다(GLOBAL, REGIONAL, MULTI_REGIONAL).
  • [REGION]은 SKU와 연결된 리전 목록입니다. 이 필드는 모든 Google Cloud 리전과 연결되어 있으므로 전역 SKU에 대해 비어 있습니다.

결과는 페이지로 나누기되며 페이지당 SKU 5,000개로 제한됩니다. 응답에는 다음 5,000개의 결과를 가져오는 데 사용할 수 있는 nextPageToken이 포함됩니다. 다음 배치를 가져오려면 pageToken=[NEXT_PAGE_TOKEN]을 설정합니다. 페이지당 SKU 수를 줄이려면 pageSize=[CUSTOM_PAGE_SIZE]를 설정합니다. 모든 항목이 나열된 경우 토큰이 반환되지 않습니다.

가격 책정 및 SKU 정보는 가격 책정 표 보고서 또는 BigQuery로 Cloud Billing 가격 책정 내보내기에서도 확인할 수 있습니다.