[IaC ์ฐ๋จนํ•˜๊ธฐ] 1. IaC๋ž€ ๋ฌด์—‡์ธ๊ฐ€?

๋Œ€์—ฐ.

ยท

2022. 10. 6. 16:30

728x90

๐Ÿ—“๏ธ : 2022/08/22(์›”)~27(ํ† )
๐Ÿšฉ : ์„œ์šธ ๊ตฌ๋กœ๊ตฌ ๋ฒฝ์‚ฐ๋””์ง€ํ„ธ๋ฐธ๋ฆฌ 7์ฐจ 204ํ˜ธ CCCR ๊ต์œก์žฅ
๐Ÿ‘จ‍๐Ÿซ : 2022๋…„ Devops๋ฅผ ์œ„ํ•œ IaC ํด๋ผ์šฐ๋“œ ์ธํ”„๋ผ ์ž๋™ํ™” ์ „๋ฌธ๊ฐ€ ๊ณผ์ •
๐Ÿข : CCCR (ํ•œ๊ตญํด๋ผ์šฐ๋“œ์ปดํ“จํŒ…์—ฐ๊ตฌ์กฐํ•ฉ)

๋“ค์–ด๊ฐ€๊ธฐ์— ์•ž์„œ

  • ํ•ด๋‹น ๊ณผ์ •์€ ๊ตญ๋น„์ง€์› ๊ณผ์ •์ด๋ฉฐ, ๋ฌด๋ฃŒ๋กœ ์ˆ˜๊ฐ•ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • ์žฌ์ง์ž ๊ณผ์ •์ด๊ณ , ์ค‘์†Œ๊ธฐ์—… > ์ค‘๊ฒฌ/๋Œ€๊ธฐ์—… > ๊ณต๊ณต๊ธฐ๊ด€ ์ˆœ์„œ๋กœ ์„ ๋ฐœ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.
  • ๊ตญ๋น„๊ต์œก์ด๋ผ ํฐ ๊ธฐ๋Œ€๋Š” ํ•˜์ง€ ์•Š์•˜์œผ๋‚˜, ๊ฐ•์‚ฌ๋‹˜(๋…ธ๋ธŒ๋ ˆ์ดํฌ ์žฅ์„ฑ๊ท  ์ด์‚ฌ๋‹˜)์˜ ์ปค๋ฆฌํ˜๋Ÿผ ๋ฐ ๊ต์œก์žฅ ํ™˜๊ฒฝ์ด ์ข‹์•˜์Šต๋‹ˆ๋‹ค.
  • ๊ต์œก์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ CCCR ์•„์นด๋ฐ๋ฏธ๋ฅผ ์ฐธ๊ณ ํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.
  • ๊ต์œก ๋‚ด์šฉ์— ๋”ํ•ด ์ง์ ‘ ์ฐพ์•„๋ณด๋ฉด์„œ ๋ณด์™„ํ•œ ๋‚ด์šฉ๋“ค ๋˜ํ•œ ํฌ์ŠคํŒ…ํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

IaC๋Š” ์–ด๋–ป๊ฒŒ ์„ธ์ƒ์— ๋“ฑ์žฅํ•˜๊ฒŒ ๋˜์—ˆ๋Š”๊ฐ€?

๊ธฐ์กด ์ธํ”„๋ผ ๊ด€๋ฆฌ์˜ ์–ด๋ ค์›€

IaC ๋“ฑ์žฅ ์ด์ „์˜ ๊ด€๋ฆฌ๋Š”, ์„œ๋ฒ„๊ฐ€ ์œ„์น˜ํ•œ ๋ฌผ๋ฆฌ์  ๊ณต๊ฐ„์—์„œ KVM์„ ํ†ตํ•œ ์ ‘์† ํ˜น์€ ํ…”๋„ท, SSH ๋“ฑ์œผ๋กœ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ ์šฉํ•  ๋ชจ๋“  ์„œ๋ฒ„์— ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ด๋ฃจ์–ด์กŒ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ฌผ๋ก  ๊ทธ ์‹œ๋Œ€์˜ ์—”์ง€๋‹ˆ์–ด๋“ค์€ ๋ฐ”๋ณด๊ฐ€ ์•„๋‹ˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž‘์„ฑํ•˜์—ฌ ํ•ด๊ฒฐํ•ด๋ณด๋ ค ํ–ˆ๊ฒ ์ง€๋งŒ, ์—ฌ์ „ํžˆ ๋งŽ์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐ์ด ๋ฉ๋‹ˆ๋‹ค.

