[Terraform] module

์†Œ์Šค์ฝ”๋“œ๋ฅผ ๋ชจ๋“ˆ๋‹จ์œ„๋กœ ๋ถ„๋ฆฌํ•ด์„œ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ •๋ฆฌํ•œ๋‹ค.



Root ๋””๋ ‰ํ„ฐ๋ฆฌ

terraform์€ ๊ธฐ๋ณธ์ ์œผ๋กœ root ๊ฒฝ๋กœ์— ์กด์žฌํ•˜๋Š” .tf ์†Œ์Šค์ฝ”๋“œ๋“ค์„ ์ „๋ถ€ ์ฝ์–ด์„œ loadํ•˜๋Š” ๋‹จ์ˆœํ•œ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง„๋‹ค.
๊ทธ๋ž˜์„œ ๋”ฐ๋กœ import๋ฅผ ํ•˜์ง€ ์•Š๋”๋ผ๋„ ๋™์ผํ•œ ๋””๋ ‰ํ„ฐ๋ฆฌ ๋‚ด์˜ ํŒŒ์ผ๋“ค๋ผ๋ฆฌ๋Š” ์ œํ•œ์—†์ด ์ ‘๊ทผํ•˜๊ณ  ๊ณต์œ ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋‹ค.




module ๋ถ„๋ฆฌ

๊ทธ๋Ÿฐ๋ฐ, ํ•œ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์˜จ๊ฐ– ์ฝ”๋“œ๋ฅผ ๋‹ค ๋ชฐ์•„๋‘๋ฉด ์žฅ๊ธฐ์ ์œผ๋กœ ๊ด€๋ฆฌ๋„ ์–ด๋ ต๋„, ๋ณด๊ธฐ๋„ ๋ถˆํŽธํ•ด์ง„๋‹ค.
์ด๋Ÿด๋•Œ๋Š” ์ ๋‹นํžˆ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ๋ถ„์‚ฐํ•ด์„œ ๊ด€๋ฆฌํ•ด์•ผ ํ•˜๋Š”๋ฐ, ์ด๊ฑธ ์œ„ํ•ด์„œ module์ด ์กด์žฌํ•œ๋‹ค.

๊ธฐ๋ณธ์ ์ธ ๊ตฌ์„ฑ๋ฐฉ๋ฒ•์€ ์–ด๋ ค์šธ๊ฒŒ ์—†๋‹ค.
๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์•„๋ฌด๋ ‡๊ฒŒ๋‚˜ ์ž˜ ํŒŒ๊ณ , ๊ฑฐ๊ธฐ์—๋‹ค๊ฐ€ tf ํŒŒ์ผ๋“ค์„ ์ ์ ˆํžˆ ๋ฐฐ์น˜ํ•œ๋‹ค.

์—ฌ๊ธฐ์„œ ์ค‘์š”ํ•œ ๊ฒƒ์€, ์ด๋Ÿฌํ•œ sub module๋“ค์€ ๋‹ค๋ฅธ ๋ชจ๋“ˆ๋“ค๊ณผ ๋…๋ฆฝ์ ์œผ๋กœ ์กด์žฌํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

๊ทธ๋ž˜์„œ ์ด๊ฑธ ๋ฉ”์ธ ์†Œ์Šค์— ํฌํ•จ์‹œํ‚ค๋ ค๋ฉด ๋ฉ”์ธ ๋ชจ๋“ˆ์— module ๊ตฌ๋ฌธ์œผ๋กœ ๋ช…์‹œ์ ์ธ import๋ฅผ ํ•ด์ค˜์•ผ ํ•œ๋‹ค.

source๊ฐ€ ์„œ๋ธŒ๋ชจ๋“ˆ์˜ ๊ฒฝ๋กœ๋‹ค.

์ด๋Ÿฌ๊ณ  ๋ฉ”์ธ ๋””๋ ‰ํ„ฐ๋ฆฌ path์—์„œ terraform init์œผ๋กœ ์ดˆ๊ธฐํ™”๋ฅผ ์‹œํ‚ค๋ฉด, ์„œ๋ธŒ๋ชจ๋“ˆ๋“ค์„ ๋ฉ”์ธ๋ชจ๋“ˆ์— ์—ฐ๋™ํ•ด์ค„ ๊ฒƒ์ด๋‹ค.




๋ชจ๋“ˆ์— ๋ณ€์ˆ˜ ์ „๋‹ฌํ•˜๊ธฐ

๊ฐ ๋ชจ๋“ˆ๋“ค์€ ๋…๋ฆฝ์ ์œผ๋กœ ์กด์žฌํ•œ๋‹ค๊ณ  ํ–ˆ์—ˆ๋‹ค.
๊ทธ๋Ÿฌ๋ฉด ๋ญ”๊ฐ€ ๋ณ€์ˆ˜๊ฐ’์„ ์ „๋‹ฌํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ?

๋ฐฉ๋ฒ•์€ ์–ด๋ ต์ง€ ์•Š๋‹ค. ์„œ๋ธŒ๋ชจ๋“ˆ์— ๋ณ€์ˆ˜๋ฅผ ์ •์˜ํ•˜๊ณ 

module import๋ฅผ ํ• ๋•Œ ์ด๋ ‡๊ฒŒ ์ „๋‹ฌํ•ด์„œ ์“ฐ๋ฉด ๋œ๋‹ค.