์›Œํฌ๋กœ๋“œ VM์— ์ธํ„ฐ๋„ท ์•ก์„ธ์Šค ๊ตฌ์„ฑ

Google Cloud VMware Engine์˜ VMware ์›Œํฌ๋กœ๋“œ์šฉ ์ธํ„ฐ๋„ท ์•ก์„ธ์Šค ๋„คํŠธ์›Œํฌ ์„œ๋น„์Šค๋ฅผ ๋ฆฌ์ „ ๋‹จ์œ„๋กœ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. Google Cloud์˜ ์ธํ„ฐ๋„ท ์—์ง€ ๋˜๋Š” ์˜จํ”„๋ ˆ๋ฏธ์Šค ์—ฐ๊ฒฐ์„ ์‚ฌ์šฉํ•˜์—ฌ ์›Œํฌ๋กœ๋“œ VM์—์„œ ์ธํ„ฐ๋„ท ์—ฐ๊ฒฐ ํŠธ๋ž˜ํ”ฝ์„ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ธํ„ฐ๋„ท์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” ์›Œํฌ๋กœ๋“œ VM์€ Google Cloud ๋น„๊ณต๊ฐœ Google ์•ก์„ธ์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋น„์Šค์— ์•ก์„ธ์Šคํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋น„๊ณต๊ฐœ Google ์•ก์„ธ์Šค๋ฅผ ์‚ฌ์šฉํ•œ Google Cloud ์„œ๋น„์Šค ์•ก์„ธ์Šค๋Š” Google Cloud ๋„คํŠธ์›Œํฌ ๋‚ด์— ์œ ์ง€๋˜๋ฉฐ ์ธํ„ฐ๋„ท์œผ๋กœ ์ดํƒˆํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ธํ„ฐ๋„ท ์•ก์„ธ์Šค ๋„คํŠธ์›Œํฌ ์„œ๋น„์Šค๋Š” ๋‹ค์Œ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

  • ๋ฆฌ์ „๋‹น ๊ณต๊ฐœ IP ์ฃผ์†Œ ์ตœ๋Œ€ 100๊ฐœ
  • ๋ฐฉํ™”๋ฒฝ ํ…Œ์ด๋ธ”๋‹น ๋ฐฉํ™”๋ฒฝ ๊ทœ์น™ ์ตœ๋Œ€ 300๊ฐœ
  • ๋ฆฌ์ „๋‹น 128,000๊ฐœ ๋™์‹œ ์—ฐ๊ฒฐ์—์„œ ์ตœ๋Œ€ 2Gbps์˜ ์ฒ˜๋ฆฌ๋Ÿ‰
  • TCP, UDP, ICMP ํ”„๋กœํ† ์ฝœ

์ธํ„ฐ๋„ท ์•ก์„ธ์Šค ๋„คํŠธ์›Œํฌ ์„œ๋น„์Šค๋Š” ALG(์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ˆ˜์ค€ ๊ฒŒ์ดํŠธ์›จ์ด) ๊ธฐ๋Šฅ์„ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์‹œ์ž‘ํ•˜๊ธฐ ์ „์—

ํ”„๋ผ์ด๋น— ํด๋ผ์šฐ๋“œ์˜ ์ธํ„ฐ๋„ท ์•ก์„ธ์Šค ์„ค์ •์„ ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด VMware Engine์— ๋Œ€ํ•œ ๊ด€๋ฆฌ์ž ์•ก์„ธ์Šค ๊ถŒํ•œ์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ธํ„ฐ๋„ท ์•ก์„ธ์Šค๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•˜๋ ค๋ฉด ์—์ง€ ์„œ๋น„์Šค CIDR ์ฃผ์†Œ ๋ฒ”์œ„๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ธํ„ฐ๋„ท ์•ก์„ธ์Šค ๋˜๋Š” ๊ณต๊ฐœ IP ๋„คํŠธ์›Œํฌ ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•˜๋ฉด ๊ฒŒ์ดํŠธ์›จ์ด๊ฐ€ ์„œ๋น„์Šค ํ…Œ๋„ŒํŠธ ์ปจํ…์ŠคํŠธ์— ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค.