AWS EC2์˜ ๋“ฑ์žฅ

AWS, MS Azure, GCP, OCI, Alibaba Cloud, NAVER Cloud, Kakao i Cloud ๋“ฑ ์ •๋ง ์ˆ˜๋งŽ์€ CSP๋“ค์ด Public Cloud ์‹œ์žฅ์—์„œ ๊ฒฝ์Ÿํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ ์‹œ์ ์—์„œ๋Š” Pay-As-You-Go ๋ฐฉ์‹์ด ๋ชจ๋‘์—๊ฒŒ ์ต์ˆ™ํ•˜์ง€๋งŒ IaaS ์ปดํ“จํŒ… ์ž์›์˜ ๊ฒฝ์šฐ 2006๋…„์— AWS์—์„œ EC2 ์„œ๋น„์Šค๊ฐ€ ์ถœ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ธํ„ฐ๋„ท์—์„œ ๋Œ€๊ทœ๋ชจ ๋‹ค๊ตญ์  ๋น„์ฆˆ๋‹ˆ์Šค๋ฅผ ์˜์œ„ํ•˜๋Š” ๋Œ€๊ธฐ์—…์˜ ์ „์œ ๋ฌผ์ด์—ˆ๋˜ ์Šค์ผ€์ผ๋ง๊ณผ ๋ฏผ์ฒฉ์„ฑ์— ๋Œ€ํ•œ ๊ณ ๋ฏผ์„ ๊ฐœ์ธ ๊ฐœ๋ฐœ์ž๋„ ํ•จ๊ป˜ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๋Š” ์‹œ์ ์ด ์•„๋‹ˆ์—ˆ๋‚˜ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

EC2์˜ ์ถœ์‹œ์™€ ๋”๋ถˆ์–ด ๋‹น์‹œ Ruby ์–ธ์–ด๋กœ ๊ตฌํ˜„๋œ ๋ฐฑ์—”๋“œ ํ”„๋ ˆ์ž„์›Œํฌ Ruby on Rails๋ฅผ EC2์— ๋Œ€๊ทœ๋ชจ ๋ฐฐํฌํ–ˆ์„ ๋•Œ ์ƒ๊ธฐ๋Š” ํŠธ๋Ÿฌ๋ธ” ๋“ค์ด ํฌ๊ฒŒ ์ด์Šˆ๊ฐ€ ๋˜์–ด '๋ฐฐํฌ์™€ ๊ด€๋ฆฌ๋ฅผ ์ข€ ํŽธํ•˜๊ณ  ์ •๊ตํ•˜๊ฒŒ ํ•  ์ˆ˜ ์—†์„๊นŒ?' ๋ผ๋Š” ๋ฌธ์ œ์˜์‹์—์„œ IaC๊ฐ€ ๋“ฑ์žฅํ–ˆ์Šต๋‹ˆ๋‹ค.

๋น„์ฆˆ๋‹ˆ์Šค ๋ฏผ์ฒฉ์„ฑ

