์ธํ๋ผ ๊ด๋ฆฌ์ (Infra Manager)๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด Terraform์ ๋ํด ์ ์๊ณ ์์ด์ผ ํฉ๋๋ค. Terraform์ ๋ํด ์์ธํ ์์๋ณด๋ ค๋ฉด Terraform์ด๋ ๋ฌด์์ธ๊ฐ์?๋ฅผ ์ฐธ๊ณ ํ์ธ์.
Infra Manager๋ Terraform ๊ตฌ์ฑ์ ์ ์๋ ์ธํ๋ผ ๋ฆฌ์์ค์ ๊ตฌ์ฑ์ ๋ฐฐํฌํฉ๋๋ค. ์ด๋ฌํ ๊ตฌ์ฑ์ ์ฌ๋ฌ ํ์ผ๊ณผ ๋๋ ํฐ๋ฆฌ๋ก ๊ตฌ์ฑ๋ ์ ์์ง๋ง ์ง์ ์ ์ Terraform ๋ฃจํธ ๋ชจ๋์ด์ด์ผ ํฉ๋๋ค.
์ธํ๋ผ ๊ด๋ฆฌ์๋ Terraform ๊ตฌ์ฑ์ ์ง์นญํ ๋ ์ฒญ์ฌ์ง์ด๋ผ๋ ์ฉ์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค.
Google Cloud์์ Terraform์ ๋ํด ์์ธํ ์์๋ณด๋ ค๋ฉด Google Cloud์์ Terraform์ ์ฐธ๊ณ ํ์ธ์.
Google Cloud์ฉ Terraform ๋ชจ๋
๋ฆฌ์์ค๋ฅผ ํ๋ก๋น์ ๋ํ๋ ๋ชจ๋ ์ธํธ๋ Google Cloud์ฉ Terraform ์ฒญ์ฌ์ง ๋ฐ ๋ชจ๋์ ์ฐธ๊ณ ํ์ธ์. Google Cloud
Google Cloud์ฉ Terraform ๋ชจ๋์ ์ง์ ๋ง๋ค ์๋ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ชจ๋ ๋ง๋ค๊ธฐ๋ฅผ ์ฐธ๊ณ ํ์ธ์.
์ง์๋๋ Terraform ๋ฒ์
์ธํ๋ผ ๊ด๋ฆฌ์๋ ๋ค์ Terraform ๋ฒ์ ์ ์ง์ํฉ๋๋ค.
- Terraform ๋ฒ์ 1.2.3
- Terraform ๋ฒ์ 1.3.10
- Terraform ๋ฒ์ 1.4.7
- Terraform ๋ฒ์ 1.5.7
--tf-version-constraint
ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ Infra Manager๊ฐ ๋ฐฐํฌ๋ฅผ ๋ง๋๋ ๋ฐ ์ฌ์ฉํ๋ Terraform ๋ฒ์ ์ ์ง์ ํ ์ ์์ต๋๋ค.
Terraform ๋ฒ์ ์ ์ง์ ํ์ง ์์ผ๋ฉด ๊ธฐ๋ณธ์ ์ผ๋ก ์ต์ ์ง์ ๋ฒ์ ์ด ์ฌ์ฉ๋ฉ๋๋ค.
๋ฐฐํฌ๋ฅผ ์ ๋ฐ์ดํธํ ๋ Terraform ๋ฒ์ ์ ์ต์ ๋ฒ์ ์ Terraform์ผ๋ก ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. ์ง์๋๋ ์ด์ ๋ฒ์ ์ Terraform์ผ๋ก ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
ํน์ ๋ฐฐํฌ ๋๋ ์์ ๋ฒ์ ์ ๋ง๋๋ ๋ฐ ์ฌ์ฉ๋ Terraform ๋ฒ์ ์ ๋ณด๋ ค๋ฉด ๋ฐฐํฌ ์ธ๋ถ์ ๋ณด ๋ณด๊ธฐ ๋ฐ ์์ ๋ฒ์ ์ธ๋ถ์ ๋ณด ๋ณด๊ธฐ๋ฅผ ์ฐธ๊ณ ํ์ธ์.
Terraform ๊ตฌ์ฑ์ ๋ํ ์ ์ฝ ์กฐ๊ฑด
์ธํ๋ผ ๊ด๋ฆฌ์๋ฅผ ์ฌ์ฉํ์ฌ Terraform ๊ตฌ์ฑ์ ๋ฐฐํฌํ๋ ค๋ฉด ๊ตฌ์ฑ์ ๋ค์ ์ ์ฝ ์กฐ๊ฑด์ด ์์ด์ผ ํฉ๋๋ค.
- Terraform ๊ตฌ์ฑ ๊ฐ์ ๊ฐ์ธ ์ ๋ณด๋ ๋ฏผ๊ฐํ ์ ๋ณด๋ฅผ ํฌํจํ์ง ๋ง์ธ์. ์์ธํ ๋ด์ฉ์ Terraform ๊ตฌ์ฑ ๊ฐ ๋ฐ ๋ฏผ๊ฐํ ๋ฐ์ดํฐ ์น์ ์ ์ฐธ๊ณ ํ์ธ์.
- ์ ํจํ Terraform ๋ฃจํธ ๋ชจ๋์ ์ ๊ณตํด์ผ ํฉ๋๋ค. Terraform์ ํ ํ๋ฆฟ ๋๋ ์์ฑ์ ์ง์๋์ง ์์ต๋๋ค.
- ๊ตฌ์ฑ์๋ ์ง์๋๋ Terraform ๋ฒ์ ์ผ๋ก ์คํํ ์ ์๋ ๋ด์ฉ์ด ํฌํจ๋์ด์ผ ํฉ๋๋ค.
- ๋ฐฑ์๋ ๋ธ๋ก์ ์ ์ํ๋ฉด ์ ๋ฉ๋๋ค.
- ํ๋ก๋น์ ๋ ์ฌ์ฉ์ ๊ถ์ฅ๋์ง ์์ต๋๋ค. ๊ฐ๋ฅํ๋ฉด ๋ค๋ฅธ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ์ธ์. ํ๋ก๋น์ ๋์ ๊ดํ ์์ธํ ๋ด์ฉ์ ํ๋ก๋น์ ๋๋ ์ตํ์ ์๋จ์ ์ฐธ๊ณ ํ์ธ์. ํ๋ก๋น์ ๋๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ Infra Manager ๋ฐํ์ ํ๊ฒฝ์ ์ธ์ ๋ ์ง ๋ณ๊ฒฝ๋ ์ ์์ต๋๋ค.
Terraform ๊ตฌ์ฑ ๊ฐ ๋ฐ ๋ฏผ๊ฐํ ๋ฐ์ดํฐ
Terraform ๊ตฌ์ฑ ๊ฐ์ ๊ฐ์ธ ์ ๋ณด๋ ๋ฏผ๊ฐํ ์ ๋ณด๋ฅผ ํฌํจํ์ง ๋ง์ธ์.
Google Cloud ์ ๊ณต์ ์ฒด ๋ฌธ์์๋ ๋ฏผ๊ฐํ ์ ๋ณด๊ฐ ํฌํจ๋ ์ ์๋ ๊ตฌ์ฑ ๊ฐ์ด ํ์๋์ด ์์ต๋๋ค.
์๋ฅผ ๋ค์ด google_storage_bucket_object
๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ๋ฉด content
์ธ์๋ฅผ ์ฌ์ฉํ์ฌ Cloud Storage ๊ฐ์ฒด๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค. ์ด ์ธ์๋ Google Cloud ์ ๊ณต์ ๋ฌธ์์ google_storage_bucket_object
ํ์ด์ง์์ ๋ฏผ๊ฐํ ๊ฒ์ผ๋ก ๋ผ๋ฒจ์ด ์ง์ ๋ฉ๋๋ค.
์ด๋ฌํ ๋ผ๋ฒจ์ ์ฌ์ฉํ์ฌ Terraform ๊ตฌ์ฑ์ ๋ง๋ค๊ฑฐ๋ ์ฌ์ฉ ์ ์ ๊ธฐ์กด Terraform ๊ตฌ์ฑ์ ๊ฒํ ํ ๋ ์๋ด๋ฅผ ๋ฐ์ ์ ์์ต๋๋ค.
ํด๋ผ์ฐ๋ ์๋น์ค์ ์ ๊ณต ๋ฐ ๊ด๋ฆฌ ์ค์ ์์งํ๊ฑฐ๋ ์์ฑํ๋ ๊ฐ์ธ ์ ๋ณด์ ์ฒ๋ฆฌ ๋ฐฉ๋ฒ์ ๊ดํ ์์ธํ ๋ด์ฉ์ Google Cloud ๊ฐ์ธ์ ๋ณด์ฒ๋ฆฌ๋ฐฉ์นจ์ ์ฐธ๊ณ ํ์ธ์. Google Cloud
Google Cloud์ฉ Terraform ์ ๊ณต์ ์ฒด ์ฌ์ฉ
Google Cloud์ฉ์ผ๋ก ์ ์ง๊ด๋ฆฌ๋๋ Terraform ์ ๊ณต์ ์ฒด๋ฅผ ์ฌ์ฉํ๋๋ก ๋ฐฐํฌ ๋ฐ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ฅผ ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
์ด ์ ํ์ ํ๋๋ฅผ ์ฌ์ฉํ๋ฉด ์ธํ๋ผ ๊ด๋ฆฌ์๊ฐ ์ ์ง๊ด๋ฆฌํ๋ Terraform ์ ๊ณต์๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐฐํฌ ๋๋ ๋ฐฐํฌ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ฅผ ๋ง๋ค๊ฑฐ๋ ์ ๋ฐ์ดํธํ ์ ์์ต๋๋ค. gcloud CLI๋ฅผ ์ฌ์ฉํ์ฌ Terraform ์ ๊ณต์ ์ฒด๋ฅผ ์ง์ ํ ์ ์์ต๋๋ค.
Infra Manager๋ ๋ค์๊ณผ ๊ฐ์ Google Cloud์ฉ Terraform ์ ๊ณต์ ์ฒด๋ฅผ ์ง์ํฉ๋๋ค.
google
google-beta
HashiCorp์์ ์ ์ง๊ด๋ฆฌํ๋ Google Cloud์ฉ Terraform ์ ๊ณต์ ์ฒด๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ์ด ํ๋๋ฅผ ์๋ตํ์ธ์.
Infra Manager์์ ์ ์ง๊ด๋ฆฌํ๋ Terraform ์ ๊ณต์ ์ฒด์ ์ฌ์ฉ์ ์ง์ ํ๋ ๋ฐฉ๋ฒ์ ์์๋ณด๋ ค๋ฉด Infrastructure Manager๋ฅผ ์ฌ์ฉํ์ฌ ์ธํ๋ผ ๋ฐฐํฌ, ๋ฐฐํฌ ์ ๋ฐ์ดํธ ๋๋ ๋ฐฐํฌ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ฅผ ์ฐธ๊ณ ํ์ธ์.
์ง์๋๋ ์ ๊ณต์ ์ฒด ๋ฒ์ ํ์ธ
Infra Manager์์ ์ง์ํ๋ Terraform ์ ๊ณต์
์ฒด ๋ฒ์ ์ ํ์ธํ๋ ค๋ฉด Infra Manager์์ ์ ์ง๊ด๋ฆฌํ๋ Cloud Storage ๋ฒํท์ manifest.json
์ ๋ค์ ํ์์ผ๋ก ํ์ธํด์ผ ํฉ๋๋ค. Google Cloud
https://storage.googleapis.com/LOCATION-im-providers/hashicorp/PROVIDER_VERSION/manifest.json
์ง์๋๋ ๋ฒ์ ์ ์ ์ฒด ๋ชฉ๋ก์ manifest.json
ํ์ผ์ versions
ํ๋์์ ํ์ธํ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด ๋ฐฐํฌ๊ฐ africa-south1
๋ฆฌ์ ์ ์๊ณ google-beta
์ ๊ณต์
์ฒด๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ https://storage.googleapis.com/africa-south1-im-providers/hashicorp/google-beta/manifest.json์ผ๋ก ์ด๋ํ์ฌ ์ฌ์ฉ ๊ฐ๋ฅํ ๋ฆฌ์ ์ ํ์ธํฉ๋๋ค.
๋ค์ ๋จ๊ณ
- Infrastructure Manager์ ๋ํด ์์ธํ ์์๋ณด์ธ์.
- ๋ฐฐํฌ๋ฅผ ๋ง๋ญ๋๋ค.
- ๋ฐฐํฌ ์ ๋ฐ์ดํธ
- ๋ฐฐํฌ ์ํ ๋ณด๊ธฐ
- ๋ฐฐํฌ ์ญ์