VMware Engine ์ธํ„ฐ๋„ท ๋ฐ ๊ณต๊ฐœ IP ๊ฒŒ์ดํŠธ์›จ์ด ์ฃผ์†Œ ์ง€์ •์— ์—์ง€ ์„œ๋น„์Šค CIDR ์ฃผ์†Œ ๋ฒ”์œ„๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ฃผ์†Œ ๋ฒ”์œ„๋Š” ๋‹ค์Œ ์š”๊ตฌ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ๋น„๊ณต๊ฐœ ๋ฒ”์œ„๋กœ RFC 1918์„ ์ค€์ˆ˜ํ•ฉ๋‹ˆ๋‹ค.
  • ๊ด€๋ฆฌ ์–ดํ”Œ๋ผ์ด์–ธ์Šค ๋˜๋Š” NSX ์„ธ๊ทธ๋จผํŠธ์— ์‚ฌ์šฉ๋˜๋Š” IP ์ฃผ์†Œ ๋ฒ”์œ„์™€ ๊ฐ™์ด ๋‹ค๋ฅธ VMware Engine IP ์ฃผ์†Œ ๋ฒ”์œ„์™€ ๊ฒน์น˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • Virtual Private Cloud(VPC) ๋„คํŠธ์›Œํฌ ์„œ๋ธŒ๋„ท์ด๋‚˜ ์˜จํ”„๋ ˆ๋ฏธ์Šค ๋„คํŠธ์›Œํฌ์— ์‚ฌ์šฉ๋˜๋Š” ์ฃผ์†Œ์ฒ˜๋Ÿผ VMware Engine์— ๊ณต์ง€๋œ ์ฃผ์†Œ ๋ฒ”์œ„์™€ ๊ฒน์น˜์ง€ ์•Š์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • 26๊ฐœ์˜ ์„œ๋ธŒ๋„ท ๋งˆ์Šคํฌ ๋น„ํŠธ(/26)๋กœ IP ์ฃผ์†Œ ๋ฒ”์œ„๋ฅผ ํ‘œ์‹œํ•˜์„ธ์š”.

Google Cloud CLI ๋ฐ API ์š”๊ตฌ์‚ฌํ•ญ

gcloud ๋ช…๋ น์ค„ ๋„๊ตฌ๋‚˜ API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ VMware Engine ๋ฆฌ์†Œ์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๋ ค๋ฉด ๋‹ค์Œ ์„ค๋ช…๋Œ€๋กœ ๋„๊ตฌ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

gcloud

  1. ๊ธฐ๋ณธ ํ”„๋กœ์ ํŠธ ID๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

    gcloud config set project PROJECT_ID
    
  2. ๊ธฐ๋ณธ ๋ฆฌ์ „ ๋ฐ ์˜์—ญ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

    gcloud config set compute/region REGION
    
    gcloud config set compute/zone ZONE
    

gcloud vmware ๋„๊ตฌ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ Cloud SDK ์ฐธ์กฐ ๋ฌธ์„œ๋ฅผ ๊ฒ€ํ† ํ•˜์„ธ์š”.

API

์ด ๋ฌธ์„œ ์ง‘ํ•ฉ์˜ API ์˜ˆ์‹œ๋Š” cURL ๋ช…๋ น์ค„ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ API๋ฅผ ์ฟผ๋ฆฌํ•ฉ๋‹ˆ๋‹ค. cURL ์š”์ฒญ์˜ ์ผ๋ถ€๋กœ ์œ ํšจํ•œ ์•ก์„ธ์Šค ํ† ํฐ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์œ ํšจํ•œ ์•ก์„ธ์Šค ํ† ํฐ์„ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐฉ๋ฒ•์—๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ๋‹จ๊ณ„์—์„œ๋Š” gcloud ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์•ก์„ธ์Šค ํ† ํฐ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

  1. Google Cloud์— ๋กœ๊ทธ์ธ:

    gcloud auth login
    
  2. ์•ก์„ธ์Šค ํ† ํฐ์„ ์ƒ์„ฑํ•˜์—ฌ TOKEN์œผ๋กœ ๋‚ด๋ณด๋ƒ…๋‹ˆ๋‹ค.

    export TOKEN=`gcloud auth print-access-token`
    
  3. TOKEN์ด ์ œ๋Œ€๋กœ ์„ค์ •๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

    echo $TOKEN
    

์ด์ œ API์— ๋Œ€ํ•œ ์š”์ฒญ์— ์Šน์ธ ํ† ํฐ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

curl -X GET -H "Authorization: Bearer \"$TOKEN\"" -H "Content-Type: application/json; charset=utf-8" https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations

Python

์ด ๋ฌธ์„œ์˜ Python ์ฝ”๋“œ ์ƒ˜ํ”Œ์€ VMware Engine ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ API์™€ ํ†ต์‹ ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ ‘๊ทผ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์„ค์น˜ํ•ด์•ผ ํ•˜๋ฉฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ธฐ๋ณธ ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด๋ฅผ ๊ตฌ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  1. Python ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

    pip install google-cloud-vmwareengine
    
  2. ์…ธ์—์„œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ADC ์ •๋ณด๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

    gcloud auth application-default login
    

    ๋˜๋Š” ์„œ๋น„์Šค ๊ณ„์ • ํ‚ค ํŒŒ์ผ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

    export GOOGLE_APPLICATION_CREDENTIALS="FILE_PATH"
    

๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ฐธ์กฐ ํŽ˜์ด์ง€๋ฅผ ํ™•์ธํ•˜๊ฑฐ๋‚˜ GitHub์˜ ์ฝ”๋“œ ์ƒ˜ํ”Œ์„ ํ™•์ธํ•˜์„ธ์š”.