๋น„์ฆˆ๋‹ˆ์Šค๋Š” ํ•ญ์ƒ ์‹œ์žฅ์˜ ๋ณ€ํ™”์— ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•˜๋ฉฐ, ๋น„์ฆˆ๋‹ˆ์Šค์˜ ๋Œ€๋ถ€๋ถ„์ด IT ๊ธฐ๋ฐ˜์ธ ์ง€๊ธˆ ์‹œ์ ์—์„œ๋Š” ๊ฐœ๋ฐœ๊ณผ ์ธํ”„๋ผ์˜ ๋ฏผ์ฒฉ์„ฑ์ด ๊ณง ๋น„์ฆˆ๋‹ˆ์Šค์˜ ๋ฏผ์ฒฉ์„ฑ์œผ๋กœ ์—ฐ๊ฒฐ๋˜๋Š” ์‹œ๋Œ€๊ฐ€ ์™”๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์˜จํ”„๋ ˆ๋ฏธ์Šค ์ธํ”„๋ผ๊ฐ€ ์ฃผ๋ฅ˜์ด๋˜ ์‹œ์ ˆ์— ๊ฐœ๋ฐœ์ž๊ฐ€ ์‹ ๊ทœ ์„œ๋น„์Šค ๋Ÿฐ์นญ์„ ์œ„ํ•ด ์ธํ”„๋ผ ๋‹ด๋‹น์ž์—๊ฒŒ ๋ณ€๊ฒฝ์— ๋Œ€ํ•œ ์š”์ฒญ์„ ํ–ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ด…์‹œ๋‹ค.

  1. ๊ฐœ๋ฐœ์ž๊ฐ€ ์š”๊ตฌ์‚ฌํ•ญ์„ ์ •๋ฆฌํ•ด ์ธํ”„๋ผ ๋‹ด๋‹น์—๊ฒŒ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.
  2. ์ถ”๊ฐ€ ์žฅ๋น„๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์˜ˆ์‚ฐ์„ ๋ฐฐ์ •๋ฐ›์•„ ๊ตฌ๋งคํ•ฉ๋‹ˆ๋‹ค.
  3. ์žฅ๋น„ ๋”œ๋ฆฌ๋ฒ„๋ฆฌ ๊ธฐ๊ฐ„์„ ๊ธฐ๋‹ค๋ฆฝ๋‹ˆ๋‹ค.
  4. ์ธํ”„๋ผ๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ  ๊ฐœ๋ฐœ์ž์—๊ฒŒ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.
  5. ๊ฐœ๋ฐœ์ž๋Š” ์ƒˆ๋กœ ๋ณ€๊ฒฝ๋˜๊ณ  ์ถ”๊ฐ€๋œ ์ธํ”„๋ผ์— ๋งž๋„๋ก ๊ฐœ๋ฐœํ•ฉ๋‹ˆ๋‹ค.

์˜์‚ฌ์†Œํ†ต ๊ณผ์ •์—์„œ ์˜คํ•ด๋กœ ์ธํ•œ ๋ถˆํ•„์š”ํ•œ ์‹œ๊ฐ„ ์†Œ๋ชจ๊ฐ€ ์žˆ์„ ์ˆ˜๋„ ์žˆ๊ณ , ๊ณ„ํš๋ถ€ํ„ฐ ์„œ๋น„์Šค ๋Ÿฐ์นญ๊นŒ์ง€ ์ฃผ๊ธฐ๊ฐ€ ๋„ˆ๋ฌด ๊ธธ๋ฉฐ, ๋‹จ๊ธฐ๊ฐ„์— ๋“ค์ด๋Š” ๋น„์šฉ๊ณผ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์‹œ๊ฐ„์ด ์ปค ๋ฏผ์ฒฉ์„ฑ์„ ํ™•๋ณดํ•˜๊ธฐ๊ฐ€ ์–ด๋ ค์› ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ํด๋ผ์šฐ๋“œ๊ฐ€ ๋Œ€์ค‘ํ™”๋˜๋ฉด์„œ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘ ํด๋ผ์šฐ๋“œ ์œ„์— ์ธํ”„๋ผ๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์–ด ์œ„์—์„œ ์–ธ๊ธ‰ํ–ˆ๋˜ 5๋‹จ๊ณ„ ์ค‘ 1~3๋‹จ๊ณ„๊ฐ€ ๊ฐ„์†Œํ™” ๋  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์˜จํ”„๋ ˆ๋ฏธ์Šค ์ง„์˜ ๋˜ํ•œ ํด๋ผ์šฐ๋“œ์— ์ธํ”„๋ผ ์‹œ์žฅ ์ ์œ ์œจ์„ ๋‚ด์ฃผ๋Š” ๊ฑธ ๋ณด๊ณ ๋งŒ ์žˆ์„ ์ˆœ ์—†๊ธฐ์— ๊ฐ€์ƒํ™” ์†”๋ฃจ์…˜ ๋ฒค๋”๋“ค ๋˜ํ•œ ๋ณ€ํ™”์— ๋งž์ถฐ API ์ง€์› ๋ฐ ๊ด€๋ฆฌ๋ฅผ ์šฉ์ดํ•˜๊ฒŒ ํ•˜๋Š” ๊ฐ์ข… ์†”๋ฃจ์…˜๊ณผ ์ง€์›์„ ๊พธ์ค€ํžˆ ํ•˜๊ณ ์žˆ๊ณ , HPE์˜ ๊ฒฝ์šฐ ์˜จํ”„๋ ˆ๋ฏธ์Šค ์ธํ”„๋ผ๋ฅผ ๋Œ€์—ฌํ•˜๋Š” GreenLake ์„œ๋น„์Šค๋ฅผ ์ถœ์‹œํ•˜๋Š” ๋“ฑ ์ด์— ๋Œ€์‘ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

