GCP Price Info Driver Development Guide - cloud-barista/cb-spider GitHub Wiki
* GCP Price Info ๋๋ผ์ด๋ฒ ๊ฐ๋ฐ๊ด๋ จ ์ด์ ๋ฐ ์ถ์ง ํํฉ
- ์ ์๊ณผ๋ชฉ: Price Info and Cloud Driver API
[์ด์]
- GetPriceInfo() ์ ๊ณต ํ์์ ์ํ ์ ํฉํ API ๋ถ์ฌ
- 1๊ฐ ์ด์์ API ์กฐํฉ์ผ๋ก ์์ฑ/๋ณํ์ผ๋ก ๊ฐ๋ฅํ์ง๋ง,
- (์ด์-1) ๋ฒ ํ ๋ฒ์ API ํ์ฉ์ผ๋ก ์ถํ ์ ์ฌ์ ์ด์ ๋ฐ์ ๊ฐ๋ฅ
- (์ด์-2) CSP API์ ๊ณผํ ํธ์ถ ํ์ => Call Limit ๋ฐ์ => worst elapsed time (์ต์ 18๋ถ)
- ์ธ๋ถ ๋ด์ฉ: ๋ค์ MSG ์ฐธ๊ณ
[๋ค์ ๋ฐฉ์์ผ๋ก ์ถ์ง] 2024.01.10 ์ดํ
-
1์) ๋๊ธฐ์ค, best, ๊ตฌ๊ธ ์๋ต ์์กด์
-
3์) ์ถ์ง์ค, Call Limit/์์์๊ฐ ์ด์ ์กด์ฌ
- ๊ตฌ๊ธ ์๋ต ๊ฒฐ๊ณผ์ ๋ฐ๋ผ 1์)์ผ๋ก ์ ํ ๊ฐ๋ฅ์ฑ ์์
-
์ฐธ๊ณ : 1์)/2์) ์ธ๋ถ ์ค๋ช
[์ดํ ๋ด์ฉ์ GCP ๊ฐ๊ฒฉ ์ ๋ณด ์ ๊ณต ๊ด๋ จ ์ฐธ๊ณ ์ฉ์ผ๋ก ํ์ฉ] 2024.01.10 ์ด์
1. GCP ๊ฐ๊ฒฉ ์ ๋ณด ์ ๊ณต ๋ฐฉ๋ฒ ๊ด๋ จ (Compute Engine ์ค์ฌ)
- ๋ ๋ง์ ๋ฐฉ๋ฒ์ ์ ๊ณตํ ์ ์์ง๋ง, Spider ๊ฐ๊ฒฉ์ ๋ณด ์ ๊ณต๊ณผ ๊ด๋ จ ์๋ 3๊ฐ์ง ๋ฐฉ๋ฒ์ผ๋ก ์ ๋ฆฌ
- (1) SKU ๊ธฐ๋ฐ ๊ฐ๊ฒฉ ์ ๋ณด ์ ๊ณต ๋ฐฉ๋ฒ
- (2) Cost Estimation, Cost Calculator๋ฅผ ํ์ฉํ ๊ฐ๊ฒฉ ์ ๋ณด ์ ๊ณต ๋ฐฉ๋ฒ
- (3) ์ธ์คํด์ค ํ์ (๋จธ์ ํ์ ) ์ค์ฌ ๊ฐ๊ฒฉ ์ ๋ณด ์ ๊ณต ๋ฐฉ๋ฒ
- โป (1), (2), (3) ๊ฐ๋ณ ๋ฐฉ๋ฒ์ผ๋ก๋ Spider GetPriceInfo() ํ์ ์ ๊ณต ์ด๋ ค์
- (1) ๋ฐฉ๋ฒ: ํ CSP์ ๋ฌ๋ฆฌ SKU ์ ํ ์ ๋ณด์ ์ธ์คํด์ค ๊ด๋ จ ์ ๋ณด๊ฐ ๋ถ์กฑ
- (2) ๋ฐฉ๋ฒ: ์ฌ์ฉํ ์์/์๋น์ค ๋จ์ ์ ๋ ฅ์ ํตํ ์์ ๊ฐ๊ฒฉ์ ์ ๊ณต => ํ์ํ ๋ชจ๋ ์์/์๋น์ค์ ๋ํ ์ ๋ ฅ ํ์, Call Limit ์ด์ ๋ฑ
- (3) ๋ฐฉ๋ฒ: Cached ์ ๋ณด ๋๋ Web Page ํํ๋ก ์ ๊ณต => old ๊ฐ๊ฒฉ ์ ๋ณด ๋๋ html ํ์ฑ์ด ํ์ => ์ ์ง๋ณด์ ์ด์ ๋ฑ ๋ฆฌ์คํฌ ์กด์ฌ
- ๊ด๋ จ ํํฉ
- SKU ID์ ๊ด๋ จ๋ Instance type์ ์ป๊ณ ์ ํ๋๋ฐ, ์ป๊ธฐ ํ๋ค ๋ค๋ ์ด์ (๊ทผ๋์๋ ๋ฆฌํ์ด ๋ฌ๋ฆฌ๊ณ ์์)
- [์ฐธ๊ณ : SKU & Cloud SKU]
2. (1) SKU ๊ธฐ๋ฐ ๊ฐ๊ฒฉ ์ ๋ณด ์ ๊ณต ํํฉ
- API/CLI ๋ฑ์ ํตํด์ ์ ์ฒด ์ ํ/์๋น์ค๋ณ ๊ฐ๊ฒฉ ์ ์ฑ ์ ์์ธํ๊ฒ ์ ๊ณต
- ๋ค๋ง, VM ์ธ์คํด์ค ํ์ (๋จธ์ ํ์ ) ์ ๋ณด๊ฐ Spider์์ ์ ๊ณตํ๋ ์์ค์ ์ ๋ณด๊ฐ ํฌํจ๋์ด ์์ง ์์
- SKU ๊ธฐ๋ฐ ๊ฐ๊ฒฉ ์ ๋ณด์ ํฌํจ๋ ์ธ์คํด์ค ํ์
์ ๋ณด๋
resourceGroup
๋ฐdescription
๋ฑ์ ์ฝํ๊ฒ ํฌํจ - ์ฌ์ค, GCP์ ๊ฒฝ์ฐ ์ธ์คํด์ค ํ์
์ ์ฌ์ฉ์๊ฐ ์์ฑํ ์ ์๊ธฐ ๋๋ฌธ์ SKU ์
์ฅ์์๋ ์ฌ์ ์ ์๋ ์ธ์คํด์ค ํ์
์ ์ค์๋๊ฐ ํฌ์ง ์๋ ๋ฏํจ
- ๋์ , ์ธ์คํด์ค ํ์ ๊ทธ๋ฃน(N1Standard ๋ฑ)์ CPU, Mem ๊ธฐ์ค ๊ฐ๊ฒฉ์ ์ ์ํ๊ณ ์์
- ๊ฐ๋ณ ์ธ์คํด์ค ํ์ (n1-standard-16 )์ ๋ํ ๊ฐ๊ฒฉ์ ๊ณ์ฐ์ผ๋ก ์ป์ ์ ์์
[์ฌ์ ์ค๋น]
- API Key ์์ฑ: Web Console => API ๋ฐ ์๋น์ค => ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด => + ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด ๋ง๋ค๊ธฐ => API Key
- Cloud Billing API Enable ๋ฐฉ๋ฒ ์์
- ๋ค์ ๋งํฌ ์คํ(project ์ด๋ฆ ๋ณ๊ฒฝ ํ์) ํ Enable ์ค์
- https://console.cloud.google.com/apis/library/cloudbilling.googleapis.com?project=powerkimhub
[ํ์ฉ ์์ ๋ฐ ์ ๊ณต ์ ๋ณด]
- service ๋ชฉ๋ก(serviceId ํฌํจ) (๊ด๋ จ API: https://cloud.google.com/billing/docs/reference/rest/v1/services )
$ curl https://cloudbilling.googleapis.com/v1/services?key={your API KEY} # ํ๋ฒ์ ์ ๋ถ ์ ๊ณต
{
"services": [
{
"name": "services/0017-8C5E-5B91",
"serviceId": "0017-8C5E-5B91",
"displayName": "OpenLogic CentOS 7.8 (v20200922) - Security Hardened",
"businessEntityName": "businessEntities/GCP"
},
...
- Compute Engine ๊ฐ๊ฒฉ ๋ชฉ๋ก(skus-based) (๊ด๋ จ API: https://cloud.google.com/billing/docs/reference/rest/v1/services.skus/list )
- Compute engine์ ๊ฒฝ์ฐ serviceId: 6F81-5844-456A
$ curl https://cloudbilling.googleapis.com/v1/services/6F81-5844-456A/skus?key={your API KEY} # Next Page 3๋ฒ ์ ๋ Call ํด์ผ ํจ(https://...&pageToken=xxx)
{
"skus": [
{
"name": "services/6F81-5844-456A/skus/0006-C9C8-BB6F",
"skuId": "0006-C9C8-BB6F",
"description": "Commitment v1: Memory-optimized Cpu in Phoenix for 1 Year",
"category": {
"serviceDisplayName": "Compute Engine",
"resourceFamily": "Compute",
"resourceGroup": "CPU",
"usageType": "Commit1Yr"
},
"serviceRegions": [
"us-west8"
],
"pricingInfo": [
{
"summary": "",
"pricingExpression": {
"usageUnit": "h",
"displayQuantity": 1,
"tieredRates": [
{
"startUsageAmount": 0,
"unitPrice": {
"currencyCode": "USD",
"units": "0",
"nanos": 20550000
}
}
],
"usageUnitDescription": "hour",
"baseUnit": "s",
"baseUnitDescription": "second",
"baseUnitConversionFactor": 3600
},
"currencyConversionRate": 1,
"effectiveTime": "2024-01-08T08:49:30.488759Z"
}
],
"serviceProviderName": "Google",
"geoTaxonomy": {
"type": "REGIONAL",
"regions": [
"us-west8"
]
}
},
...
3. (2) Cost Estimation, Cost Calculator๋ฅผ ํ์ฉํ ๊ฐ๊ฒฉ ์ ๋ณด ์ ๊ณต ๋ฐฉ๋ฒ
- ์๋ต: Call Limit ์ด์ ๋ฑ์ผ๋ก ์ฌ์ฉํ์ง ์์ ๊ฒ์ด๋ฏ๋ก
4. (3) ์ธ์คํด์ค ํ์ (๋จธ์ ํ์ ) ์ค์ฌ ๊ฐ๊ฒฉ ์ ๋ณด ์ ๊ณต ํํฉ
- GCP Web: html ํ์ฑ ๋ฐ ์ ์ง๋ฑ ๋ฆฌ์คํฌ๊ฐ ์์
- ํ์ฉํ์ง๋ ์์ ๊ฒ์ด์ง๋ง, ์ธ์คํด์ค ํ์ ์ข ๋ฅ ๋ฐ ๊ฐ๊ฒฉ ์ ๋ณด ์ ๊ณต ๊ธฐ์ค/๊ฒ์ฆ ๋ฑ์ ํ์ฉ
- Cached json file ๋ฐ GCP Web ๋ฑ์ ํตํด์ VM ์ธ์คํด์ค ์ค์ฌ์ ๊ฐ๊ฒฉ ์ ์ฑ
์ ์ ๊ณต
- Cached json file: ํ์ฌ ์ค๊ธฐ๊ฐ ๊ฐ๊ฒฉ ์ ๊ณต์ด ์ด๋ ค์,
[ํ์ฉ ์์ ๋ฐ ์ ๊ณต ์ ๋ณด]
-
VM ์ธ์คํด์ค ํ์ (๋จธ์ ํ์ ) ์ ๊ณต ์น ํ์ด์ง
https://cloud.google.com/compute/docs/machine-resource?hl=ko#standard_machine_types
-
VM ์ธ์คํด์ค ๊ฐ๊ฒฉ ์ฑ ์ ์ ๊ณต ์นํ์ด์ง
- ๋๋ผ์ด๋ฒ ๊ฐ๋ฐ์
Compute Engine
๋จธ์ ์ ํ๋ณ ๊ฐ๊ฒฉ ์ ๋ณด ๊ฒ์ฆ ๋ฑ์ผ๋ก ์ฐธ๊ณ
https://cloud.google.com/compute/vm-instance-pricing?hl=ko
- ๋๋ผ์ด๋ฒ ๊ฐ๋ฐ์
-
Cached json file
-
์ฒซ์ค comment๋ฅผ ์ ๋ด์ผ ํจ: update ๋๊ธฐ ์ ์ฌ์ด์ ๊ฐ๊ฒฉ์ ํ๋ฆด ์ ์์
- ๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ , ๊ณ์ ์ ๋ฐ์ดํธํ๋ฉด์ ์ ์ง ๋๋ ๊ฒ์ ๋ด๋ถ์์ ๋๋ ํน์ ๊ทธ๋ฃน์์ ๊ณ์ ํ์ฉ๋๋ ๊ฒ์ผ๋ก ์ถ์ ๋๋ฉฐ,
- ๋ด๋ถ์์๋ ์ธ์คํด์ค ์ธ๋ถ ํ์ ๋ณ ๊ฐ๊ฒฉ ์ ๋ณด๊ฐ ํ์ํ ๊ฒ์ ์์ ์์
- ํ์์ฑ์ ๋ํด์๋ ๊ตฌ๊ธ๋ง์์๋ ๋ณด์ด๊ณ ๋ค์ ๋ฑ๋ก๋ ์ด์๋ฅผ ๋ณด๋ฉด, ์ง์์ ์ผ๋ก ์ฐพ๊ณ ์๋ ์ํฉ
-
์์ ๊ทธ๋ฃน๋ณ๋ก 1๋ ์ฝ์ ๋ฐ 3๋ ์ฝ์ ๊ฐ๊ฒฉ ์ ๊ณต
-
์ ํ/์๋น์ค์ ๋ํ Region๋ณ OnDemand ๊ฐ๊ฒฉ๊ณผ Preemptible ๊ฐ๊ฒฉ ์ ๋ณด ํฌํจ
-
ํ์ฉ ๋ฐฉ๋ฒ ๋ฐ ์ ๋ณด ์์
-
curl https://cloudpricingcalculator.appspot.com/static/data/pricelist.json
{
"comment": "This JSON data is obsolete. Please use https://cloud.google.com/billing/v1/how-tos/catalog-api instead.",
"updated": "3-January-2024",
"version": "v1.75",
"gcp_price_list": {
"CP-ALLOYDB-BACKUP": {
"asia-east1": 0.0001589,
"asia-east2": 0.0001918,
"asia-northeast1": 0.0001753,
"asia-northeast2": 0.0001753,
"asia-northeast3": 0.0001753,
"asia-south1": 0.0001425,
...
- N1 ๋จธ์ ์ ํ ์ฝ์ ๋ชฉ๋ก ํ์ธ ์์
grep N1 pricelist.json |grep YEAR
"CP-COMPUTEENGINE-N1-CUD-1-YEAR-CPU": {
"CP-COMPUTEENGINE-N1-CUD-1-YEAR-RAM": {
"CP-COMPUTEENGINE-N1-CUD-3-YEAR-CPU": {
"CP-COMPUTEENGINE-N1-CUD-3-YEAR-RAM": {
- N1 ๋จธ์ ์ ํ 1๋
์ฝ์ ๊ฐ๊ฒฉ (3๋
์ฝ์ ๊ฐ๊ฒฉ์ ์๋ต)
- CPU ๊ฐ๊ฒฉ ์ ๋ณด ์์
cat pricelist.json |jq '.gcp_price_list."CP-COMPUTEENGINE-N1-CUD-1-YEAR-CPU"'
{
"africa-south1": 0.02604882,
"asia-east1": 0.023059,
"asia-east2": 0.0278655,
"asia-northeast1": 0.025589,
"asia-northeast2": 0.025589,
"asia-northeast3": 0.025589, <=========
"asia-south1": 0.0239186,
...
-
- Memory ๊ฐ๊ฒฉ ์ ๋ณด ์์
cat pricelist.json |jq '.gcp_price_list."CP-COMPUTEENGINE-N1-CUD-1-YEAR-RAM"'
{
"africa-south1": 0.003491052,
"asia-east1": 0.003091,
"asia-east2": 0.0037346,
"asia-northeast1": 0.003414,
"asia-northeast2": 0.003414,
"asia-northeast3": 0.003414, <=========
"asia-south1": 0.003205,
- GCP Web์์ ํ์ธ
- n1-standard-16 OnDemand ๊ฐ๊ฒฉ ์ ๋ณด ์์
cat pricelist.json |jq '.gcp_price_list."CP-COMPUTEENGINE-VMIMAGE-N1-STANDARD-16"'
{
"asia": 0.88,
"asia-east": 0.88,
"asia-east1": 0.88,
"asia-east2": 1.0634,
"asia-northeast": 0.976,
"asia-northeast1": 0.976,
"asia-northeast2": 0.976,
"asia-northeast3": 0.976, <===========
"asia-south1": 0.9127,
...
- n1-standard-16 Preemptible ๊ฐ๊ฒฉ ์์
cat pricelist.json |jq '.gcp_price_list."CP-COMPUTEENGINE-VMIMAGE-N1-STANDARD-16-PREEMPTIBLE"'
{
"asia": 0.176,
"asia-east": 0.176,
"asia-east1": 0.176,
"asia-east2": 0.2242,
"asia-northeast": 0.212,
"asia-northeast1": 0.212,
"asia-northeast2": 0.212,
"asia-northeast3": 0.212, <==========
"asia-south1": 0.19243,
- GCP Web์์ ํ์ธ
5. ์ ์ ๋ฐฉ๋ฒ ๋ฐ ๊ฐ์ด๋
๋จธ์ ํ์ ์์ธ ์ ๋ณด
์ ์ ๋ฐฉ๋ฒ ์ค(1) SKU ๊ธฐ๋ฐ ๊ฐ๊ฒฉ ์ ๋ณด ์ ๊ณต ๋ฐฉ๋ฒ
์กฐํฉ/๋ณํํ์ฌ ํ์ฉ
['๋จธ์ ํ์ ์์ธ ์ ๋ณด' ํ์ฉ ์์ ๋ฐ ์ ๊ณต ์ ๋ณด]
- getPriceInfo()๊ฐ ์ ๊ณตํ๋ ์ ํ ์ ๋ณด๋ฅผ ์ ๊ณตํ๊ธฐ ์ํด์
- GCP๊ฐ ์ ๊ณตํ๋ ๋จธ์ ํ์ ์์ธ ์ ๋ณด๋ฅผ ํ์ฉ
- ๋ณธ ๊ฐ์ด๋์์๋ ํธ์์ cli๋ฅผ ํ์ฉ(๋๋ผ์ด๋ฒ ๊ฐ๋ฐ์์๋ SDK API ํ์ฉ)
- ํธ์์ ์ผ๋จ ์ ์ฒด ๋จธ์ ํ์ ์ ํ์ผ๋ก ๋ฐ๊ธฐ
gcloud compute machine-types list --format=json > gcloud.compute.machine-types.list-json.json
- Zone๋ณ๋ก ์ ๊ณตํ๋ ๋จธ์ ํ์ ๊ณผ ๊ด๋ จ๋ ๊ท๊ฒฉ ์ ๋ณด๋ฅผ ์ ๊ณต
- ์ ๊ณต ์ ๋ณด ์์
[
{
"accelerators": [
{
"guestAcceleratorCount": 1,
"guestAcceleratorType": "nvidia-tesla-a100"
}
],
"creationTimestamp": "1969-12-31T16:00:00.000-08:00",
"description": "Accelerator Optimized: 1 NVIDIA Tesla A100 GPU, 12 vCPUs, 85GB RAM",
"guestCpus": 12,
"id": "1000012",
"imageSpaceGb": 0,
"isSharedCpu": false,
"kind": "compute#machineType",
"maximumPersistentDisks": 128,
"maximumPersistentDisksSizeGb": "263168",
"memoryMb": 87040,
"name": "a2-highgpu-1g",
"selfLink": "https://www.googleapis.com/compute/v1/projects/powerkimhub/zones/us-central1-a/machineTypes/a2-highgpu-1g",
"zone": "us-central1-a"
},
...
- ์ฐธ๊ณ : ์ ๊ณตํ๋ ๋จธ์ ํ์ ์ข ๋ฅ (243๊ฐ)
grep name gcloud.compute.machine-types.list-json.json |sort |uniq
"name": "a2-highgpu-1g",
"name": "a2-highgpu-2g",
"name": "a2-highgpu-4g",
"name": "a2-highgpu-8g",
"name": "a2-megagpu-16g",
- ์ ๊ณตํ๋ ๋จธ์ ํ์
์ ๋ณด๋ ๋์ ๋จธ์ ํ์
์ ์ ๊ณตํ๋ zone๋ง๋ค ์ค๋ณต ํ์ฌ ์ ๊ณต
- ์ฐธ๊ณ : ๋จธ์ ํ์ ์ด ๋์ผํ๋ฉด, zone ์ ๋ณด๋ฅผ ์ ์ธํ๊ณ ๋ชจ๋ ๋์ผํ ์ ๋ณด๋ฅผ ์ ๊ณต
cat gcloud.compute.machine-types.list-json.json | jq 'map(select(.name=="n1-standard-1"))'
[
{
"creationTimestamp": "1969-12-31T16:00:00.000-08:00",
"description": "1 vCPU, 3.75 GB RAM",
"guestCpus": 1,
"id": "3001",
"imageSpaceGb": 10,
"isSharedCpu": false,
"kind": "compute#machineType",
"maximumPersistentDisks": 128,
"maximumPersistentDisksSizeGb": "263168",
"memoryMb": 3840,
"name": "n1-standard-1",
"selfLink": "https://www.googleapis.com/compute/v1/projects/powerkimhub/zones/us-central1-a/machineTypes/n1-standard-1",
"zone": "us-central1-a"
},
... ์ค๋ต
{
"creationTimestamp": "1969-12-31T16:00:00.000-08:00",
"description": "1 vCPU, 3.75 GB RAM",
"guestCpus": 1,
"id": "3001",
"imageSpaceGb": 10,
"isSharedCpu": false,
"kind": "compute#machineType",
"maximumPersistentDisks": 128,
"maximumPersistentDisksSizeGb": "263168",
"memoryMb": 3840,
"name": "n1-standard-1",
"selfLink": "https://www.googleapis.com/compute/v1/projects/powerkimhub/zones/me-west1-c/machineTypes/n1-standard-1",
"zone": "me-west1-c"
}
]
['SKU ๊ธฐ๋ฐ ๊ฐ๊ฒฉ ์ ๋ณด ์ ๊ณต ๋ฐฉ๋ฒ' ํ์ฉ ์์ ๋ฐ ๊ฐ์ด๋]
- ํธ์์ ์ผ๋จ SKU ๊ฐ๊ฒฉ ์ ๋ณด ํ์ผ๋ก ๋ฐ๊ธฐ
- ํธ์์ ์ฒซ ํ์ด์ง๋ง ๋ฐ๊ธฐ(next page๋ ์๋ต)
curl https://cloudbilling.googleapis.com/v1/services/6F81-5844-456A/skus?key={your API KEY} > get_https.cloudbilling.googleapis.com-v1-services-6F81-5844-456A-skus.json
- ์ ํ/์๋น์ค์ ๋ชจ๋ SKU์ ๋ํ ๊ฐ๊ฒฉ ์ ๋ณด๋ฅผ ์ ๊ณต
Compute Engine
์ ๋ณด์ ๊ฒฝ์ฐ ๋จธ์ ํ์ ์ ๋ํด์ ์ํ๋ ์ ๋์ ์ธ๋ถ ์ ๋ณด๋ ์ ๊ณตํ์ง ์์(์ ์ ํด์ฃผ์ ๋ด์ฉ๊ณผ ๊ฐ์ด ์ ์ ๋ณด ํ์ฉ ํ์)- ๋๋ต ์ ๊ณต ๋ด์ฉ
$ head -n 50 get_https.cloudbilling.googleapis.com-v1-services-6F81-5844-456A-skus.json
{
"skus": [
{
"name": "services/6F81-5844-456A/skus/0006-C9C8-BB6F",
"skuId": "0006-C9C8-BB6F",
"description": "Commitment v1: Memory-optimized Cpu in Phoenix for 1 Year",
"category": {
"serviceDisplayName": "Compute Engine",
"resourceFamily": "Compute",
"resourceGroup": "CPU",
"usageType": "Commit1Yr"
},
"serviceRegions": [
"us-west8"
],
"pricingInfo": [
{
"summary": "",
"pricingExpression": {
"usageUnit": "h",
"displayQuantity": 1,
"tieredRates": [
{
"startUsageAmount": 0,
"unitPrice": {
"currencyCode": "USD",
"units": "0",
"nanos": 20550000
}
}
],
"usageUnitDescription": "hour",
"baseUnit": "s",
"baseUnitDescription": "second",
"baseUnitConversionFactor": 3600
},
"currencyConversionRate": 1,
"effectiveTime": "2024-01-07T21:00:52.562729Z"
}
],
"serviceProviderName": "Google",
"geoTaxonomy": {
"type": "REGIONAL",
"regions": [
"us-west8"
]
}
},
...
- ํน์ SKU์ ๋ํด ์๋ณธ json ๊ตฌ์กฐ ์ ๋ณด๋ก ํ์ธ ๋ฐฉ๋ฒ
cat get_https.cloudbilling.googleapis.com-v1-services-6F81-5844-456A-skus.json |jq '.skus' |jq 'map(select(.skuId=="0006-C9C8-BB6F"))'
[
{
"name": "services/6F81-5844-456A/skus/0006-C9C8-BB6F",
"skuId": "0006-C9C8-BB6F",
"description": "Commitment v1: Memory-optimized Cpu in Phoenix for 1 Year",
"category": {
"serviceDisplayName": "Compute Engine",
"resourceFamily": "Compute",
"resourceGroup": "CPU",
"usageType": "Commit1Yr"
},
"serviceRegions": [
"us-west8"
],
"pricingInfo": [
{
"summary": "",
"pricingExpression": {
"usageUnit": "h",
"displayQuantity": 1,
"tieredRates": [
{
"startUsageAmount": 0,
"unitPrice": {
"currencyCode": "USD",
"units": "0",
"nanos": 20550000
}
}
],
"usageUnitDescription": "hour",
"baseUnit": "s",
"baseUnitDescription": "second",
"baseUnitConversionFactor": 3600
},
"currencyConversionRate": 1,
"effectiveTime": "2024-01-07T21:00:52.562729Z"
}
],
"serviceProviderName": "Google",
"geoTaxonomy": {
"type": "REGIONAL",
"regions": [
"us-west8"
]
}
}
]
- ์ ๊ณตํ๋ ๊ฐ๊ฒฉ ์ ์ฑ ์ข ๋ฅ
cat get_https.cloudbilling.googleapis.com-v1-services-6F81-5844-456A-skus.json |grep usageType |sort |uniq
"usageType": "Commit1Yr"
"usageType": "Commit3Yr"
"usageType": "OnDemand"
"usageType": "Preemptible"
- ์ ๊ณตํ๋ ์ ๋ณด ์ค ์ ํ/์๋น์ค ๊ด๋ จ ์ ๋ณด
- ๋ค์์ ํ์๋ ์ ๋ณด๋ค
- **์ฆ, ์ด ์ ๋ณด๋ฅผ ์ด์ฉํด์ VM ์ธ์คํด์ค ํ์ ์ ๋ณด์ ๋งตํ ํด์ผ ํจ ** <------------------------------------------
- skuId๋ฅผ ์ด์ฉํด์ ์ธ์คํด์ค ํ์
์ ๋ณด๋ฅผ ์ป์ผ๋ฉด ์ข์๋ฐ, ๊ทธ๋ฐ API๋ ์๋ ๋ฏํจ(๊ตฌ๊ธ๋ง: ์ฐพ๋ ์ฌ๋๋ค์ ์ข
์ข
์์)
- API๊ฐ ์กด์ฌํด๋, skuId๊ณผ ๋จธ์ ํ์ ์ ๋ณด๊ฐ ์ ์ฒด sku์ ๋ํด์ ํ๋ฒ ๋ด์ง ๋ช๋ฒ์ API Call๋ก ์ป์ ์ ์์ด์ผ ํจ(Call Limit ์ด์ ๊ด๋ จ)
{
"name": "services/6F81-5844-456A/skus/0006-C9C8-BB6F",
"skuId": "0006-C9C8-BB6F",
"description": "Commitment v1: Memory-optimized Cpu in Phoenix for 1 Year", <---------- description์ด๋ฏ๋ก, ๊ฐ๋ฅํ๋ฉด ๋ณด์กฐ ์ ๋ณด๋ก๋ง ํ์ฉ
"category": {
"serviceDisplayName": "Compute Engine", <------ sku ์ ๋ณด ์์ฒญ์ "6F81-5844-456A" ์ธ์๋ก ์ป์๊ธฐ ๋๋ฌธ์ ํ์ฌ ์ป์ ์ ๋ณด๋ ๋ชจ๋ ๋์ผํ ๊ฐ
"resourceFamily": "Compute", <-------- ์๋ resourceFamily ์ข
๋ฅ ์ฐธ๊ณ , productFamily ์ข
๋ฅ filtering์ ํ์ฉ ๊ฐ๋ฅ
"resourceGroup": "CPU", <-------- ์ด ์ ๋ณด๊ฐ ์ผ๋ถ ๋จธ์ ํ์
์ ๊ตฌ๋ถํ ์ ์๋ ์ ๋ณด๋ก ํ์ฉ ๊ฐ๋ฅ, ์๋ resoruceGroup ์ ๋ณด ๊ด๋ จ ๋ด์ฉ ์ฐธ๊ณ
"usageType": "Commit1Yr" <-------- (Commit1Yr, Commit3Yr, OnDemand, Preemptible)๊ฐ๊ฒฉ ์ ์ฑ
์ข
๋ฅ ์ ๋ณด๋ก ํ์ฉ ๊ฐ๋ฅ
},
"serviceRegions": [
"us-west8" <-------- ์ ๊ณตํ๋ ๋ฆฌ์ ์ ๋ณด๋ก ํ์ฉ ๊ฐ๋ฅ
],
"pricingInfo": ... <-------- ๊ฐ๊ฒฉ ์ ์ฑ
์ผ๋ก ํ์ฉ ๊ฐ๋ฅ
- ์ ๊ณตํ๋ resourceFamily ์ข ๋ฅ
cat get_https.cloudbilling.googleapis.com-v1-services-6F81-5844-456A-skus.json |grep resourceFamily |sort |uniq
"resourceFamily": "Compute",
"resourceFamily": "License",
"resourceFamily": "Network",
"resourceFamily": "Storage",
- ์ ๊ณตํ๋ resourceGroup ์ข ๋ฅ
cat get_https.cloudbilling.googleapis.com-v1-services-6F81-5844-456A-skus.json |grep resource
Group |sort |uniq
"resourceGroup": "AdvancedNetworking",
"resourceGroup": "AlmaLinux",
"resourceGroup": "AppScale",
"resourceGroup": "BitnamiAlchemy",
"resourceGroup": "BitnamiCanvas",
"resourceGroup": "BitnamiCloud9",
"resourceGroup": "BitnamiDevPack",
"resourceGroup": "BitnamiGallery",
"resourceGroup": "BitnamiGerrit",
"resourceGroup": "BitnamiMeteor",
"resourceGroup": "BitnamiNexus",
"resourceGroup": "BitnamiNodeBB",
"resourceGroup": "BitnamiPHP7",
"resourceGroup": "BitnamiRadiant",
"resourceGroup": "BitnamiReportServer",
"resourceGroup": "BitnamiWebPack",
"resourceGroup": "CDNCacheFill",
"resourceGroup": "CPU",
"resourceGroup": "Canonical",
"resourceGroup": "CentOS",
"resourceGroup": "CloudEndure",
"resourceGroup": "ConfidentialSpace",
"resourceGroup": "CoreOSBeta",
"resourceGroup": "CoreOSStable",
"resourceGroup": "Couchbase",
"resourceGroup": "DaceITLLCd/b/aSenseTrafficPulse",
"resourceGroup": "DataflowStreaming",
"resourceGroup": "Debian",
"resourceGroup": "Debian8",
"resourceGroup": "Debian9",
"resourceGroup": "Dokku",
"resourceGroup": "F1Micro",
"resourceGroup": "FedoraCoreOS",
"resourceGroup": "Flink",
"resourceGroup": "FreeBSD",
"resourceGroup": "G1Small",
"resourceGroup": "GPU",
"resourceGroup": "Google",
"resourceGroup": "GoogleEgress",
"resourceGroup": "GoogleIngress",
"resourceGroup": "GreenSQL",
"resourceGroup": "InterconnectAttachment",
"resourceGroup": "InterconnectPort",
"resourceGroup": "InterregionEgress",
"resourceGroup": "InterregionIngress",
"resourceGroup": "IntrazoneEgress",
"resourceGroup": "IpAddress",
"resourceGroup": "LocalSSD",
"resourceGroup": "MachineImage",
"resourceGroup": "MasterConcept",
"resourceGroup": "Microsoft",
"resourceGroup": "N1Standard",
"resourceGroup": "Nuggeta",
"resourceGroup": "OpenSUSELeap42",
"resourceGroup": "PDSnapshot",
"resourceGroup": "PDStandard",
"resourceGroup": "PacketMirroring",
"resourceGroup": "PdSnapshotEgress",
"resourceGroup": "PeeringOrInterconnectEgress",
"resourceGroup": "PeeringOrInterconnectIngress",
"resourceGroup": "PremiumInternetEgress",
"resourceGroup": "PremiumInternetIngress",
"resourceGroup": "Quobyte",
"resourceGroup": "RAM",
"resourceGroup": "RHEL6",
"resourceGroup": "RedHat",
"resourceGroup": "Rhel",
"resourceGroup": "Ruby",
"resourceGroup": "SLES12ForSAP",
"resourceGroup": "SQLServer2014Web",
"resourceGroup": "SQLServer2016Express",
"resourceGroup": "SQLServer2016Standard",
"resourceGroup": "SSD",
"resourceGroup": "SUSE",
"resourceGroup": "SUSE11",
"resourceGroup": "SUSE12",
"resourceGroup": "Sles",
"resourceGroup": "SlesSap",
"resourceGroup": "StandardInternetEgress",
"resourceGroup": "StandardInternetIngress",
"resourceGroup": "StorReduceLarge",
"resourceGroup": "StorReduceXLarge",
"resourceGroup": "Storage",
"resourceGroup": "StorageImage",
"resourceGroup": "TPU",
"resourceGroup": "Ubuntu1204LTS",
"resourceGroup": "Ubuntu1404LTS",
"resourceGroup": "Ubuntu1604",
"resourceGroup": "Ubuntu1610",
"resourceGroup": "Ubuntu1710",
"resourceGroup": "UbuntuCore",
"resourceGroup": "UbuntuCore16",
"resourceGroup": "UbuntuDev",
"resourceGroup": "UbuntuSnappy1604",
"resourceGroup": "VPNInternetEgress",
"resourceGroup": "VPNInternetIngress",
"resourceGroup": "VPNInterregionEgress",
"resourceGroup": "VPNInterregionIngress",
"resourceGroup": "VarnishSoftwareInc",
"resourceGroup": "VmState",
"resourceGroup": "Windows2008",
"resourceGroup": "Windows2016",
"resourceGroup": "WindowsActiveDirectory",
"resourceGroup": "WindowsCore",
"resourceGroup": "WindowsServer2008R2",
"resourceGroup": "WindowsServer2012",
"resourceGroup": "WindowsServer2012R2",
- resourceGroup ์ ๋ณด์ N1 ๋จธ์ ์ ํ ๋งตํ ๊ฐ์ด๋
- N1 ๊ด๋ จ ์ ๋ณด ์ป๋ ๋ฐฉ๋ฒ(resourceGroup="N1Standard") ๋ฐ ๊ทธ์ค ์ฒซ๋ฒ์งธ ์ ๋ณด ํ์ธ
cat get_https.cloudbilling.googleapis.com-v1-services-6F81-5844-456A-skus.json |jq '.skus' |jq 'map(select(.category.resourceGroup=="N1Standard"))' |more
[
{
"name": "services/6F81-5844-456A/skus/000F-E31B-1D6F",
"skuId": "000F-E31B-1D6F",
"description": "N1 Predefined Instance Ram running in Zurich", <---------------- 'Ram': ๋ฉ๋ชจ๋ฆฌ ๊ฐ๊ฒฉ ์ ๋ณด ์์ ์ฐธ๊ณ
"category": {
"serviceDisplayName": "Compute Engine",
"resourceFamily": "Compute",
"resourceGroup": "N1Standard", <---------------- N1 ๊ณ์ด
"usageType": "OnDemand" <---------------- ๊ฐ๊ฒฉ ์ ์ฑ
},
"serviceRegions": [
"europe-west6" <--------------- ๋ฆฌ์
],
"pricingInfo": [
{
"summary": "",
"pricingExpression": {
"usageUnit": "GiBy.h", <--------------- ๋ฉ๋ชจ๋ฆฌ ๊ฐ๊ฒฉ ์ ๋ณด์์ ํ์ฉ ๊ฐ๋ฅ
"displayQuantity": 1,
"tieredRates": [
{
"startUsageAmount": 0,
"unitPrice": {
"currencyCode": "USD",
"units": "0",
"nanos": 5928000 <--------------- ๊ฐ๊ฒฉ ์ ๋ณด ํ์ฉ ๊ฐ๋ฅ, dollar ๋ณํ ๊ท์น์ ์ฌ๊ธฐ์(https://cloud.google.com/skus/?hl=ko) ํ์ธ ๊ฐ๋ฅ
} skuid(ex:000F-E31B-1D6F)๋ฅผ ์
๋ ฅํ๋ฉด ํ์ฐํ์ฌ ๋ณด์ฌ์ค
}
],
"usageUnitDescription": "gibibyte hour",
"baseUnit": "By.s",
"baseUnitDescription": "byte second",
"baseUnitConversionFactor": 3865470566400
},
"currencyConversionRate": 1,
"effectiveTime": "2024-01-07T21:00:52.562729Z"
}
],
"serviceProviderName": "Google",
"geoTaxonomy": {
"type": "REGIONAL",
"regions": [
"europe-west6"
]
}
},
...
- ๊ด๋ จ๋ ์น ํ์ด์ง์์ ์ ๋ณด ํ์ธ
- N1 ๋จธ์ ์ ํ, ์ทจ๋ฆฌํ, OnDemand, ๋ฉ๋ชจ๋ฆฌ, ์๊ฐ๋น GB ์ฌ์ฉ ๋จ๊ฐ
- (resourceGroup="N1Standard") ์ ๋ณด ์ค vCPU ๊ด๋ จ ์ ๋ณด ์์๋ฅผ ํ๋ ๋ ๋ณด์๋ฉด,
- services.sku.lisk ์ ๊ณต ์ ๋ณด ์์
{
"name": "services/6F81-5844-456A/skus/718A-81BA-2CBB",
"skuId": "718A-81BA-2CBB",
"description": "N1 Predefined Instance Core running in Zurich", <---------------- 'Core': CPU ์ ๋ณด ์์ ์ฐธ๊ณ
"category": {
"serviceDisplayName": "Compute Engine",
"resourceFamily": "Compute",
"resourceGroup": "N1Standard", <---------------- N1 ๊ณ์ด
"usageType": "OnDemand" <---------------- ๊ฐ๊ฒฉ ์ ์ฑ
},
"serviceRegions": [
"europe-west6" <---------------- ๋ฆฌ์
],
"pricingInfo": [
{
"summary": "",
"pricingExpression": {
"usageUnit": "h", <---------------- vCPU ๊ฐ๊ฒฉ ์ ๋ณด ์ถ์ (N1 ๊ณ์ด์ธ ๊ฒฝ์ฐ, ๋ฉ๋ชจ๋ฆฌ: "GiBy.h")
"displayQuantity": 1,
"tieredRates": [
{
"startUsageAmount": 0,
"unitPrice": {
"currencyCode": "USD",
"units": "0",
"nanos": 44231000 <---------------- ๊ฐ๊ฒฉ ์ ๋ณด: 0.044231 USD per 1 hour
}
}
],
"usageUnitDescription": "hour",
"baseUnit": "s",
"baseUnitDescription": "second",
"baseUnitConversionFactor": 3600
},
"currencyConversionRate": 1,
"effectiveTime": "2024-01-08T08:57:38.057755Z"
}
],
"serviceProviderName": "Google",
"geoTaxonomy": {
"type": "REGIONAL",
"regions": [
"europe-west6"
]
}
},
- Web ํ์ด์ง ์ ๊ณต ์ ๋ณด ์์
[์ธ๋ถ ๋จธ์ ํ์ ๊ฐ๊ฒฉ ์ ๋ณด ์์ฑ ๊ฐ์ด๋]
- ํธ์์ ๊ฐ์ด๋ ์ค๋ช ์ services.sku.list API๋ฅผ ์ฌ์ฉํ์ง ์๊ณ , Web ํ์ด์ง ์ ๋ณด๋ฅผ ์ฌ์ฉํ์ฌ ์ค๋ช
- services.sku.list API๊ฐ ์ ๊ณตํ๋ ์ ๋ณด๋ ์ธ๋ถ ๋จธ์ ํ์ ์ ๋ณด(์ฆ, VCPU 1๊ฐ, Memory 16GB ๋ฑ์ ์ ๋ณด)๊ฐ ์๊ณ ,
- ๋ค์๊ณผ ๊ฐ์ด ๋จธ์ ์ ํ๋ณ CPU ๊ธฐ์ค ๊ฐ๊ฒฉ๊ณผ Memory ๊ธฐ๋ถ ๊ฐ๊ฒฉ์ ์ ๊ณต
- ์ธ๋ถ ๋จธ์ ํ์
๊ฐ๊ฒฉ ์ ๋ณด๋ ๋ค์๊ณผ ๊ฐ์ด ๊ณ์ฐ์ผ๋ก ์ป์ ์ ์์
- API๋ก ์ป์ ๊ฐ๊ฒฉ๊ณผ ๊ณ์ฐ์ผ๋ก ์ป์ ๊ฐ๊ฒฉ์ด ์์ซ์ 5์๋ฆฌ ์ ๋๊ฐ ๋ค๋ฅธ ๊ฒฝ์ฐ๋ฅผ ๋๋ฌผ๊ฒ ๋ชฉ๊ฒฉํ์ง๋ง, ๊ฑฐ์ ๋์ผํ์์
- ์์:
n1-highmem-96
์ ์ ํ ๊ฐ๊ฒฉ ์ ๋ณด - ํ์ธ: ๊ด๋ จ ์นํ์ด์ง ๊ฐ๊ฒฉ ์ ๋ณด
- ์์์ ํ์ธํ ์ธ์คํด์ค ํ์ ์ธ๋ถ ์ ๋ณด ๋ฐ SKU ๊ฐ๊ฒฉ ์ ๋ณด ๋ฐ ์์ฑํ ์ธ๋ถ ๋จธ์ ํ์ ๋ณ ๊ฐ๊ฒฉ ์ ๋ณด๋ฅผ ํ์ฉํ์ฌ,
- CB-Spider ๊ฐ๊ฒฉ ์ ๋ณด ์ถ์ํ ์ ๋ณด Json์ ์์ฑ
6. ์ ์ ๋ฐฉ๋ฒ์ผ๋ก ๊ฐ๋ฐ ์ ํ์ธ ์ฌํญ
- ์ ์ ๋ฐฉ๋ฒ์ ์ผ๋ถ ์ผ์ด์ค์ ๋ํ ์ํ๋ง์ ํตํ ๊ฐ๋ฅ์ฑ์ ํ์งํ ๋ฐฉ๋ฒ์ ๋๋ค.
- ์ค์ ์ ์ฒด๋ฅผ ์ถ์งํ๋ ๋ฐ ๋ฌธ์ ๊ฐ ์๋ ์ง ๋จธ์ ์ ํ๋ณ ์ถ๊ฐ ์ ๊ฒ์ด ํ์ํฉ๋๋ค.
- N1 ๋จธ์ ์ ํ์ resourceGroup์ "N1Standard"๋ก ํ์๋์ด ์ด ์ ๋ณด๋ฅผ ํ์ฉํ์ง๋ง,
- N1 ๋จธ์ ์ธ์๋ "description" ์ ๋ณด์ ๋จธ์ ์ ํ ์ ๋ณด๊ฐ ํฌํจ๋์ด ์์ต๋๋ค.
- ์ด description ์ ๋ณด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ฐ๊ฒฉ ์ ๋ณด๋ฅผ ์ถ์ถํ๋ ๊ฒ์ด ์์ ์ ์ธ์ง ์ฌ์ ๊ฒ ๋ฑ์ด ํ์ํฉ๋๋ค.
- ์๋ฅผ ๋ค์ด C3D ๋จธ์ ์ ํ์ ๊ฒฝ์ฐ, ๋ค์๊ณผ ๊ฐ์ด description ์ ๋ณด์ resourceGrop(RAM|CPU) ๋ฑ์ผ๋ก ํด์ํ๋ ๋ฐฉ๋ฒ์ด ํ์ํฉ๋๋ค.
- ๋ค๋ฅธ ๋จธ์ ์ ํ ๋ค๋ ๋๋ต ์ ๊ฒ ํ ๊ฐ๋ฐ์ ์์ํ๋ ๊ฒ์ด ์ข์ ๋ฏ ํฉ๋๋ค.
{
"name": "services/6F81-5844-456A/skus/002F-AF8C-E90F",
"skuId": "002F-AF8C-E90F",
"description": "Spot Preemptible C3D Instance Ram running in Columbus", <------------ 'C3D'
"category": {
"serviceDisplayName": "Compute Engine",
"resourceFamily": "Compute",
"resourceGroup": "RAM", <------------ ๋ฉ๋ชจ๋ฆฌ ๊ฐ๊ฒฉ
"usageType": "Preemptible"
}, ...
7. Plan B
-
๊ธฐ๋ฅ ๊ฐ๋ฐ ๋ง๊ฐ์ 1/17(์) ๊ธฐ์ค์ผ๋ก ๊ฒํ ํด์ฃผ์๋ฉด ๋๊ฒ ์ต๋๋ค.
-
๊ณต์, ๊ธฐ๊ฐ ๋ฐ ๋์ด๋ ๋ฑ์ ๊ณ ๋ คํ์ ๋, ์ ์ ์ ๋ฐฉ๋ฒ์ด ๋น๊ด์ ์ผ ๊ฒฝ์ฐ ๋ค์ ๋ฐฉ๋ฒ์ผ๋ก ์ถ์ง ๋ถํ ๋๋ฆฝ๋๋ค.
-
GCP๊ฐ ์ ๊ณตํ๋ SKU ์ ๋ณด ์ฒด๊ณ๋ก ์ ๊ณต
- ์ฆ, serivces.skl.list API ์ ๊ณต ์ ๋ณด๋ง ํ์ฉ
- ์ฆ, ์ธ์คํด์ค ์ธ๋ถ ์ ๋ณด๋ฅผ ์ ๊ณตํ์ง ์๊ณ , SKU ์ค์ฌ์ ๊ฐ๊ฒฉ ์ ๋ณด ์ ๊ณต์ผ๋ก ๋ณํ
-
๋ณํ ์์
"productInfo": {
"productId": "2223RRAP6Z3VBN3N", <====== SKU Id
"regionName": "us-east-1", <====== Region ์ ๋ณด
"zoneName": "NA", <====== NA
"instanceType": "c5d.2xlarge", <====== description ์ ๋ณด
"vcpu": "8", <====== NA
"memory": "16 GiB", <====== NA, ์ดํ ์ ๊ณตํ์ง ์๋ ์ ๋ณด๋ NA๋ก ์ค์
"storage": "1 x 200 NVMe SSD",
"gpu": "2",
"gpuMemory": "NA",
"operatingSystem": "RHEL",
"preInstalledSw": "SQL Web",
"description": "Any helpful information", <====== description ์ ๋ณด
+ "cspProductInfo": { ... } <===== GCP ์ ๊ณต ์ ๋ณด ์ถ๊ฐ
์ดํ priceInfo ์ ๋ณด๋ ๊ฐ๋ฅํ ๋ณํํด์ ์ฑ์
์ฐธ๊ณ : services.skus.list API์ Web ํ์ด์ง ์ ๋ณด๊ฐ ํ๋ฆฐ ๊ฒฝ์ฐ๊ฐ ์กด์ฌ
- ์ฐจ์ด๊ฐ ๋๋ ์ ๋ณด ์์๋ ์๋๋ฅผ ์ฐธ๊ณ
- ์ฐจ์ด๊ฐ ๋๋ ๊ฒฝ์ฐ์ API ๊ฐ๊ฒฉ ์ ๋ณด๋ฅผ ์ฐ์ ์ค์ํ๋ค.
- ์น ํ์ด์ง๋ Cached json file์ ๊ฒฝ์ฐ ์ค์๊ฐ ๋ฐ์์ด ์๋๊ณ , ๋ฐ์ ์์ ์ ๋ฐ๋ผ ์ฐจ์ด๊ฐ ๋๋ ๊ฒ์ผ๋ก ์ถ์
[SKU ๊ฐ๊ฒฉ ์ ๋ณด ์ฐจ์ด]
-
us-east4 preemptibla, cpu ๊ฐ๊ฒฉ ์ ๋ณด๊ฐ ๋ชจ๋ ๋ค๋ฆ
- API ์ป์ ๊ฐ๊ฒฉ: 0.00668 USD per 1 hour
- ์นํ์ด์ง ๊ฐ๊ฒฉ: $0.00712085 / vCPU hour
- cached json file: $0.00701
- ์ฐธ๊ณ : Zurich(europe-west6)์ ๊ฒฝ์ฐ๋ ๋ชจ๋ ๋์ผํจ
-
services.sku.list๋ก ์ป์ (resourceGroup="N1Standard") ์ ๋ณด ์ค vCPU ๊ด๋ จ ๊ฐ๊ฒฉ ์ ๋ณด๊ฐ ๋ค์๊ณผ ๊ฐ์
{
"name": "services/6F81-5844-456A/skus/023F-CB27-DC68",
"skuId": "023F-CB27-DC68",
"description": "Spot Preemptible N1 Predefined Instance Core running in Virginia", <---------------- 'Core': CPU ์ ๋ณด ์์ ์ฐธ๊ณ
"category": {
"serviceDisplayName": "Compute Engine",
"resourceFamily": "Compute",
"resourceGroup": "N1Standard", <---------------- N1 ๊ณ์ด
"usageType": "Preemptible" <---------------- ๊ฐ๊ฒฉ ์ ์ฑ
},
"serviceRegions": [
"us-east4" <---------------- ๋ฆฌ์
],
"pricingInfo": [
{
"summary": "",
"pricingExpression": {
"usageUnit": "h", <---------------- vCPU ๊ฐ๊ฒฉ ์ ๋ณด
"displayQuantity": 1,
"tieredRates": [
{
"startUsageAmount": 0,
"unitPrice": {
"currencyCode": "USD",
"units": "0",
"nanos": 6680000 <---------------- ๊ฐ๊ฒฉ ์ ๋ณด: 0.00668 USD per 1 hour
}
}
],
"usageUnitDescription": "hour",
"baseUnit": "s",
"baseUnitDescription": "second",
"baseUnitConversionFactor": 3600
},
"currencyConversionRate": 1,
"effectiveTime": "2024-01-07T21:00:52.562729Z"
}
],
"serviceProviderName": "Google",
"geoTaxonomy": {
"type": "REGIONAL",
"regions": [
"us-east4"
]
}
},
-
์น ํ์ด์ง์์ ํ์ธํ๋ฉด: $0.00712085 / vCPU hour
-
cached json file์์ ํ์ธํ๋ฉด: 0.00701
[SKU ์ ๊ณต ๋ฆฌ์ ์ฐจ์ด]
- service list API๋ก ์ป์ ์ ๋ณด ์ค: N1 ๊ณ์ด์ด "europe-west10(Berlin)"์์ ์ ๊ณตํ๋ ๊ฑธ๋ก ๋์ด
{
"name": "services/6F81-5844-456A/skus/007F-30EB-9169",
"skuId": "007F-30EB-9169",
"description": "Spot Preemptible N1 Predefined Instance Core running in Berlin", <--------------
"category": {
"serviceDisplayName": "Compute Engine",
"resourceFamily": "Compute",
"resourceGroup": "N1Standard", <-----------------------
"usageType": "Preemptible"
},
"serviceRegions": [
"europe-west10" <-----------------------
],
"pricingInfo": [
... ์ค๋ต
- Console ์์์ ํ์ธํด๋ณด๋ฉด, N1 ๊ณ์ด์ ์ ๊ณตํ์ง ์๋ ๋ฆฌ์ ์ผ๋ก ๋์ด
- API ์ ๋ณด๊ฐ ๋ง๋ ๊ฒ์ธ์ง, Console ์ ๋ณด๊ฐ ๋ง๋ ๊ฒ์ธ์ง, ์๋๋ฉด opt-in ์ค์ ๋ฑ์ ๊ณ์ ์์กด ๋ฌธ์ ์ธ์ง ํ์ธ์ด ํ์ํจ
- ๋ํ, Web ์ ๋ณด์ ๊ฒฝ์ฐ์๋ ์ ์ฒด ์ ์ผ๋ก "europe-west10" ๋ฆฌ์ ์ ๋ณด๋ ์ ๊ณตํ๊ณ ์์ง ์์ => ์ด์ ๋ ๋ชจ๋ฅด๊ฒ ์ง๋ง, ๋ชจ๋ ๊ฐ๊ฒฉ ์ ๋ณด๋ฅผ ์ ๊ณตํ๊ณ ์์ง ์๋ ๊ฒ์ผ๋ก ์๊ฐ๋จ. => ๋๋ผ์ด๋ฒ ๊ฐ๋ฐ์ ์ ๋์ ์ธ ๋ ํผ๋ฐ์ค ์ ๋ณด๋ก ํ์ฉํ ์ ์๊ณ , ์ฐธ๊ณ ์ ๋ณด๋ก ํ์ฉ