์ธํ„ฐ๋„ท ์•ก์„ธ์Šค ์„œ๋น„์Šค ๊ตฌ์„ฑ

๋„คํŠธ์›Œํฌ ์ •์ฑ…์„ ๋งŒ๋“ค๊ฑฐ๋‚˜ ์—…๋ฐ์ดํŠธํ•˜์—ฌ ์›Œํฌ๋กœ๋“œ VM์—์„œ ์ธํ„ฐ๋„ท์— ์•ก์„ธ์Šคํ•˜๋„๋ก ํ—ˆ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ธํ„ฐ๋„ท ์•ก์„ธ์Šค ๋„คํŠธ์›Œํฌ ์„œ๋น„์Šค๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์‚ฌ์šฉ ์ค‘์ง€๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฆฌ์ „์—์„œ ์ธํ„ฐ๋„ท ์•ก์„ธ์Šค ์„œ๋น„์Šค ์‚ฌ์šฉ ์„ค์ •

์ฝ˜์†”

๋ฆฌ์ „์—์„œ ์ธํ„ฐ๋„ท ์•ก์„ธ์Šค ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

  1. Google Cloud ์ฝ˜์†”์—์„œ ๋„คํŠธ์›Œํฌ ์ •์ฑ… ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

    ๋„คํŠธ์›Œํฌ ์ •์ฑ…์œผ๋กœ ์ด๋™

  2. ํ”„๋กœ์ ํŠธ ์„ ํƒ์„ ํด๋ฆญํ•œ ๋‹ค์Œ ์ธํ„ฐ๋„ท ์•ก์„ธ์Šค ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•  VMware Engine ๋„คํŠธ์›Œํฌ๊ฐ€ ํฌํ•จ๋œ ์กฐ์ง, ํด๋” ๋˜๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  3. ๋งŒ๋“ค๊ธฐ๋ฅผ ํด๋ฆญํ•˜์—ฌ ์ƒˆ ์ •์ฑ…์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ๊ธฐ์กด ๋„คํŠธ์›Œํฌ ์ •์ฑ…์„ ์ˆ˜์ •ํ•˜๋ ค๋ฉด ํ–‰ ๋์— ์žˆ๋Š” ๋”๋ณด๊ธฐ ์•„์ด์ฝ˜์„ ํด๋ฆญํ•˜๊ณ  ์ˆ˜์ •์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  4. ์ •์ฑ…์ด ์ ์šฉ๋˜๋Š” ๋„คํŠธ์›Œํฌ ๋ฐ ๋ฆฌ์ „์„ ์„ ํƒํ•˜๋Š” ๋“ฑ ๋„คํŠธ์›Œํฌ ์ •์ฑ…์˜ ์„ธ๋ถ€์ •๋ณด๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.

  5. ์ธํ„ฐ๋„ท ์•ก์„ธ์Šค๋ฅผ ์‚ฌ์šฉ ์„ค์ •๋จ์œผ๋กœ ์ „ํ™˜ํ•˜๊ณ  ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์™ธ๋ถ€ IP ์ฃผ์†Œ ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

  6. ์—์ง€ ์„œ๋น„์Šค CIDR ํ•„๋“œ์— VMware Engine ์ธํ„ฐ๋„ท ๊ฒŒ์ดํŠธ์›จ์ด ์ฃผ์†Œ๋ฅผ ์ง€์ •ํ•  ๋•Œ ์‚ฌ์šฉํ•  ์ฃผ์†Œ ๋ฒ”์œ„(/26 ์ฃผ์†Œ ๋ฒ”์œ„)๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

  7. ๋งŒ๋“ค๊ธฐ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

์ž‘์—…์ด ์™„๋ฃŒ๋˜๋ฉด ์ผ๋ฐ˜์ ์œผ๋กœ ๋ช‡ ๋ถ„ ํ›„ ์„œ๋น„์Šค ์ƒํƒœ๊ฐ€ ์‚ฌ์šฉ ์„ค์ •๋จ์œผ๋กœ ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค.

gcloud

gcloud ๋„๊ตฌ๋กœ ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ๋„คํŠธ์›Œํฌ ์ •์ฑ…์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

gcloud vmware network-policies create NETWORK_POLICY_NAME \
    --vmware-engine-network projects/PROJECT_ID/locations/LOCATIONS/vmwareEngineNetworks/NETWORK_ID \
    --edge-services-cidr=IP_RANGE \
    --location=LOCATION \
    --internet-access