(๋œฌ๊ธˆ์—†๋Š” ์‚ฌ์กฑ : ์˜จํ”„๋ ˆ๋ฏธ์Šค์™€ ํด๋ผ์šฐ๋“œ๋Š” ์ƒํ˜ธ๋ณด์™„๊ด€๊ณ„๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.)

์—ฌํŠผ ์ธํ”„๋ผ ์šด์˜๊ด€๋ฆฌ ๋ฐ ์•„ํ‚คํ…์ณ์˜ ์—ญํ• ์ด ์ ์  ๊ฐœ๋ฐœ์ž ์ชฝ์œผ๋กœ ๋„˜์–ด๊ฐ€๋ฉด์„œ (๋‚ด ๋ฐฅ์ค„..) ๋˜ ๋‹ค๋ฅธ ๊ณ ๋ฏผ์ด ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค.

  1. ๋‹ค์ˆ˜๊ฐ€ ํ˜‘์—…ํ•˜๋Š” ๊ณผ์ •์—์„œ ์ธํ”„๋ผ ๋ช…์„ธ๋ฅผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์—†์„๊นŒ?
  2. ์ธํ”„๋ผ ๋ณ€๊ฒฝ์„ ์ถ”์ ํ•˜๊ณ  ๊ธฐ๋กํ•  ์ˆ˜ ์—†์„๊นŒ?
  3. ๋ฐ˜๋ณต๋˜๋Š” ์ž‘์—…์„ ํŽธํ•˜๊ฒŒ ํ•  ์ˆ˜ ์—†์„๊นŒ?
  4. ํœด๋จผ ์—๋Ÿฌ๋ฅผ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์„๊นŒ?
  5. ๋‹ค์ˆ˜์˜ CSP์™€ ์˜จํ”„๋ ˆ๋ฏธ์Šค ํ™˜๊ฒฝ์„ ๊ฐ™์ด ๊ตฌ์„ฑํ•œ ๊ฒฝ์šฐ, ์ผ๊ด€์ ์ธ ๋ฐฉ๋ฒ•์œผ๋กœ ์ธํ”„๋ผ๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์—†์„๊นŒ?

Infrastructure as a Code (์ดํ•˜ IaC)๊ฐ€ ์ด๋Ÿฌํ•œ ๊ณ ๋ฏผ์„ ํ•ด๊ฒฐํ•ด์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

IaC๋ž€ ๋ฌด์—‡์ธ๊ฐ€?

  • ์ˆ˜๋™ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์•„๋‹Œ ์ฝ”๋“œ๋ฅผ ํ†ตํ•ด ์ธํ”„๋ผ๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ํ”„๋กœ๋น„์ €๋‹ ํ•˜๋Š” ๊ฒƒ์„ ๋งํ•ฉ๋‹ˆ๋‹ค. (Red Hat)
  • ๋ชจ๋“  ๊ฒƒ์„ ์ฝ”๋“œ๋กœ ์ •์˜ํ•˜๊ณ , ์ง€์†์ ์œผ๋กœ ํ…Œ์ŠคํŠธ ๋ฐ ๋”œ๋ฆฌ๋ฒ„๋ฆฌํ•˜๋ฉฐ, ์ž‘๊ณ  ๋Š์Šจํ•˜๊ฒŒ ๊ฒฐํ•ฉ๋œ ์กฐ๊ฐ์œผ๋กœ ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•œ๋‹ค (Kief Morris, Infrastructure as Code: Dynamic Systems for the Cloud Age)

