Skip to content

Tencent Price Info Driver Development Guide

ByoungSeob Kim edited this page Dec 28, 2023 · 7 revisions
    * Tencent Price Info 드라이버 개발관련 이슈를 위한 가이드
    * Tencent tccli filter 옵션 활용 예시

1. OnDemand, Reserved 가격 정책 제공 방법 관련

  • GetPriceInfo()는 사용 가능한 제품들에 대한 정보 및 각 제품에 대해 선택할 수 있는 가격 정책/정보를 제공하는 API입니다.
  • 사용자가 하나의 제품을 선택할 때 가격을 고려한다고 하면, 가능한 선택 가능한 가격 정책/정보를 한번에 확인하고 싶을 것 같습니다.
  • 가이드에 안내 드렸던 바와 같이 주요 참고했던 AWS 또한 제품 정보에 대해 가능한 가격 정책/정보를 한번에 제공하고 있습니다.
  • 현재는 Reserved 가격 정책을 별도로 분리하지 않고, 통합 제공하는 형태로 진행해보는 것이 좋을듯합니다.

2. 동일한 Product 선정 기준 관련(unique product)

  • Tencent의 경우 제품 정보에 대한 Product ID를 제공하지 않음
  • Tencent는 OnDemandReserved 가격 정보가 별도의 API로 확인 필요
    • OnDemand: DescribeZoneInstanceConfigInfo()
    • Reserved: DescribeReservedInstancesConfigInfos()
  • 이러한 가격 정책 정보를 Spider가 제공하는 price info json 규격에 맞게 제품 기준으로 통합 하기 위해서는
    • 동일한 product 선정 기준이 필요함
  • Zone + InstanceType 조건으로 유일한 제품으로 구분하면 될 것 같습니다.(아래 유일성 검증 참고)
    • 예시) ap-guangzhou-6 + S5.SMALL2
  • DescribeZoneInstanceConfigInfo(), DescribeReservedInstancesConfigInfos() 또는
  • 필요시 DescribeInstanceTypeConfigs() 등을 활용한 Spider price info json 결과를 생성

====================== [참고: Zone내의 InstanceType 유일성 검증]

  • 편의상 Tencent CLI(tccli) 활용한 검증
    • 참고: API와 인자 및 filter 등이 동일함
  • Zone 내에 제공되는 제품 정보 또는 가격 정보의 유일함을 확인
  • 활용 cli 버전
$ tccli --version
3.0.1034.1

[DescribeInstanceTypeConfigs]

  • guangzhou-6 zone에서 제공하는 InstanceType 정보에서 InstanceType을 정열 후 중복으로 제공되는 InstanceType이 존재하는지 uniq 전후 갯수를 확인
  • 전후 개수가 동일하면, 유일함
  • guangzhou-6의 경우 185개의 instance type을 제공
$ tccli cvm DescribeInstanceTypeConfigs --cli-unfold-argument --region ap-guangzhou --Filters.0.Name zone --Filters.0.Values ap-guangzhou-6 |grep \"InstanceType\" |sort  |wc -l
185
$ tccli cvm DescribeInstanceTypeConfigs --cli-unfold-argument --region ap-guangzhou --Filters.0.Name zone --Filters.0.Values ap-guangzhou-6 |grep \"InstanceType\" |sort |uniq |wc -l
185

[DescribeZoneInstanceConfigInfos]

  • POSTPAID_BY_HOUR filter 추가: 현재는 일단 spot paid 정책은 제외
  • guangzhou-6의 경우 185개의 instance type 중 159개 type에 대해 OnDemand 가격 정책을 제공
$ tccli cvm DescribeZoneInstanceConfigInfos --cli-unfold-argument --region ap-guangzhou --Filters.0.Name zone --Filters.0.Values ap-guangzhou-6 --Filters.1.Name instance-charge-type --Filters.1.Values POSTPAID_BY_HOUR |grep \"InstanceType\" |sort |wc -l
159
$ tccli cvm DescribeZoneInstanceConfigInfos --cli-unfold-argument --region ap-guangzhou --Filters.0.Name zone --Filters.0.Values ap-guangzhou-6 --Filters.1.Name instance-charge-type --Filters.1.Values POSTPAID_BY_HOUR |grep \"InstanceType\" |sort |uniq |wc -l
159

[DescribeReservedInstancesConfigInfos]

  • guangzhou-6의 경우 185개의 instance type 중 52개 type에 대해 Reserved 가격 정책을 제공
$ tccli cvm DescribeReservedInstancesConfigInfos --cli-unfold-argument --region ap-guangzhou --Filters.0.Name zone --Filters.0.Values ap-guangzhou-6 |grep \"InstanceType\" |sort |wc -l
52
$ tccli cvm DescribeReservedInstancesConfigInfos --cli-unfold-argument --region ap-guangzhou --Filters.0.Name zone --Filters.0.Values ap-guangzhou-6 |grep \"InstanceType\" |sort |uniq |wc -l
52

====================== [tccli filter 옵션 활용 참고]

  • Tencent가 제공하는 API 결과 정보/구조 분석이 필요한 경우 활용
$ tccli cvm DescribeInstanceTypeConfigs --region ap-seoul --filter InstanceTypeConfigSet[*].Zone
[
    "ap-seoul-1",
    "ap-seoul-1",
    "ap-seoul-1",
    "ap-seoul-1",
    ...
]

$ tccli cvm DescribeInstanceTypeConfigs --region ap-seoul --filter 'InstanceTypeConfigSet[*].{ZoneName:Zone, InstanceFamily:InstanceFamily, InstanceType:InstanceType}'
[
    {
        "ZoneName": "ap-seoul-1",
        "InstanceFamily": "S5",
        "InstanceType": "S5.8XLARGE64"
    },
    {
        "ZoneName": "ap-seoul-1",
        "InstanceFamily": "GN7",
        "InstanceType": "GN7.10XLARGE160"
    },
    ...
]

[Ref]

Table of contents



Clone this wiki locally