๋‹ค์Œ์„ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

  • NETWORK_POLICY_NAME: ์ด ๋„คํŠธ์›Œํฌ ์ •์ฑ…์˜ ์ด๋ฆ„.
  • NETWORK_ID: ์ด ๋„คํŠธ์›Œํฌ ์ •์ฑ…์ด ์ ์šฉ๋˜๋Š” ๋„คํŠธ์›Œํฌ์ž…๋‹ˆ๋‹ค.
  • IP_RANGE: ์ธํ„ฐ๋„ท ์•ก์„ธ์Šค ๋ฐ ์™ธ๋ถ€ IP ์•ก์„ธ์Šค ๊ฒŒ์ดํŠธ์›จ์ด์— ์‚ฌ์šฉํ•  CIDR ๋ฒ”์œ„(CIDR ํ‘œ๊ธฐ๋ฒ• ์‚ฌ์šฉ). '/26' ํ”„๋ฆฌํ”ฝ์Šค๊ฐ€ ์žˆ๋Š” RFC 1918 CIDR ๋ธ”๋ก์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
  • LOCATION: ๊ธฐ์กด ๋„คํŠธ์›Œํฌ ๋˜๋Š” ํ‘œ์ค€ ๋„คํŠธ์›Œํฌ์˜ ๋ฆฌ์ „์ธ ๊ฒฝ์šฐ global์ž…๋‹ˆ๋‹ค.

API

curl -X POST -H "Authorization: Bearer TOKEN"  -H "Content-Type: application/json; charset=utf-8" https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/networkPolicies?networkPolicyId=NETWORK_POLICY_NAME

'{
  "vmwareEngineNetwork":"projects/PROJECT_ID/locations/LOCATION/vmwareEngineNetworks/NETWORK_ID",
  "edgeServiceCidr":IP_RANGE,
  "internetAccess: {
    "enabled": true
   },
   "externalIp": {
     "enabled": true
   }
}"

๋‹ค์Œ์„ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

  • NETWORK_POLICY_NAME: ์ด ๋„คํŠธ์›Œํฌ ์ •์ฑ…์˜ ์ด๋ฆ„. ์ด ๊ฐ’์€ REGION-default ํ˜•์‹์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • PROJECT_ID: ์ด ์š”์ฒญ์˜ ํ”„๋กœ์ ํŠธ ID์ž…๋‹ˆ๋‹ค.
  • LOCATION: ๊ธฐ์กด ๋„คํŠธ์›Œํฌ ๋˜๋Š” ํ‘œ์ค€ ๋„คํŠธ์›Œํฌ์˜ ๋ฆฌ์ „์ธ ๊ฒฝ์šฐ global์ž…๋‹ˆ๋‹ค.
  • IP_RANGE: ์ธํ„ฐ๋„ท ์•ก์„ธ์Šค ๋ฐ ์™ธ๋ถ€ IP ์•ก์„ธ์Šค ๊ฒŒ์ดํŠธ์›จ์ด์— ์‚ฌ์šฉํ•  CIDR ๋ฒ”์œ„(CIDR ํ‘œ๊ธฐ๋ฒ• ์‚ฌ์šฉ). '/26' ํ”„๋ฆฌํ”ฝ์Šค๊ฐ€ ์žˆ๋Š” RFC 1918 CIDR ๋ธ”๋ก์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
  • NETWORK_ID: ์ด ๋„คํŠธ์›Œํฌ ์ •์ฑ…์˜ ๋„คํŠธ์›Œํฌ์ž…๋‹ˆ๋‹ค.

Python

from google.api_core import operation
from google.cloud import vmwareengine_v1


def create_network_policy(
    project_id: str,
    region: str,
    ip_range: str,
    internet_access: bool,
    external_ip: bool,
) -> operation.Operation:
    """
    Creates a new network policy in a given network.

    Args:
        project_id: name of the project you want to use.
        region: name of the region you want to use. I.e. "us-central1"
        ip_range: the CIDR range to use for internet access and external IP access gateways,
            in CIDR notation. An RFC 1918 CIDR block with a "/26" suffix is required.
        internet_access: should internet access be allowed.
        external_ip: should external IP addresses be assigned.

    Returns:
        An operation object representing the started operation. You can call its .result() method to wait for
        it to finish.

    Raises:
        ValueError if the provided ip_range doesn't end with /26.
    """
    if not ip_range.endswith("/26"):
        raise ValueError(
            "The ip_range needs to be an RFC 1918 CIDR block with a '/26' suffix"
        )

    network_policy = vmwareengine_v1.NetworkPolicy()
    network_policy.vmware_engine_network = f"projects/{project_id}/locations/{region}/vmwareEngineNetworks/{region}-default"
    network_policy.edge_services_cidr = ip_range
    network_policy.internet_access.enabled = internet_access
    network_policy.external_ip.enabled = external_ip

    request = vmwareengine_v1.CreateNetworkPolicyRequest()
    request.network_policy = network_policy
    request.parent = f"projects/{project_id}/locations/{region}"
    request.network_policy_id = f"{region}-default"

    client = vmwareengine_v1.VmwareEngineClient()
    return client.create_network_policy(request)