๊ธฐ์กด์˜ ์Šคํฌ๋ฆฝํŒ…, ํ˜น์€ ๋…ธ๊ฐ€๋‹ค๋กœ ์ž์›์„ ํ”„๋กœ๋น„์ €๋‹ํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์„ ๋ฒ—์–ด๋‚˜ ์ฝ”๋“œ๋กœ ์ธํ”„๋ผ์˜ ๊ตฌ์„ฑ์„ ์ •์˜ํ•˜๊ณ  ํ”„๋กœ๋น„์ €๋‹/๊ด€๋ฆฌ๋ฅผ ๋Œ€์‹  ํ•ด์ฃผ๋Š” ๋„๊ตฌ๋ผ๊ณ  ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

  1. ๋‹ค์ˆ˜๊ฐ€ ํ˜‘์—…ํ•˜๋Š” ๊ณผ์ •์—์„œ ์ธํ”„๋ผ ๋ช…์„ธ๋ฅผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์—†์„๊นŒ? 
    => ์ฝ”๋“œ๋กœ ์ธํ”„๋ผ๋ฅผ ์ž‘์„ฑํ•˜๊ฒŒ ๋˜์–ด ๋ˆ„๊ตฌ๋‚˜ ์ฝ๊ณ  ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 
  2. ์ธํ”„๋ผ ๋ณ€๊ฒฝ์„ ์ถ”์ ํ•˜๊ณ  ๊ธฐ๋กํ•  ์ˆ˜ ์—†์„๊นŒ?
    => git๊ณผ ๊ฐ™์€ ํ˜•์ƒ๊ด€๋ฆฌ ๋„๊ตฌ๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ณ€๊ฒฝ์ถ”์  ๋ฐ ๊ด€๋ฆฌ๊ฐ€ ์šฉ์ดํ•ฉ๋‹ˆ๋‹ค.
  3. ๋ฐ˜๋ณต๋˜๋Š” ์ž‘์—…์„ ํŽธํ•˜๊ฒŒ ํ•  ์ˆ˜ ์—†์„๊นŒ?
    => ํ•œ ๋ฒˆ ์ž‘์„ฑ์„ ์ž˜ํ•ด๋†“์€ ํ”„๋กœ์„ธ์Šค๋Š” ๋ฐ˜๋ณต์ ์œผ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
  4. ํœด๋จผ ์—๋Ÿฌ๋ฅผ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์„๊นŒ?
    => 100% ์—†์• ์ง€๋Š” ๋ชปํ•˜๊ฒ ์œผ๋‚˜, ์˜คํƒ€ ๋“ฑ์œผ๋กœ ๋ฐœ์ƒํ•˜๋Š” ์‚ฌ์†Œํ•˜์ง€๋งŒ ํฐ ์‹ค์ˆ˜๋ฅผ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  5. ๋‹ค์ˆ˜์˜ CSP์™€ ์˜จํ”„๋ ˆ๋ฏธ์Šค ํ™˜๊ฒฝ์„ ๊ฐ™์ด ๊ตฌ์„ฑํ•œ ๊ฒฝ์šฐ, ์ผ๊ด€์ ์ธ ๋ฐฉ๋ฒ•์œผ๋กœ ์ธํ”„๋ผ๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์—†์„๊นŒ?
    => IaC ๋„๊ตฌ์—์„œ ์ง€์›ํ•˜๋Š” ๋ฌธ๋ฒ•์œผ๋กœ ๋ช…์„ธํ•œ ์ธํ”„๋ผ ๊ตฌ์„ฑ์ด๋‚˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ†ตํ•ด ์˜จํ”„๋ ˆ๋ฏธ์Šค/๋‹ค์–‘ํ•œ CSP ๋ชจ๋‘๋ฅผ ์ง€์›ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

 

