Tencent Price Info Driver Development Guide - cloud-barista/cb-spider GitHub Wiki

    * Tencent Price Info ๋“œ๋ผ์ด๋ฒ„ ๊ฐœ๋ฐœ๊ด€๋ จ ์ด์Šˆ๋ฅผ ์œ„ํ•œ ๊ฐ€์ด๋“œ
    * ์ฐธ๊ณ : Tencent tccli filter ์˜ต์…˜ ํ™œ์šฉ ์˜ˆ์‹œ
    * ์ฐธ๊ณ : Tencent ProductFamily ์ œ๊ณต ๊ฐ€์ด๋“œ

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 ๊ฒฐ๊ณผ๋ฅผ ์ƒ์„ฑ

3. ProductId ์ œ๊ณต๊ด€๋ จ

  • ์ด์Šˆ: Tencent์˜ ๊ฒฝ์šฐ ์ œํ’ˆ ์ •๋ณด์— ๋Œ€ํ•œ Product ID๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š์Œ

  • ์•ˆ1) Spider์—์„œ๋„ ๊ฐ’์„ ์ œ๊ณตํ•˜์ง€ ์•Š์œผ๋ฉฐ, ๋‹ค์Œ์ฒ˜๋Ÿผ NA๋กœ ์„ค์ •

    • ์˜ˆ์‹œ)
          "productInfo": {
                          "productId": "NA",
      
  • ์•ˆ2) ์œ„ 2. ๋‚ด์šฉ์„ ์ฐธ๊ณ ํ•˜์—ฌ,

    • Spider ์‚ฌ์šฉ์ž์—๊ฒŒ Zone + InstanceType ์กฐํ•ฉ์œผ๋กœ productId๋ฅผ ์ œ๊ณต
    • ์˜ˆ์‹œ)
          "productInfo": {
                          "productId": "ap-guangzhou-6:S5.SMALL2",
      

4. Storage(data-disk) Disk Size ์ •๋ณด ๊ด€๋ จ

  • ์ด์Šˆ: Block Storage ๊ฐ€๊ฒฉ ์กฐํšŒ์‹œ Size ์ž…๋ ฅ์ด ํ•„์ˆ˜์ž„
  • ํ˜„์žฌ Spider์—์„œ ์ œ๊ณตํ•˜๋Š” Tencent DiskType ๋ฐ DiskType๋ณ„ Min/Max Size ์ •๋ณด๋Š” ๋‹ค์Œ์—์„œ ๊ด€๋ฆฌ/์ œ๊ณต๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
  • Storage(Block Storage, data-disk) DiskType๋ณ„ ๊ฐ€๊ฒฉ ์ •๋ณด๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด
    • MinSize์™€ MaxSize ๊ฐ€๊ฒฉ ์ •๋ณด๋ฅผ ํ•จ๊ป˜ ์ œ๊ณตํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ฒ€ํ† ํ•ด์ฃผ์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

    • MinSize ๊ฒฝ์šฐ

        ... ์ƒ๋žต
        PricingId: "{DiskType}:MinDiskSize" 
        Unit: "{MinSize}GB-Mo"
        ... ์ƒ๋žต
      
       ex) 
          PricingId: "CLOUD_PREMIUM:MinDiskSize"
          Unit: "10GB-Mo"
      
    • MaxSize ๊ฒฝ์šฐ

        ... ์ƒ๋žต
        PricingId: "{DiskType}:MaxDiskSize"
        Unit: "{MaxSize}GB-Mo"
        ... ์ƒ๋žต
      
       ex) 
          PricingId: "CLOUD_PREMIUM:MaxDiskSize"
          Unit: "32000GB-Mo"
      
  • ์ฐธ๊ณ : Spider price info ์ค‘ ๊ฐ€๊ฒฉ ์ •์ฑ… ๊ด€๋ จ json ๊ตฌ์กฐ
        type PricingPolicies struct {
                PricingId         string             `json:"pricingId"`
                PricingPolicy     string             `json:"pricingPolicy"`
                Unit              string             `json:"unit"`
                Currency          string             `json:"currency"`
                Price             string             `json:"price"`
                Description       string             `json:"description"`
                PricingPolicyInfo *PricingPolicyInfo `json:"pricingPolicyInfo,omitempty"`
        }
    