๋ฆฌ์ „์—์„œ ์ธํ„ฐ๋„ท ์•ก์„ธ์Šค ์„œ๋น„์Šค ์‚ฌ์šฉ ์ค‘์ง€

๋ฆฌ์ „์—์„œ ์ธํ„ฐ๋„ท ์•ก์„ธ์Šค ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉ ์ค‘์ง€ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

์ฝ˜์†”

  1. Google Cloud ์ฝ˜์†”์—์„œ ๋„คํŠธ์›Œํฌ ์ •์ฑ… ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

    ๋„คํŠธ์›Œํฌ ์ •์ฑ…์œผ๋กœ ์ด๋™

  2. ํ”„๋กœ์ ํŠธ ์„ ํƒ์„ ํด๋ฆญํ•œ ๋‹ค์Œ ์ธํ„ฐ๋„ท ์•ก์„ธ์Šค ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉ ์ค‘์ง€ํ•  VMware Engine ๋„คํŠธ์›Œํฌ๊ฐ€ ํฌํ•จ๋œ ์กฐ์ง, ํด๋” ๋˜๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  3. ๊ด€๋ จ ๋„คํŠธ์›Œํฌ ์ •์ฑ…์— ํ•ด๋‹นํ•˜๋Š” ํ–‰์—์„œ ๋”๋ณด๊ธฐ ์•„์ด์ฝ˜์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  4. ์ธํ„ฐ๋„ท ์•ก์„ธ์Šค๋ฅผ ์‚ฌ์šฉ ์ค‘์ง€๋จ์œผ๋กœ ์ „ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

    • ์ธํ„ฐ๋„ท ์•ก์„ธ์Šค๋ฅผ ์‚ฌ์šฉ ์ค‘์ง€ํ•˜๋ ค๋ฉด ๋จผ์ € ๊ณต๊ฐœ IP ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉ ์ค‘์ง€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • ๊ณต๊ฐœ IP ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉ ์ค‘์ง€ํ•˜๋ ค๋ฉด ๋จผ์ € ํ• ๋‹น๋œ ๊ณต๊ฐœ IP ์ฃผ์†Œ์™€ ์ง€์  ๋ฐ ์‚ฌ์ดํŠธ ๊ฐ„ VPN ๊ฒŒ์ดํŠธ์›จ์ด๋ฅผ ์‚ญ์ œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  5. ์ €์žฅ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

์ž‘์—…์ด ์™„๋ฃŒ๋˜๋ฉด ์ผ๋ฐ˜์ ์œผ๋กœ ๋ช‡ ๋ถ„ ํ›„์— ์„œ๋น„์Šค ์ƒํƒœ๊ฐ€ ์‚ฌ์šฉ ์ค‘์ง€๋จ์œผ๋กœ ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค.

gcloud

gcloud ๋„๊ตฌ๋กœ ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ๋„คํŠธ์›Œํฌ ์ •์ฑ…์„ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.

gcloud vmware network-policies update NETWORK_POLICY_NAME \
  --no-internet-access \
  --location LOCATION

๋‹ค์Œ์„ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

  • NETWORK_POLICY_NAME: ์ด ๋„คํŠธ์›Œํฌ ์ •์ฑ…์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.
  • LOCATION: ๊ธฐ์กด ๋„คํŠธ์›Œํฌ ๋˜๋Š” ํ‘œ์ค€ ๋„คํŠธ์›Œํฌ์˜ ๋ฆฌ์ „์ธ ๊ฒฝ์šฐ global์ž…๋‹ˆ๋‹ค.

API

curl -X PATCH -H "Authorization: Bearer TOKEN"  -H "Content-Type: application/json; charset=utf-8" https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/networkPolicies/NETWORK_POLICY_NAME?updateMask=internetAccess.enabled,externalIp.enabled -d "{
  "internetAccess: {
    "enabled": false
 },
  "externalIp": {
    "enabled": false
   }
}"

๋‹ค์Œ์„ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

  • PROJECT_ID: ์ด ์š”์ฒญ์˜ ํ”„๋กœ์ ํŠธ ID์ž…๋‹ˆ๋‹ค.
  • LOCATION: ๊ธฐ์กด ๋„คํŠธ์›Œํฌ ๋˜๋Š” ํ‘œ์ค€ ๋„คํŠธ์›Œํฌ์˜ ๋ฆฌ์ „์ธ ๊ฒฝ์šฐ global์ž…๋‹ˆ๋‹ค.
  • NETWORK_POLICY_NAME: ์ด ๋„คํŠธ์›Œํฌ ์ •์ฑ…์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

Python

from google.api_core import operation
from google.cloud import vmwareengine_v1