๊ฐ€๋ณ€ ์ธํ”„๋ผ VS ๋ถˆ๋ณ€ ์ธํ”„๋ผ

๊ฐ€๋ณ€ ์ธํ”„๋ผ(Mutable)

  • VM ๋ฐ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๊ฐ€๋ณ€ ์ธํ”„๋ผ์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค.
  • ์–ด๋–ค ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๋Š”์ง€, ์„ค์ •์„ ์–ด๋–ป๊ฒŒ ๋ณ€๊ฒฝํ•˜๋Š”์ง€, ์–ด๋–ค ํ”„๋กœ๊ทธ๋žจ์„ ์‚ฌ์šฉํ•˜๋Š”์ง€ ๋“ฑ์— ๋”ฐ๋ผ ๋ฉ”๋ชจ๋ฆฌ๋‚˜ VM/์ปจํ…Œ์ด๋„ˆ์˜ ์ƒํƒœ(State)๊ฐ€ ๋ณ€ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๋ถˆ๋ณ€ ์ธํ”„๋ผ(Immutable)

  • ์ด๋ฏธ์ง€๋‚˜ ํ…œํ”Œ๋ฆฟ์ด ๋ถˆ๋ณ€ ์ธํ”„๋ผ์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค.
  • ์ด๋ฏธ์ง€๋‚˜ ํ…œํ”Œ๋ฆฟ ๋“ฑ์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ ์šฉํ•  ๊ฒฝ์šฐ, ๊ธฐ์กด ์ด๋ฏธ์ง€๋‚˜ ํ…œํ”Œ๋ฆฟ์˜ ๋‚ด์šฉ์„ ๋ณ€๊ฒฝ์‹œํ‚ค๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ƒˆ๋กœ์šด ์ด๋ฏธ์ง€๋‚˜ ํ…œํ”Œ๋ฆฟ์„ ์ƒ์„ฑํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. 

 

 

์ ˆ์ฐจ์  ์–ธ์–ด VS ์„ ์–ธ์  ์–ธ์–ด

Desired State : ํ•œ๊ตญ์–ด ๋ฒˆ์—ญ์€ '์›ํ•˜๋Š” ์ƒํƒœ'์ธ๋ฐ, ๋”ฑํžˆ ์™€๋‹ฟ์ง€ ์•Š๋Š” ๋ฒˆ์—ญ์ด๋ผ ์˜์–ด ๋‹จ์–ด ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋ง ๊ทธ๋Œ€๋กœ ํŠน์ •ํ•œ ์˜๋„์™€ ๋ชฉ์ ์„ ๋‹ฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ธํ”„๋ผ๊ฐ€ ๊ฐ–์ถ”์–ด์•ผ ํ•  ์ƒํƒœ๋ฅผ ์ด๋ฆ…๋‹ˆ๋‹ค. ํ‰๋ฒ”ํ•œ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์˜ˆ๋กœ ๋“ค์ž๋ฉด, ๋ฐฉํ™”๋ฒฝ, ์Šค์œ„์น˜, WAS๋ฅผ ๊ตฌ๋™ํ•˜๊ธฐ ์œ„ํ•œ ์ปดํ“จํŒ… ์ž์›๋“ฑ์ด ๊ฐ–์ถ”์–ด ์ง€๊ณ  ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๊ตฌ์„ฑ๋˜์–ด์•ผ ํ•  ๊ฒƒ์ธ๋ฐ, ๊ทธ ๋•Œ์˜ ์ธํ”„๋ผ ์ƒํƒœ๋ฅผ Desired State๋ผ๊ณ  ์ด๋ฆ…๋‹ˆ๋‹ค.

