์ํฌ๋ก๋ 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
๊ธฐ๋ณธ ํ๋ก์ ํธ ID๋ฅผ ์ค์ ํฉ๋๋ค.
gcloud config set project PROJECT_ID
๊ธฐ๋ณธ ๋ฆฌ์ ๋ฐ ์์ญ์ ์ค์ ํฉ๋๋ค.
gcloud config set compute/region REGION
gcloud config set compute/zone ZONE
gcloud vmware
๋๊ตฌ์ ๋ํ ์์ธํ ๋ด์ฉ์ Cloud SDK ์ฐธ์กฐ ๋ฌธ์๋ฅผ ๊ฒํ ํ์ธ์.
API
์ด ๋ฌธ์ ์งํฉ์ API ์์๋ cURL
๋ช
๋ น์ค ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ API๋ฅผ ์ฟผ๋ฆฌํฉ๋๋ค. cURL
์์ฒญ์ ์ผ๋ถ๋ก ์ ํจํ ์ก์ธ์ค ํ ํฐ์ด ํ์ํฉ๋๋ค. ์ ํจํ ์ก์ธ์ค ํ ํฐ์ ๊ฐ์ ธ์ค๋ ๋ฐฉ๋ฒ์๋ ์ฌ๋ฌ ๊ฐ์ง๊ฐ ์์ต๋๋ค. ๋ค์ ๋จ๊ณ์์๋ gcloud
๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ก์ธ์ค ํ ํฐ์ ์์ฑํฉ๋๋ค.
Google Cloud์ ๋ก๊ทธ์ธ:
gcloud auth login
์ก์ธ์ค ํ ํฐ์ ์์ฑํ์ฌ TOKEN์ผ๋ก ๋ด๋ณด๋ ๋๋ค.
export TOKEN=`gcloud auth print-access-token`
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์ ํต์ ํฉ๋๋ค. ์ด ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉํ๋ ค๋ฉด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํด์ผ ํ๋ฉฐ ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ๊ตฌ์ฑํด์ผ ํฉ๋๋ค.
Python ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ค์ด๋ก๋ํ๊ณ ์ค์นํฉ๋๋ค.
pip install google-cloud-vmwareengine
์ ธ์์ ๋ช ๋ น์ด๋ฅผ ์คํํ์ฌ ADC ์ ๋ณด๋ฅผ ๊ตฌ์ฑํฉ๋๋ค.
gcloud auth application-default login
๋๋ ์๋น์ค ๊ณ์ ํค ํ์ผ์ ์ฌ์ฉํฉ๋๋ค.
export GOOGLE_APPLICATION_CREDENTIALS="FILE_PATH"
๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ฐธ์กฐ ํ์ด์ง๋ฅผ ํ์ธํ๊ฑฐ๋ GitHub์ ์ฝ๋ ์ํ์ ํ์ธํ์ธ์.
์ธํฐ๋ท ์ก์ธ์ค ์๋น์ค ๊ตฌ์ฑ
๋คํธ์ํฌ ์ ์ฑ ์ ๋ง๋ค๊ฑฐ๋ ์ ๋ฐ์ดํธํ์ฌ ์ํฌ๋ก๋ VM์์ ์ธํฐ๋ท์ ์ก์ธ์คํ๋๋ก ํ์ฉํ ์ ์์ต๋๋ค.
์ธํฐ๋ท ์ก์ธ์ค ๋คํธ์ํฌ ์๋น์ค๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ฉ ์ค์ง๋์ด ์์ต๋๋ค.
๋ฆฌ์ ์์ ์ธํฐ๋ท ์ก์ธ์ค ์๋น์ค ์ฌ์ฉ ์ค์
์ฝ์
๋ฆฌ์ ์์ ์ธํฐ๋ท ์ก์ธ์ค ์๋น์ค๋ฅผ ์ฌ์ฉ ์ค์ ํ๋ ค๋ฉด ๋ค์ ๋จ๊ณ๋ฅผ ๋ฐ๋ฅด์ธ์.
Google Cloud ์ฝ์์์ ๋คํธ์ํฌ ์ ์ฑ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
ํ๋ก์ ํธ ์ ํ์ ํด๋ฆญํ ๋ค์ ์ธํฐ๋ท ์ก์ธ์ค ์๋น์ค๋ฅผ ์ฌ์ฉ ์ค์ ํ VMware Engine ๋คํธ์ํฌ๊ฐ ํฌํจ๋ ์กฐ์ง, ํด๋ ๋๋ ํ๋ก์ ํธ๋ฅผ ์ ํํฉ๋๋ค.
๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํ์ฌ ์ ์ ์ฑ ์ ๋ง๋ญ๋๋ค. ๊ธฐ์กด ๋คํธ์ํฌ ์ ์ฑ ์ ์์ ํ๋ ค๋ฉด ํ ๋์ ์๋ ๋๋ณด๊ธฐ
์์ด์ฝ์ ํด๋ฆญํ๊ณ ์์ ์ ์ ํํฉ๋๋ค.์ ์ฑ ์ด ์ ์ฉ๋๋ ๋คํธ์ํฌ ๋ฐ ๋ฆฌ์ ์ ์ ํํ๋ ๋ฑ ๋คํธ์ํฌ ์ ์ฑ ์ ์ธ๋ถ์ ๋ณด๋ฅผ ์์ฑํฉ๋๋ค.
์ธํฐ๋ท ์ก์ธ์ค๋ฅผ ์ฌ์ฉ ์ค์ ๋จ์ผ๋ก ์ ํํ๊ณ ํ์ํ ๊ฒฝ์ฐ ์ธ๋ถ IP ์ฃผ์ ์๋น์ค๋ฅผ ์ฌ์ฉ ์ค์ ํฉ๋๋ค.
์์ง ์๋น์ค CIDR ํ๋์ VMware Engine ์ธํฐ๋ท ๊ฒ์ดํธ์จ์ด ์ฃผ์๋ฅผ ์ง์ ํ ๋ ์ฌ์ฉํ ์ฃผ์ ๋ฒ์(/26 ์ฃผ์ ๋ฒ์)๋ฅผ ์ ๋ ฅํฉ๋๋ค.
๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
์์ ์ด ์๋ฃ๋๋ฉด ์ผ๋ฐ์ ์ผ๋ก ๋ช ๋ถ ํ ์๋น์ค ์ํ๊ฐ ์ฌ์ฉ ์ค์ ๋จ์ผ๋ก ๋ณ๊ฒฝ๋ฉ๋๋ค.
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
๋ฆฌ์ ์์ ์ธํฐ๋ท ์ก์ธ์ค ์๋น์ค ์ฌ์ฉ ์ค์ง
๋ฆฌ์ ์์ ์ธํฐ๋ท ์ก์ธ์ค ์๋น์ค๋ฅผ ์ฌ์ฉ ์ค์งํ๋ ค๋ฉด ๋ค์ ๋จ๊ณ๋ฅผ ๋ฐ๋ฅด์ธ์.
์ฝ์
Google Cloud ์ฝ์์์ ๋คํธ์ํฌ ์ ์ฑ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
ํ๋ก์ ํธ ์ ํ์ ํด๋ฆญํ ๋ค์ ์ธํฐ๋ท ์ก์ธ์ค ์๋น์ค๋ฅผ ์ฌ์ฉ ์ค์งํ VMware Engine ๋คํธ์ํฌ๊ฐ ํฌํจ๋ ์กฐ์ง, ํด๋ ๋๋ ํ๋ก์ ํธ๋ฅผ ์ ํํฉ๋๋ค.
๊ด๋ จ ๋คํธ์ํฌ ์ ์ฑ ์ ํด๋นํ๋ ํ์์ ๋๋ณด๊ธฐ
์์ด์ฝ์ ํด๋ฆญํฉ๋๋ค.์ธํฐ๋ท ์ก์ธ์ค๋ฅผ ์ฌ์ฉ ์ค์ง๋จ์ผ๋ก ์ ํํฉ๋๋ค.
- ์ธํฐ๋ท ์ก์ธ์ค๋ฅผ ์ฌ์ฉ ์ค์งํ๋ ค๋ฉด ๋จผ์ ๊ณต๊ฐ IP ์๋น์ค๋ฅผ ์ฌ์ฉ ์ค์งํด์ผ ํฉ๋๋ค.
- ๊ณต๊ฐ IP ์๋น์ค๋ฅผ ์ฌ์ฉ ์ค์งํ๋ ค๋ฉด ๋จผ์ ํ ๋น๋ ๊ณต๊ฐ IP ์ฃผ์์ ์ง์ ๋ฐ ์ฌ์ดํธ ๊ฐ VPN ๊ฒ์ดํธ์จ์ด๋ฅผ ์ญ์ ํด์ผ ํฉ๋๋ค.
์ ์ฅ์ ํด๋ฆญํฉ๋๋ค.
์์ ์ด ์๋ฃ๋๋ฉด ์ผ๋ฐ์ ์ผ๋ก ๋ช ๋ถ ํ์ ์๋น์ค ์ํ๊ฐ ์ฌ์ฉ ์ค์ง๋จ์ผ๋ก ๋ณ๊ฒฝ๋ฉ๋๋ค.
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
์ํฌ๋ก๋ ์ธํฐ๋ท ์ก์ธ์ค์ ์จํ๋ ๋ฏธ์ค ์ฐ๊ฒฐ ์ฌ์ฉ
์ํ๋ ๊ฒฝ์ฐ ์จํ๋ ๋ฏธ์ค ์ฐ๊ฒฐ์ ํตํด VMware Engine์ ์ํฌ๋ก๋ VM์์ ์ธํฐ๋ท ์ฐ๊ฒฐ ํธ๋ํฝ์ ์ ๋ฌํ ์ ์์ต๋๋ค. ํธ๋ํฝ์ ๋ค์ ์ํ๋ฅผ ๊ธฐ์ค์ผ๋ก ์ ๋ฌ๋ฉ๋๋ค.
- ์จํ๋ ๋ฏธ์ค์ ๊ธฐ๋ณธ ๊ฒฝ๋ก(
0.0.0.0/0
) ๊ณต์ง - VMware Engine ๊ณต๊ฐ IP ์๋น์ค
- VMware Engine ์ธํฐ๋ท ์ก์ธ์ค ์๋น์ค
- VPC ๋คํธ์ํฌ ๋ฐ VMware Engine ๊ฐ VPC ํผ์ด๋ง ์ฐ๊ฒฐ์ VPC ์๋น์ค ์ ์ด
์จํ๋ ๋ฏธ์ค ์ฐ๊ฒฐ์ ํตํ ์ธํฐ๋ท ํธ๋ํฝ ๋ผ์ฐํ ์ฌ์ฉ ์ค์
์จํ๋ ๋ฏธ์ค ์ฐ๊ฒฐ์ ํตํด ์ํฌ๋ก๋ VM์์ ์ธํฐ๋ท์ ์ก์ธ์คํ๋ ค๋ฉด ๋ค์ ๋ ๋จ๊ณ๋ฅผ ์๋ฃํด์ผ ํฉ๋๋ค.
- ์จํ๋ ๋ฏธ์ค ์ฐ๊ฒฐ(Cloud VPN ๋๋ Cloud Interconnect)์ ํตํด ์จํ๋ ๋ฏธ์ค์ ๊ธฐ๋ณธ ๊ฒฝ๋ก(
0.0.0.0/0
)๋ฅผ ๊ณต์งํฉ๋๋ค. VPN์ ๋ํ ์จํ๋ ๋ฏธ์ค ์ฐ๊ฒฐ์ด ์ข ๋ฃ๋๋ Cloud VPN ๊ฒ์ดํธ์จ์ด ๋๋ Cloud Router๋ฅผ ํ์ธํฉ๋๋ค. - VMware Engine ๋คํธ์ํฌ์ ์ธํฐ๋ท ์ก์ธ์ค ๋ฐ ๊ณต๊ฐ IP ์๋น์ค๋ฅผ ์ค์งํฉ๋๋ค.
์ฝ์
Google Cloud ์ฝ์์์ ๋คํธ์ํฌ ์ ์ฑ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
ํ๋ก์ ํธ ์ ํ์ ํด๋ฆญํ ๋ค์ ์ธํฐ๋ท ์ก์ธ์ค ์๋น์ค๋ฅผ ์ฌ์ฉ ์ค์ ํ VMware Engine ๋คํธ์ํฌ๊ฐ ํฌํจ๋ ์กฐ์ง, ํด๋ ๋๋ ํ๋ก์ ํธ๋ฅผ ์ ํํฉ๋๋ค.
๊ด๋ จ ๋คํธ์ํฌ ์ ์ฑ ์ ํด๋นํ๋ ํ์์ ๋๋ณด๊ธฐ
์์ด์ฝ์ ํด๋ฆญํฉ๋๋ค.๊ณต๊ฐ IP๋ฅผ ์ฌ์ฉ ์ค์ง๋จ์ผ๋ก ์ ํํฉ๋๋ค.
์ธํฐ๋ท ์ก์ธ์ค๋ฅผ ์ฌ์ฉ ์ค์ง๋จ์ผ๋ก ์ ํํฉ๋๋ค.
์ ์ฅ์ ํด๋ฆญํฉ๋๋ค.
๊ธฐ์กด 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
๋ก ์ค์ ํฉ๋๋ค.
๊ธฐ์กด 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
๋ค์ ๋จ๊ณ
- ํ๋ผ์ด๋น ํด๋ผ์ฐ๋์์ VM์ ๊ณต๊ฐ IP ์ฃผ์๋ฅผ ํ ๋นํ๋ ๋ฐฉ๋ฒ ์์๋ณด๊ธฐ
- ๋ฐฉํ๋ฒฝ ํ ์ด๋ธ ๋ฐ ๋ฐฉํ๋ฒฝ ๊ท์น์ด ํ๋ผ์ด๋น ํด๋ผ์ฐ๋ ๋ฆฌ์์ค์ ์ฃผ๊ณ ๋ฐ๋ ๋คํธ์ํฌ ํธ๋ํฝ์ ํํฐ๋งํ๋ ๋ฐฉ๋ฒ ์์๋ณด๊ธฐ