def update_network_policy(
    project_id: str, region: str, internet_access: bool, external_ip: bool
) -> operation.Operation:
    """
    Updates a network policy in a given network.

    Args:
        project_id: name of the project you want to use.
        region: name of the region you want to use. I.e. "us-central1".
        internet_access: should internet access be allowed.
        external_ip: should external IP addresses be assigned.

    Returns:
        An operation object representing the started operation. You can call its .result() method to wait for
        it to finish.
    """

    client = vmwareengine_v1.VmwareEngineClient()
    request = vmwareengine_v1.UpdateNetworkPolicyRequest()
    request.update_mask = "internetAccess.enabled,externalIp.enabled"
    network_policy = vmwareengine_v1.NetworkPolicy()
    network_policy.name = (
        f"projects/{project_id}/locations/{region}/networkPolicies/{region}-default"
    )
    network_policy.vmware_engine_network = f"projects/{project_id}/locations/{region}/vmwareEngineNetworks/{region}-default"
    network_policy.internet_access.enabled = internet_access
    network_policy.external_ip.enabled = external_ip

    request.network_policy = network_policy

    return client.update_network_policy(request)

์›Œํฌ๋กœ๋“œ ์ธํ„ฐ๋„ท ์•ก์„ธ์Šค์— ์˜จํ”„๋ ˆ๋ฏธ์Šค ์—ฐ๊ฒฐ ์‚ฌ์šฉ

์›ํ•˜๋Š” ๊ฒฝ์šฐ ์˜จํ”„๋ ˆ๋ฏธ์Šค ์—ฐ๊ฒฐ์„ ํ†ตํ•ด VMware Engine์˜ ์›Œํฌ๋กœ๋“œ VM์—์„œ ์ธํ„ฐ๋„ท ์—ฐ๊ฒฐ ํŠธ๋ž˜ํ”ฝ์„ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠธ๋ž˜ํ”ฝ์€ ๋‹ค์Œ ์ƒํƒœ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค.

  • ์˜จํ”„๋ ˆ๋ฏธ์Šค์˜ ๊ธฐ๋ณธ ๊ฒฝ๋กœ(0.0.0.0/0) ๊ณต์ง€
  • VMware Engine ๊ณต๊ฐœ IP ์„œ๋น„์Šค
  • VMware Engine ์ธํ„ฐ๋„ท ์•ก์„ธ์Šค ์„œ๋น„์Šค
  • VPC ๋„คํŠธ์›Œํฌ ๋ฐ VMware Engine ๊ฐ„ VPC ํ”ผ์–ด๋ง ์—ฐ๊ฒฐ์˜ VPC ์„œ๋น„์Šค ์ œ์–ด

์˜จํ”„๋ ˆ๋ฏธ์Šค ์—ฐ๊ฒฐ์„ ํ†ตํ•œ ์ธํ„ฐ๋„ท ํŠธ๋ž˜ํ”ฝ ๋ผ์šฐํŒ… ์‚ฌ์šฉ ์„ค์ •

์˜จํ”„๋ ˆ๋ฏธ์Šค ์—ฐ๊ฒฐ์„ ํ†ตํ•ด ์›Œํฌ๋กœ๋“œ VM์—์„œ ์ธํ„ฐ๋„ท์— ์•ก์„ธ์Šคํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋‘ ๋‹จ๊ณ„๋ฅผ ์™„๋ฃŒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  1. ์˜จํ”„๋ ˆ๋ฏธ์Šค ์—ฐ๊ฒฐ(Cloud VPN ๋˜๋Š” Cloud Interconnect)์„ ํ†ตํ•ด ์˜จํ”„๋ ˆ๋ฏธ์Šค์˜ ๊ธฐ๋ณธ ๊ฒฝ๋กœ(0.0.0.0/0)๋ฅผ ๊ณต์ง€ํ•ฉ๋‹ˆ๋‹ค. VPN์— ๋Œ€ํ•œ ์˜จํ”„๋ ˆ๋ฏธ์Šค ์—ฐ๊ฒฐ์ด ์ข…๋ฃŒ๋˜๋Š” Cloud VPN ๊ฒŒ์ดํŠธ์›จ์ด ๋˜๋Š” Cloud Router๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
  2. VMware Engine ๋„คํŠธ์›Œํฌ์˜ ์ธํ„ฐ๋„ท ์•ก์„ธ์Šค ๋ฐ ๊ณต๊ฐœ IP ์„œ๋น„์Šค๋ฅผ ์ค‘์ง€ํ•ฉ๋‹ˆ๋‹ค.