์ ˆ์ฐจ์  ์–ธ์–ด

  • ์ ˆ์ฐจ์  ์–ธ์–ด๋ž€, ์ฝ”๋“œ์˜ ์œ„์—์„œ ์•„๋ž˜๋กœ ์ˆœ์ฐจ์ ์œผ๋กœ ์‹คํ–‰๋˜๋Š” ํŠน์„ฑ์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค.
  • ์‚ฌ์šฉ์ž๊ฐ€ ์ธํ”„๋ผ๋ฅผ Desired State์— ๋„๋‹ฌํ•˜๊ธฐ ์œ„ํ•œ ์ž‘์—… ์ผ์ฒด๋ฅผ ๊ธฐ์ˆ ํ•ฉ๋‹ˆ๋‹ค.
  • ์ถ”ํ›„ ๋‹ค๋ฃจ๊ฒŒ ๋  Ansible์ด ๋Œ€ํ‘œ์ ์ž…๋‹ˆ๋‹ค. ์–ด๋–ค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ตฌ๋™ํ•˜๊ธฐ ์œ„ํ•œ ์ผ๋ จ์˜ ํ™œ๋™(Ubuntu ๊ธฐ์ค€ apt update, apt install {A Package} {B Package} {C Package}...., ํ˜ธ์ŠคํŠธ ์„ค์ • ๋“ฑ๋“ฑ) ์ „์ฒด๋ฅผ ์‚ฌ์šฉ์ž๊ฐ€ ๊ธฐ์ˆ ํ•˜์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์„ ์–ธ์  ์–ธ์–ด

  • ์„ ์–ธ์  ์–ธ์–ด๋ž€, Desired State ๊ทธ ์ž์ฒด๋ฅผ ๊ธฐ์ˆ ํ•ฉ๋‹ˆ๋‹ค.
  • ํŠน์ • ์ธ์Šคํ„ด์Šค๋Š” ํŠน์ • Subnet์— ์†ํ•˜์—ฌ ํŠน์ • Security Group์— ์†ํ•˜๊ณ  ๋“ฑ๋“ฑ... ์ธํ”„๋ผ์˜ ์ƒํƒœ๋ฅผ ์ฝ”๋“œ๋กœ ๊ธฐ์ˆ ํ•ฉ๋‹ˆ๋‹ค.
  • ์ถ”ํ›„ ๋‹ค๋ฃจ๊ฒŒ ๋  Terraform์ด ๋Œ€ํ‘œ์ ์ž…๋‹ˆ๋‹ค. 
  • ์ฝ”๋“œ๋กœ ๊ธฐ์ˆ ํ•œ Desired State๊ฐ€ ๋ณ€๊ฒฝ๋œ๋‹ค๋ฉด, ๊ธฐ์กด Terraform์ด ๊ฐ€์ง€๊ณ  ์žˆ๋˜ State์™€ ๋น„๊ตํ•˜์—ฌ ๊ทธ ์ฐจ์ด ๋งŒํผ์„ ํƒ€๊ฒŸ ์ธํ”„๋ผ์— ๋ฐ˜์˜ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
  • Desired State์— ๋„๋‹ฌํ•˜๊ธฐ๊นŒ์ง€์˜ ์„ธ๋ถ€ ๋™์ž‘์€ ์œ ์ €๋Š” ์•Œ ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. IaC ๋„๊ตฌ์—์„œ ๊ทธ ์ฐจ์ด๋ฅผ ์ธ์‹ํ•˜๊ณ  ์„ธ๋ถ€ ๋™์ž‘์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

