Terraform ๋ฐ Infrastructure Manager

์ธํ”„๋ผ ๊ด€๋ฆฌ์ž (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 ๊ตฌ์„ฑ ๊ฐ’์— ๊ฐœ์ธ ์ •๋ณด๋‚˜ ๋ฏผ๊ฐํ•œ ์ •๋ณด๋ฅผ ํฌํ•จํ•˜์ง€ ๋งˆ์„ธ์š”.

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์œผ๋กœ ์ด๋™ํ•˜์—ฌ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฆฌ์ „์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

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