์ฝ˜์†”

  1. Google Cloud ์ฝ˜์†”์—์„œ ๋„คํŠธ์›Œํฌ ์ •์ฑ… ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

    ๋„คํŠธ์›Œํฌ ์ •์ฑ…์œผ๋กœ ์ด๋™

  2. ํ”„๋กœ์ ํŠธ ์„ ํƒ์„ ํด๋ฆญํ•œ ๋‹ค์Œ ์ธํ„ฐ๋„ท ์•ก์„ธ์Šค ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•  VMware Engine ๋„คํŠธ์›Œํฌ๊ฐ€ ํฌํ•จ๋œ ์กฐ์ง, ํด๋” ๋˜๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  3. ๊ด€๋ จ ๋„คํŠธ์›Œํฌ ์ •์ฑ…์— ํ•ด๋‹นํ•˜๋Š” ํ–‰์—์„œ ๋”๋ณด๊ธฐ ์•„์ด์ฝ˜์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  4. ๊ณต๊ฐœ IP๋ฅผ ์‚ฌ์šฉ ์ค‘์ง€๋จ์œผ๋กœ ์ „ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

  5. ์ธํ„ฐ๋„ท ์•ก์„ธ์Šค๋ฅผ ์‚ฌ์šฉ ์ค‘์ง€๋จ์œผ๋กœ ์ „ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

  6. ์ €์žฅ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  7. ๊ธฐ์กด VMware Engine ๋„คํŠธ์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ: gcloud services vpc-peerings enable-vpc-service-controls ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ VPC ๋„คํŠธ์›Œํฌ์™€ VMware Engine๊ฐ„์˜ VPC ํ”ผ์–ด๋ง ์—ฐ๊ฒฐ์— ๋Œ€ํ•œ VPC ์„œ๋น„์Šค ์ œ์–ด๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

    gcloud services vpc-peerings enable-vpc-service-controls \
       --network=VPC_NETWORK \
       --service=servicenetworking.googleapis.com

gcloud

gcloud ๋„๊ตฌ๋กœ ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ๋„คํŠธ์›Œํฌ ์ •์ฑ…์„ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.

gcloud vmware network-policies update NETWORK_POLICY_NAME \
  --no-internet-access \
  --no-external-ip-address \
  --location LOCATION

๋‹ค์Œ์„ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

  • NETWORK_POLICY_NAME: ์ด ๋„คํŠธ์›Œํฌ ์ •์ฑ…์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.
  • LOCATION: ๊ธฐ์กด ๋„คํŠธ์›Œํฌ ๋˜๋Š” ํ‘œ์ค€ ๋„คํŠธ์›Œํฌ์˜ ๋ฆฌ์ „์ธ ๊ฒฝ์šฐ global์ž…๋‹ˆ๋‹ค.

๊ธฐ์กด VMware Engine ๋„คํŠธ์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ: gcloud services vpc-peerings enable-vpc-service-controls ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ VPC ๋„คํŠธ์›Œํฌ์™€ VMware Engine๊ฐ„์˜ VPC ํ”ผ์–ด๋ง ์—ฐ๊ฒฐ์— ๋Œ€ํ•œ VPC ์„œ๋น„์Šค ์ œ์–ด๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

gcloud services vpc-peerings enable-vpc-service-controls \
   --network=VPC_NETWORK \
   --service=servicenetworking.googleapis.com

API

curl -X PATCH -H "Authorization: Bearer TOKEN"  -H "Content-Type: application/json; charset=utf-8" https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/networkPolicies/NETWORK_POLICY_NAME?updateMask=internetAccess.enabled,externalIp.enabled

"{
  "internetAccess: {
    "enabled": false
   },
  "externalIp: {
    "enabled": false
   }
}"

๊ธฐ์กด VMware Engine ๋„คํŠธ์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ: gcloud services vpc-peerings enable-vpc-service-controls ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ VPC ๋„คํŠธ์›Œํฌ์™€ VMware Engine๊ฐ„์˜ VPC ํ”ผ์–ด๋ง ์—ฐ๊ฒฐ์— ๋Œ€ํ•œ VPC ์„œ๋น„์Šค ์ œ์–ด๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

gcloud services vpc-peerings enable-vpc-service-controls \
   --network=VPC_NETWORK_NAME \
   --service=servicenetworking.googleapis.com

Python

internet_access ๋ฐ external_ip๋ฅผ False๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

from google.api_core import operation
from google.cloud import vmwareengine_v1


def update_network_policy(
    project_id: str, region: str, internet_access: bool, external_ip: bool
) -> operation.Operation:
    """
    Updates a network policy in a given network.

    Args:
        project_id: name of the project you want to use.
        region: name of the region you want to use. I.e. "us-central1".
        internet_access: should internet access be allowed.
        external_ip: should external IP addresses be assigned.

    Returns:
        An operation object representing the started operation. You can call its .result() method to wait for
        it to finish.
    """

    client = vmwareengine_v1.VmwareEngineClient()
    request = vmwareengine_v1.UpdateNetworkPolicyRequest()
    request.update_mask = "internetAccess.enabled,externalIp.enabled"
    network_policy = vmwareengine_v1.NetworkPolicy()
    network_policy.name = (
        f"projects/{project_id}/locations/{region}/networkPolicies/{region}-default"
    )
    network_policy.vmware_engine_network = f"projects/{project_id}/locations/{region}/vmwareEngineNetworks/{region}-default"
    network_policy.internet_access.enabled = internet_access
    network_policy.external_ip.enabled = external_ip

    request.network_policy = network_policy

    return client.update_network_policy(request)

