ํ ํ๋ฆฟ์ ์ฌ์ฉํ ๋์ ์ฅ์ ์ค ํ๋๋ ์ปค์คํ ํ ํ๋ฆฟ ์์ฑ์ ๋ง๋ค๊ณ ์ ์ํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ํ ํ๋ฆฟ ์์ฑ์ ํ ํ๋ฆฟ ํ์ผ์ ์ ์ํ๋ ์์ ๋ณ์์ ๋๋ค. ๋ฌธ์ ์ ํ ํ๋ฆฟ์ ์ฌ์ฉํ๋ ๋ชจ๋ ๊ตฌ์ฑ ํ์ผ ๋๋ ํ ํ๋ฆฟ ํ์ผ์ ํ ํ๋ฆฟ์ ์ง์ ๋ณ๊ฒฝํ์ง ์๊ณ ํ ํ๋ฆฟ ์์ฑ ๊ฐ์ ์ ๊ณตํ ์ ์์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์์ฑ์ ์ถ์ํํ์ฌ ๊ธฐ๋ณธ ํ ํ๋ฆฟ์ ์ ๋ฐ์ดํธํ์ง ์๊ณ ๋ ๊ฐ๊ฐ์ ๊ณ ์ ๊ตฌ์ฑ์ ๋ํด ์์ฑ ๊ฐ์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด ๋ค์ ์ค์ ๋จธ์ ์ ํ์ URL์์ ํ ํ๋ฆฟ ์์ฑ์ ์ง์ ํฉ๋๋ค.
machineType: zones/{{ properties["zone"] }}/machineTypes/n1-standard-1
์ด ํ
ํ๋ฆฟ์ ์ฌ์ฉํ๋ ๊ตฌ์ฑ์์๋ ํ
ํ๋ฆฟ์ properties
์น์
์ ์๋ zone
๊ฐ์ ์ค์ ํ ์ ์์ต๋๋ค.
imports: - path: vm_template.jinja resources: - name: my-vm type: vm_template.jinja properties: zone: us-central1-a
Deployment Manager๋ ๊ธฐ๋ณธ ํ
ํ๋ฆฟ์ zone
๊ฐ์ ์ ๋ฌํ๋ค๋ ๊ฒ์ ์ธ์ํฉ๋๋ค.
์์ํ๊ธฐ ์ ์
- ์ด ๊ฐ์ด๋์ ๋ช ๋ น์ค ์์๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด 'gcloud' ๋ช ๋ น์ค ๋๊ตฌ๋ฅผ ์ค์นํฉ๋๋ค.
- ์ด ๊ฐ์ด๋์ API ์์๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด API ์ก์ธ์ค๋ฅผ ์ค์ ํฉ๋๋ค.
- ๊ธฐ๋ณธ ํ ํ๋ฆฟ์ ๋ง๋๋ ๋ฐฉ๋ฒ์ ์ดํดํฉ๋๋ค.
- ๊ตฌ์ฑ์ ๋ง๋๋ ๋ฐฉ๋ฒ์ ์ดํดํฉ๋๋ค.
ํ ํ๋ฆฟ ์์ฑ ๋ง๋ค๊ธฐ
ํ ํ๋ฆฟ ์์ฑ์ ๋ง๋ค๋ ค๋ฉด ๋ค์ ์๋ด๋ฅผ ๋ฐ๋ฅด์ธ์.
Jinja
Jinja์์๋ ๋ค์ ๊ตฌ๋ฌธ์ ์ฌ์ฉํ์ฌ ์์ฑ์ ์ ์ํฉ๋๋ค.
{{ properties["PROJECT_NAME"] }}
์๋ฅผ ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
Python
Python์์๋ ๋ค์ ๊ตฌ๋ฌธ์ ์ฌ์ฉํ์ฌ ์์ฑ์ ์ ์ํฉ๋๋ค.
context.properties["PROPERTY_NAME"]
์๋ฅผ ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ ์ฒด Python ์๋ Deployment Manager GitHub ์ ์ฅ์๋ฅผ ์ฐธ์กฐํ์ธ์.
์ต์์ ๊ตฌ์ฑ์์ ํ ํ๋ฆฟ ์์ฑ ๊ฐ ์ค์
์ต์์ ๊ตฌ์ฑ์์ ๋ค์ ๊ตฌ๋ฌธ์ ์ฌ์ฉํ์ฌ ํ ํ๋ฆฟ ์์ฑ ๊ฐ์ ์ค์ ํ ์ ์์ต๋๋ค.
imports: - path: vm_template.jinja resources: - name: my-vm type: vm_template.jinja properties: zone: us-central1-a
ํ
ํ๋ฆฟ์ ๋ชจ๋ ํ
ํ๋ฆฟ ์์ฑ์ ๊ฐ์ ์ค์ ํด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด ํ
ํ๋ฆฟ์ ํ
ํ๋ฆฟ ์์ฑ zone
, image
, network
๊ฐ ์์ผ๋ฉด ์ต์์ ๊ตฌ์ฑ์์ ์ด๋ฌํ ์์ฑ ๊ฐ์ ๋ชจ๋ ์ ์ํด์ผ ํฉ๋๋ค.
ํน์ ํ ํ๋ฆฟ ์์ฑ์ ๊ธฐ๋ณธ๊ฐ์ด ํฌํจ๋ ๊ฒฝ์ฐ, ์คํค๋ง๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฌํ ๊ธฐ๋ณธ๊ฐ์ ์ค์ ํ ์ ์์ต๋๋ค. ๊ธฐ๋ณธ๊ฐ์ด ์๋ ํ ํ๋ฆฟ ์์ฑ์ ํด๋น ๊ธฐ๋ณธ๊ฐ์ด ๋ฐฐํฌ์ ์ ํฉํ ๊ฒฝ์ฐ, ์ต์์ ๊ตฌ์ฑ์์ ์๋ตํ ์ ์์ต๋๋ค.
๋ช ๋ น์ค์์ ํ ํ๋ฆฟ ์์ฑ ๊ฐ ์ค์
ํ ํ๋ฆฟ์ ๊ฐ์ ธ์ค๋ ์์ ํ์ผ์ ํ ํ๋ฆฟ ์์ฑ ๊ฐ์ ์ง์ ํ๋ ๋์ Deployment Manager๋ Google Cloud CLI์์ ์ง์ ์ด๋ฌํ ๊ฐ์ ์ค์ ํ ์ ์์ต๋๋ค. ์ต์์ YAML ํ์ผ ๋ง๋ค๊ธฐ๋ฅผ ๊ฑด๋๋ธ ์ ์์ต๋๋ค. Deployment Manager๋ ์์ฒญ์ ์๋ ์ ๋ณด๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ฐฐํฌ์ ์ต์์ ๊ตฌ์ฑ์ ์๋์ผ๋ก ์์ฑํฉ๋๋ค.
์๋ฅผ ๋ค์ด ๋ค์ ํ
ํ๋ฆฟ์ zone
์ด๋ผ๋ ํ
ํ๋ฆฟ ์์ฑ์ด ์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค.
Google Cloud CLI๋ฅผ ์ฌ์ฉํ์ฌ ์ด ํ
ํ๋ฆฟ ํ์ผ์ ์ง์ ์ ๋ฌํ๊ณ ๋ช
๋ น์ค์์ ํ
ํ๋ฆฟ ์์ฑ ๊ฐ์ ์ง์ ํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ๋ค์ ์์ฒญ์ ํ
ํ๋ฆฟ์ ์ ๋ฌํ๊ณ ๋ช
๋ น์ค์์ ์ง์ zone
์์ฑ์ ์ง์ ํฉ๋๋ค.
gcloud deployment-manager deployments create a-single-vm --template vm_template.jinja \
--properties zone:us-central1-a
๋ค์ ์ฌํญ์ ์ ์ํ์ธ์.
๋ชจ๋ ๊ฐ์ YAML ๊ฐ์ผ๋ก ํ์ฑ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด
version: 3
์ ์ ์๋ก ์ ๋ฌ๋ฉ๋๋ค. ๋ฌธ์์ด๋ก ์ง์ ํ๋ ค๋ฉดversion: \'3\'
๊ฐ์ ์ด์ค์ผ์ดํ ์ฒ๋ฆฌ๋ ์์ ๋ฐ์ดํ๋ก ๋ฌถ์ต๋๋ค.๋ถ๋ฆฌ์ธ ๊ฐ์ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง ์์ผ๋ฏ๋ก
TRUE
,true
,True
๋ ๋ชจ๋ ๋์ผํ๊ฒ ์ทจ๊ธ๋ฉ๋๋ค.ํ ํ๋ฆฟ์ผ๋ก ์ ์๋ ๋ชจ๋ ํ์ ์์ฑ์ ์ ๋ฌํด์ผ ํฉ๋๋ค. ์์ฑ์ ํ์ ์งํฉ๋ง ์ ๊ณตํ ์๋ ์์ต๋๋ค. ํน์ ์์ฑ์ ๊ธฐ๋ณธ๊ฐ์ด ํฌํจ๋ ๊ฒฝ์ฐ, ๋ช ๋ น์ค์์ ํด๋น ์์ฑ์ ์๋ตํ ์ ์์ต๋๋ค.
์ฌ๋ฌ ์์ฑ์ ์ง์ ํ๋ ค๋ฉด ์ผํ๋ก ๊ตฌ๋ถ๋ ํค:๊ฐ ์์ ์ ๊ณตํฉ๋๋ค. ์์ ์ง์ ํ๋ ์์๋ ์ค์ํ์ง ์์ต๋๋ค. ์๋ฅผ ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
gcloud deployment-manager deployments create my-igm \ --template vm_template.jinja \ --properties zone:us-central1-a,machineType:n1-standard-1,image:debian-9
์ด ๋ช ๋ น์ด๋ฅผ ์คํํ๋ฉด Deployment Manager๋ ๊ฐ๋ฐ์๊ฐ ์ ๊ณตํ ํ ํ๋ฆฟ์ ์ฌ์ฉํ์ฌ ๋ฐฐํฌ๋ฅผ ๋ง๋ญ๋๋ค. Google Cloud ์ฝ์ ๋๋ gcloud CLI๋ฅผ ์ฌ์ฉํ์ฌ ๋ง๋ ๋ฐฐํฌ๋ฅผ ํ์ธํ ์ ์์ต๋๋ค. ๋ฐฐํฌ ๋ณด๊ธฐ์ ๋ํ ์์ธํ ๋ด์ฉ์ ๋งค๋ํ์คํธ ๋ณด๊ธฐ๋ฅผ ์ฐธ์กฐํ์ธ์.
๋ค์ ๋จ๊ณ
- ํ๊ฒฝ ๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ ํ๋ก์ ํธ ๋ฐ ๋ฐฐํฌ์ ๋ํ ์ ๋ณด๋ฅผ ์ฑ์๋๋ค.
- ํ๋ก์ ํธ์ ํ ํ๋ฆฟ์ ๋ณตํฉ ์ ํ์ผ๋ก ์๊ตฌ์ ์ผ๋ก ์ถ๊ฐํฉ๋๋ค.
- ๋ค๋ฅธ ์ฌ๋๊ณผ ๊ณต์ ํ๊ธฐ ์ํด ํ ํ๋ฆฟ์ ์ธ๋ถ์ ์ผ๋ก ํธ์คํ ํฉ๋๋ค.