-
Notifications
You must be signed in to change notification settings - Fork 50
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는
OnDemand와Reserved가격 정보가 별도의 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-6zone에서 제공하는 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_HOURfilter 추가: 현재는 일단 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]
- DescribeInstanceTypeConfigs: https://www.tencentcloud.com/document/product/213/33260?lang=en
- DescribeZoneInstanceConfigInfos: https://www.tencentcloud.com/document/product/213/33254?lang=en
- DescribeReservedInstancesConfigInfos: https://www.tencentcloud.com/document/product/213/38309?lang=en
- TCCLI-Using Advanced Features: https://www.tencentcloud.com/document/product/1013/33467
-
Install & Start Guide
-
Features & Usage
-
- AdminWeb Tool Guide
- CLI Tool Guide
- REST API Guide
- NLI Guide
-
Design
-
Developer Guide
-
Cloud Driver Developer Guide
- Cloud Driver Developer Guide-WIP
- VM SSH Key Development Guide-WIP
- VM User Development Guide
- What is the CSP SDK API Version of drivers
- Region Zone Info and Driver API
- (StartVM TerminateVM) API Call Counts and Waiting
- StartVM and TerminateVM Main Flow of drivers
- VM Root Disk Configuration Guide
- Security Group Rules and Driver API
- Network Load Balancer and Driver API
- VM Snapshot, MyImage and Disk Overview
- Kubernetes and Driver API(PMKS, K8S)
- Tag and Cloud Driver API
- AnyCall API Extension Guide
-
Test Reports
- v0.2.8-for-espresso-release
- v0.3.0-espresso-release
- Azure:Terminating VM
- cb-user@VM: ssh login, sudo run
- v0.3.14 test for SG Source
- v0.4.0-cafemocha-release
- Test via REST API Gateway
- Test Reports of v0.4.11 (IID2 initial Version)
- Test Reports of v0.4.12 (Register & Unregister existing Resources)
- Test Reports for v0.6.0 Release
- How to ...
- How to Use AWS S3 with Credentials
- How to Use Alibaba ECS i1.* Instance Types
- How to provision GPU VMs
- How to Resolve the 'Failed to Connect to Database' Error
- How to test CB Spider with Mock Driver
- How to install CB Spider on WSL2 under 공유기/사설망
- How to install CB Spider on macOS
- How to run CB Spider Container on macOS
- How to install OpenStack on a VM for CB Spider Testing
- How to get Azure available Regions
- How to profile memory usage in Golang
- Deprecated:How to install protoc and plugins
- [For Cloud-Migrator]