๊ธฐ์กด VMware Engine ๋„คํŠธ์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ: gcloud services vpc-peerings enable-vpc-service-controls ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ VPC ๋„คํŠธ์›Œํฌ์™€ VMware Engine๊ฐ„์˜ VPC ํ”ผ์–ด๋ง ์—ฐ๊ฒฐ์— ๋Œ€ํ•œ VPC ์„œ๋น„์Šค ์ œ์–ด๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

gcloud services vpc-peerings enable-vpc-service-controls \
   --network=VPC_NETWORK \
   --service=servicenetworking.googleapis.com

ํ”„๋กœ์ ํŠธ์—์„œ ์˜จํ”„๋ ˆ๋ฏธ์Šค ์—ฐ๊ฒฐ์ด๋‚˜ VPC๋ฅผ ํ†ตํ•ด ์ธํ„ฐ๋„ท ํŠธ๋ž˜ํ”ฝ์„ ๋ผ์šฐํŒ…ํ•˜๋ ค๋ฉด VPC ์„œ๋น„์Šค ์ œ์–ด๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

VPC ์„œ๋น„์Šค ์ œ์–ด๊ฐ€ ์‚ฌ์šฉ ์„ค์ •๋˜๋ฉด Google Cloud ์„œ๋น„์Šค ํ”„๋กœ๋“€์„œ VPC ๋„คํŠธ์›Œํฌ (์ด ๊ฒฝ์šฐ VMware Engine๊ณผ ํ”ผ์–ด๋ง๋œ ์„œ๋น„์Šค ํ…Œ๋„ŒํŠธ ํ”„๋กœ์ ํŠธ)์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ผ์šฐํŒ…์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

  • IPv4 ๊ธฐ๋ณธ ๊ฒฝ๋กœ(๋Œ€์ƒ 0.0.0.0/0, ๋‹ค์Œ ํ™‰ ๊ธฐ๋ณธ ์ธํ„ฐ๋„ท ๊ฒŒ์ดํŠธ์›จ์ด)๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.
  • VPC ํ”ผ์–ด๋ง ๊ธฐ๋ณธ ๊ฒฝ๋กœ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ธํ„ฐ๋„ท ํŠธ๋ž˜ํ”ฝ ์ „๋‹ฌ์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

ํ˜„์žฌ ํ”„๋กœ์ ํŠธ์—์„œ 'my-network'๋ผ๋Š” ๋„คํŠธ์›Œํฌ๋ฅผ ํ”ผ์–ด๋งํ•˜๋Š” ์—ฐ๊ฒฐ์— VPC ์„œ๋น„์Šค ์ œ์–ด๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•˜๋ ค๋ฉด gcloud services vpc-peerings enable-vpc-service-controls ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

gcloud services vpc-peerings enable-vpc-service-controls \
    --network=my-network \
    --service=servicenetworking.googleapis.com

์˜จํ”„๋ ˆ๋ฏธ์Šค ์—ฐ๊ฒฐ์„ ํ†ตํ•œ ์ธํ„ฐ๋„ท ํŠธ๋ž˜ํ”ฝ ๋ผ์šฐํŒ… ์ค‘์ง€

์˜จํ”„๋ ˆ๋ฏธ์Šค ์—ฐ๊ฒฐ์„ ํ†ตํ•ด ์›Œํฌ๋กœ๋“œ VM์—์„œ ์ธํ„ฐ๋„ท ํŠธ๋ž˜ํ”ฝ ๋ผ์šฐํŒ…์„ ์ค‘์ง€ํ•˜๋ ค๋ฉด ๊ธฐ๋ณธ ๊ฒฝ๋กœ(0.0.0.0/0) ๊ณต์ง€๋ฅผ ์ค‘์ง€ํ•˜๊ณ  VPC ํ”ผ์–ด๋ง ์—ฐ๊ฒฐ์—์„œ VPC ์„œ๋น„์Šค ์ œ์–ด๋ฅผ ์ค‘์ง€ํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ์กด VMware Engine ๋„คํŠธ์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ: gcloud services vpc-peerings disable-vpc-service-controls ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ VPC ๋„คํŠธ์›Œํฌ์™€ VMware Engine๊ฐ„์˜ VPC ํ”ผ์–ด๋ง ์—ฐ๊ฒฐ์— ๋Œ€ํ•œ VPC ์„œ๋น„์Šค ์ œ์–ด๋ฅผ ์ค‘์ง€ํ•ฉ๋‹ˆ๋‹ค.

gcloud services vpc-peerings disable-vpc-service-controls \
    --network=VPC_NETWORK_NAME \
    --service=servicenetworking.googleapis.com

๋‹ค์Œ ๋‹จ๊ณ„