====================== [์ฐธ๊ณ : 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

====================== [์ฐธ๊ณ : ์ œํ’ˆ ๋ฐ ๊ฐ€๊ฒฉ ์ •๋ณด ๊ด€๋ จ ์ œ๊ณต ์ •๋ณด json ํ˜•์‹ ์˜ˆ์‹œ]

  • DescribeInstanceTypeConfigs json ์ถœ๋ ฅ ๊ฒฐ๊ณผ ์˜ˆ์‹œ

tccli cvm DescribeInstanceTypeConfigs --cli-unfold-argument --region ap-guangzhou --Filters.0.Name zone --Filters.0.Values ap-guangzhou-6 |more
{
    "InstanceTypeConfigSet": [
        {
            "Zone": "ap-guangzhou-6",
            "InstanceType": "SA2.SMALL1",
            "InstanceFamily": "SA2",
            "GPU": 0,
            "CPU": 1,
            "Memory": 1,
            "FPGA": 0,
            "GpuCount": 0.0
        },
        {
            "Zone": "ap-guangzhou-6",
            "InstanceType": "SA2.SMALL2",
            "InstanceFamily": "SA2",
            "GPU": 0,
            "CPU": 1,
            "Memory": 2,
            "FPGA": 0,
            "GpuCount": 0.0
        },
        {
            "Zone": "ap-guangzhou-6",
            "InstanceType": "S5.SMALL2",
            "InstanceFamily": "S5",
            "GPU": 0,
            "CPU": 1,
            "Memory": 2,
            "FPGA": 0,
            "GpuCount": 0.0
        },
        {
            "Zone": "ap-guangzhou-6",
            "InstanceType": "SA2.SMALL4",
            "InstanceFamily": "SA2",
            "GPU": 0,
            "CPU": 1,
            "Memory": 4,
            "FPGA": 0,
            "GpuCount": 0.0
        },
        {
            "Zone": "ap-guangzhou-6",
            "InstanceType": "S5.SMALL4",
            "InstanceFamily": "S5",
            "GPU": 0,
            "CPU": 1,
            "Memory": 4,
            "FPGA": 0,
            "GpuCount": 0.0
        },
        ...
  • DescribeZoneInstanceConfigInfos json ์ถœ๋ ฅ ๊ฒฐ๊ณผ ์˜ˆ์‹œ

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 |more
{
    "InstanceTypeQuotaSet": [
        {
            "Zone": "ap-guangzhou-6",
            "InstanceType": "S6.MEDIUM2",
            "InstanceChargeType": "POSTPAID_BY_HOUR",
            "NetworkCard": 100,
            "Externals": {
                "ReleaseAddress": null,
                "UnsupportNetworks": [
                    "BASIC",
                    "VPC1.0"
                ],
                "StorageBlockAttr": null
            },
            "Cpu": 2,
            "Memory": 2,
            "InstanceFamily": "S6",
            "TypeName": "ๆ ‡ๅ‡†ๅž‹S6",
            "LocalDiskTypeList": [],
            "Status": "SELL",
            "Price": {
                "UnitPrice": 0.04,
                "ChargeUnit": "HOUR",
                "OriginalPrice": null,
                "DiscountPrice": null,
                "Discount": 100,
                "UnitPriceDiscount": 0.04,
                "UnitPriceSecondStep": 0.04,
                "UnitPriceDiscountSecondStep": 0.04,
                "UnitPriceThirdStep": 0.04,
                "UnitPriceDiscountThirdStep": 0.04,
                "OriginalPriceThreeYear": null,
                "DiscountPriceThreeYear": null,
                "DiscountThreeYear": null,
                "OriginalPriceFiveYear": null,
                "DiscountPriceFiveYear": null,
                "DiscountFiveYear": null,
                "OriginalPriceOneYear": null,
                "DiscountPriceOneYear": null,
                "DiscountOneYear": null
            },
            "SoldOutReason": "",
            "InstanceBandwidth": 2.0,
            "InstancePps": 30,
            "StorageBlockAmount": 0,
            "CpuType": "Intel Ice Lake",
            "Gpu": 0,
            "Fpga": 0,
            "Remark": "",
            "GpuCount": 0.0,
            "Frequency": "2.7GHz/3.3GHz",
            "StatusCategory": "NormalStock"
        },
        {
            "Zone": "ap-guangzhou-6",
            "InstanceType": "S6.MEDIUM4",
            "InstanceChargeType": "POSTPAID_BY_HOUR",
            "NetworkCard": 100,
            "Externals": {
                "ReleaseAddress": null,
                "UnsupportNetworks": [
                    "BASIC",
                    "VPC1.0"
                ],
                "StorageBlockAttr": null
            },
            "Cpu": 2,
            "Memory": 4,
            "InstanceFamily": "S6",
            "TypeName": "ๆ ‡ๅ‡†ๅž‹S6",
            "LocalDiskTypeList": [],
            "Status": "SELL",
            "Price": {
                "UnitPrice": 0.06,
                "ChargeUnit": "HOUR",
                "OriginalPrice": null,
                "DiscountPrice": null,
                "Discount": 100,
                "UnitPriceDiscount": 0.06,
                "UnitPriceSecondStep": 0.06,
                "UnitPriceDiscountSecondStep": 0.06,
                "UnitPriceThirdStep": 0.06,
                "UnitPriceDiscountThirdStep": 0.06,
                "OriginalPriceThreeYear": null,
                "DiscountPriceThreeYear": null,
                "DiscountThreeYear": null,
                "OriginalPriceFiveYear": null,
                "DiscountPriceFiveYear": null,
                "DiscountFiveYear": null,
                "OriginalPriceOneYear": null,
                "DiscountPriceOneYear": null,
                "DiscountOneYear": null
            },
            "SoldOutReason": "",
            "InstanceBandwidth": 2.0,
            "InstancePps": 30,
            "StorageBlockAmount": 0,
            "CpuType": "Intel Ice Lake",
            "Gpu": 0,
            "Fpga": 0,
            "Remark": "",
            "GpuCount": 0.0,
            "Frequency": "2.7GHz/3.3GHz",
            "StatusCategory": "NormalStock"
        },
        {
            "Zone": "ap-guangzhou-6",
            "InstanceType": "S6.MEDIUM8",
            "InstanceChargeType": "POSTPAID_BY_HOUR",
            "NetworkCard": 100,
            "Externals": {
                "ReleaseAddress": null,
                "UnsupportNetworks": [
                    "BASIC",
                    "VPC1.0"
                ],
                "StorageBlockAttr": null
            },
            "Cpu": 2,
            "Memory": 8,
            "InstanceFamily": "S6",
            "TypeName": "ๆ ‡ๅ‡†ๅž‹S6",
            "LocalDiskTypeList": [],
            "Status": "SELL",
            "Price": {
                "UnitPrice": 0.08,
                "ChargeUnit": "HOUR",
                "OriginalPrice": null,
                "DiscountPrice": null,
                "Discount": 100,
                "UnitPriceDiscount": 0.08,
                "UnitPriceSecondStep": 0.08,
                "UnitPriceDiscountSecondStep": 0.08,
                "UnitPriceThirdStep": 0.08,
                "UnitPriceDiscountThirdStep": 0.08,
                "OriginalPriceThreeYear": null,
                "DiscountPriceThreeYear": null,
                "DiscountThreeYear": null,
                "OriginalPriceFiveYear": null,
                "DiscountPriceFiveYear": null,
                "DiscountFiveYear": null,
                "OriginalPriceOneYear": null,
                "DiscountPriceOneYear": null,
                "DiscountOneYear": null
            },
            "SoldOutReason": "",
            "InstanceBandwidth": 2.0,
            "InstancePps": 30,
            "StorageBlockAmount": 0,
            "CpuType": "Intel Ice Lake",
            "Gpu": 0,
            "Fpga": 0,
            "Remark": "",
            "GpuCount": 0.0,
            "Frequency": "2.7GHz/3.3GHz",
            "StatusCategory": "NormalStock"
        },
  • DescribeReservedInstancesConfigInfos json ์ถœ๋ ฅ ๊ฒฐ๊ณผ ์˜ˆ์‹œ

tccli cvm DescribeReservedInstancesConfigInfos --cli-unfold-argument --region ap-guangzhou --Filters.0.Name zone --Filters.0.Values ap-guangzhou-6 |more
{
    "ReservedInstanceConfigInfos": [
        {
            "Type": "S",
            "TypeName": "ๆ ‡ๅ‡†ๅž‹",
            "Order": 100,
            "InstanceFamilies": [
                {
                    "InstanceFamily": "S5",
                    "Order": 88,
                    "InstanceTypes": [
                        {
                            "InstanceType": "S5.SMALL2",
                            "Cpu": 1,
                            "Memory": 2,
                            "Gpu": 0,
                            "Fpga": 0,
                            "StorageBlock": 0,
                            "NetworkCard": 25,
                            "MaxBandwidth": 1.5,
                            "Frequency": "2.5GHz/3.1GHz",
                            "CpuModelName": "Intel Xeon Cascade Lake 8255C/Intel Xeon Cooper Lake",
                            "Pps": 25,
                            "Externals": {
                                "ReleaseAddress": null,
                                "UnsupportNetworks": [
                                    "BASIC",
                                    "VPC1.0"
                                ],
                                "StorageBlockAttr": null
                            },
                            "Remark": "",
                            "Prices": [
                                {
                                    "OfferingType": "All Upfront",
                                    "FixedPrice": 58.0,
                                    "UsagePrice": 0.0,
                                    "ReservedInstancesOfferingId": "ca8d39c3-4605-4e8d-9a21-05188cc9d1d4",
                                    "Zone": "ๅนฟๅทžๅ…ญๅŒบ",
                                    "Duration": 31536000,
                                    "ProductDescription": "linux"
                                },
                                {
                                    "OfferingType": "Partial Upfront",
                                    "FixedPrice": 30.0,
                                    "UsagePrice": 0.003,
                                    "ReservedInstancesOfferingId": "17d28d85-4338-47c3-bd5e-ac5d2fc8a6fc",
                                    "Zone": "ๅนฟๅทžๅ…ญๅŒบ",
                                    "Duration": 31536000,
                                    "ProductDescription": "linux"
                                },
                                {
                                    "OfferingType": "No Upfront",
                                    "FixedPrice": 0.0,
                                    "UsagePrice": 0.008,
                                    "ReservedInstancesOfferingId": "501f0a1e-1a34-4a95-bcdf-c46f5af67695",
                                    "Zone": "ๅนฟๅทžๅ…ญๅŒบ",
                                    "Duration": 31536000,
                                    "ProductDescription": "linux"
                                }
                            ]
                        },
                        {
                            "InstanceType": "S5.SMALL4",
                            "Cpu": 1,
                            "Memory": 4,
                            "Gpu": 0,
                            "Fpga": 0,
                            "StorageBlock": 0,
                            "NetworkCard": 25,
                            "MaxBandwidth": 1.5,
                            "Frequency": "2.5GHz/3.1GHz",
                            "CpuModelName": "Intel Xeon Cascade Lake 8255C/Intel Xeon Cooper Lake",
                            "Pps": 25,
                            "Externals": {
                                "ReleaseAddress": null,
                                "UnsupportNetworks": [
                                    "BASIC",
                                    "VPC1.0"
                                ],
                                "StorageBlockAttr": null
                            },
                            "Remark": "",
                            "Prices": [
                                {
                                    "OfferingType": "All Upfront",
                                    "FixedPrice": 179.0,
                                    "UsagePrice": 0.0,
                                    "ReservedInstancesOfferingId": "98b1abd2-b201-4ad0-be60-9b59e7a09202",
                                    "Zone": "ๅนฟๅทžๅ…ญๅŒบ",
                                    "Duration": 31536000,
                                    "ProductDescription": "linux"
                                },
                                {
                                    "OfferingType": "Partial Upfront",
                                    "FixedPrice": 90.0,
                                    "UsagePrice": 0.01,
                                    "ReservedInstancesOfferingId": "a4b37e89-30c6-41ee-a3d8-5a2774690a80",
                                    "Zone": "ๅนฟๅทžๅ…ญๅŒบ",
                                    "Duration": 31536000,
                                    "ProductDescription": "linux"
                                },
                                {
                                    "OfferingType": "No Upfront",
                                    "FixedPrice": 0.0,
                                    "UsagePrice": 0.024,
                                    "ReservedInstancesOfferingId": "338c7a11-706c-48f5-95a0-4caf39005a83",
                                    "Zone": "ๅนฟๅทžๅ…ญๅŒบ",
                                    "Duration": 31536000,
                                    "ProductDescription": "linux"
                                }
                            ]
                        },
                        {
                            "InstanceType": "S5.MEDIUM4",
                            "Cpu": 2,
                            "Memory": 4,
                            "Gpu": 0,
                            "Fpga": 0,
                            "StorageBlock": 0,
                            "NetworkCard": 25,
                            "MaxBandwidth": 1.5,
                            "Frequency": "2.5GHz/3.1GHz",
                            "CpuModelName": "Intel Xeon Cascade Lake 8255C/Intel Xeon Cooper Lake",
                            "Pps": 30,
                            "Externals": {
                                "ReleaseAddress": null,
                                "UnsupportNetworks": [
                                    "BASIC",
                                    "VPC1.0"
                                ],
                                "StorageBlockAttr": null
                            },
                            "Remark": "",
                            "Prices": [
                                {
                                    "OfferingType": "All Upfront",
                                    "FixedPrice": 219.0,
                                    "UsagePrice": 0.0,
                                    "ReservedInstancesOfferingId": "dc0c3401-7bf0-4782-be0b-31eb48a48d4c",
                                    "Zone": "ๅนฟๅทžๅ…ญๅŒบ",
                                    "Duration": 31536000,
                                    "ProductDescription": "linux"
                                },
                                {
                                    "OfferingType": "Partial Upfront",
                                    "FixedPrice": 112.0,
                                    "UsagePrice": 0.013,
                                    "ReservedInstancesOfferingId": "851ecd86-235e-4e86-8c4d-2628c823275e",
                                    "Zone": "ๅนฟๅทžๅ…ญๅŒบ",
                                    "Duration": 31536000,
                                    "ProductDescription": "linux"
                                },
                                {
                                    "OfferingType": "No Upfront",
                                    "FixedPrice": 0.0,
                                    "UsagePrice": 0.029,
                                    "ReservedInstancesOfferingId": "8a6f626f-3e56-4c0d-87c8-af333808df72",
                                    "Zone": "ๅนฟๅทžๅ…ญๅŒบ",
                                    "Duration": 31536000,
                                    "ProductDescription": "linux"
                                }
                            ]
                        },

====================== [์ฐธ๊ณ : 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]


์ฐธ๊ณ : ProductFamily ์ œ๊ณต ๊ฐ€์ด๋“œ

  • image
  • image