Agent

  • ๊ด€๋ฆฌ ๋ฐ ํ”„๋กœ๋น„์ €๋‹์— ์žˆ์–ด, ๊ด€๋ฆฌ ๋Œ€์ƒ ๊ฐ ๋…ธ๋“œ๋“ค์— Agent๋ฅผ ์„ค์น˜ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ธํ”„๋ผ ์ „์ฒด์˜ state๋ฅผ ๊ด€๋ฆฌ / ๋ช…๋ น์„ ์ˆ˜ํ–‰ํ•˜๋„๋ก ๊ตฌํ˜„ํ•œ ๋„๊ตฌ๋“ค์ด ์žˆ๊ณ , SSH ๋ฐ API, ๊ฐ CSP/๊ฐ€์ƒํ™” ๋ฒค๋”๋“ค์ด ์ œ๊ณตํ•˜๋Š” ๊ด€๋ฆฌ/์ œ์–ด ๋ชฉ์ ์˜ CLI๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ตฌํ˜„ํ•œ ๋„๊ตฌ๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • Ansible๊ณผ Terraform์€ Agentlessํ•œ ์„ค๊ณ„์‚ฌ์ƒ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
  • Agent๊ฐ€ ๊ฐ ๋…ธ๋“œ์— ๊ตฌ๋™๋˜๋Š” ๊ฒƒ์€, ์ปดํ“จํŒ… ์ž์›์ด IaC ๋„๊ตฌ์— ์˜ํ•ด ์‚ฌ์šฉ๋˜์–ด ์ปดํ“จํŒ… ์ž์› ํ™œ์šฉ์— ๋‚ญ๋น„๊ฐ€ ๋จ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
  • ๊ทธ๋ ‡๋‹ค๊ณ  ํ•ด์„œ Agentless๊ฐ€ ํ•ญ์ƒ ์žฅ์ ์„ ๊ฐ€์ง€๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. SSH ํ†ต์‹ ์„ ํ•˜๋Š” ๋„๊ตฌ์˜ ๊ฒฝ์šฐ, SSH๋ฅผ ์—ด์–ด๋‘”๋‹ค๋Š” ๊ฒƒ ์ž์ฒด๊ฐ€ ๋ณด์•ˆ์„ ์œ„ํ˜‘ํ•˜๋Š” ํฌ์ธํŠธ๊ฐ€ ๋  ์ˆ˜๋„ ์žˆ๊ณ , ์ด๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•˜์—ฌ ์ถ”๊ฐ€์ ์ธ ๋ณด์•ˆ ๋ฐ ๋„คํŠธ์›Œํฌ ์„ค์ •(Bastion Host, Security Group, ๋ฐฉํ™”๋ฒฝ ์„ค์ • ๋“ฑ)์ด ํ•„์š”ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

Push / Pull ๋ฐฉ์‹

  • Push ๋ฐฉ์‹์€ ์ค‘์•™์—์„œ ์ฝ”๋“œ๋กœ ์ •์˜๋œ ๊ด€๋ฆฌ๋Œ€์ƒ ๋…ธ๋“œ๋“ค์—๊ฒŒ ์ž‘์—…์„ ์ „์†กํ•˜์—ฌ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.
  • Pull์€ ๊ฐ ๊ด€๋ฆฌ๋Œ€์ƒ ๋…ธ๋“œ๋“ค์ด ์™ธ๋ถ€์— ์žˆ๋Š” ์ •์˜ ๋ฐ ์ž‘์—…์„ ๊ฐ€์ ธ์™€์„œ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.
  • ๋‘ ๋ฐฉ์‹์˜ ์ฐจ์ด๋Š” '์ž‘์—…์„ ๊ด€๋ฆฌ๋Œ€์ƒ ๋…ธ๋“œ๊ฐ€ ์ˆ˜๋™์ ์œผ๋กœ ๋ฐ›๋Š๋ƒ, ๋Šฅ๋™์ ์œผ๋กœ ๋•ก๊ฒจ์˜ค๋Š๋ƒ'์˜ ์ฐจ์ด๋ผ๊ณ  ๋ณด์‹œ๋ฉด ์ดํ•ด์— ๋„์›€์ด ๋˜์‹ค ๊ฒƒ์ž…๋‹ˆ๋‹ค.
  • Pull/Push ๋ฐฉ์‹ ๊ตฌ์„ฑ์— ๋”ฐ๋ผ ์‹ ๊ฒฝ์จ์•ผ ํ•˜๋Š” ๋ถ€๋ถ„์ด ๋‹ฌ๋ผ์ง€๋ฉฐ, ์ถ”ํ›„ Terraform ์†Œ๊ฐœ์—์„œ ๋‹ค๋ฃฐ ๊ธฐํšŒ๊ฐ€ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. 

์‹œ์žฅ์—์„œ ๋„๋ฆฌ ์“ฐ์ด๋Š” IaC ๋„๊ตฌ๋“ค์˜ ์—ญํ• 

 

0๊ฐœ์˜ ๋Œ“๊ธ€