• Aiden's Lab แ„‚แ…ฒแ„‰แ…ณแ„…แ…ฆแ„แ…ฅ
  • Posts
  • ๐Ÿ”ญIaC แ„แ…ฎแ†ฏ, แ„‹แ…ฎแ„…แ…ตแ„‹แ…ฆแ„€แ…ฆแ„ƒแ…ฉ แ„‘แ…ตแ†ฏแ„‹แ…ญแ„’แ…กแ†ฏแ„แ…ก? - แ„‹แ…ฎแ„…แ…ต แ„แ…ตแ†ทแ„‹แ…ฆ แ„†แ…กแ†ฝแ„‚แ…ณแ†ซ IaC แ„แ…ฎแ†ฏ แ„‰แ…ฅแ†ซแ„แ…ขแ†จแ„’แ…กแ„‚แ…ณแ†ซ แ„‡แ…ฅแ†ธ & Pulumi แ„‰แ…ฉแ„€แ…ข

๐Ÿ”ญIaC แ„แ…ฎแ†ฏ, แ„‹แ…ฎแ„…แ…ตแ„‹แ…ฆแ„€แ…ฆแ„ƒแ…ฉ แ„‘แ…ตแ†ฏแ„‹แ…ญแ„’แ…กแ†ฏแ„แ…ก? - แ„‹แ…ฎแ„…แ…ต แ„แ…ตแ†ทแ„‹แ…ฆ แ„†แ…กแ†ฝแ„‚แ…ณแ†ซ IaC แ„แ…ฎแ†ฏ แ„‰แ…ฅแ†ซแ„แ…ขแ†จแ„’แ…กแ„‚แ…ณแ†ซ แ„‡แ…ฅแ†ธ & Pulumi แ„‰แ…ฉแ„€แ…ข

IaCแ„…แ…ณแ†ฏ แ„ƒแ…ฉแ„‹แ…ตแ†ธแ„’แ…ขแ„‹แ…ฃ แ„’แ…กแ„‚แ…ณแ†ซ แ„‹แ…ตแ„‹แ…ฒแ„‹แ…ช แ„แ…ฎแ†ฏ แ„‰แ…ฅแ†ซแ„แ…ขแ†จ แ„€แ…กแ„‹แ…ตแ„ƒแ…ณ, Pulumiแ„‹แ…ฆ แ„ƒแ…ขแ„’แ…ข แ„‰แ…ฉแ„€แ…ขแ„’แ…กแ†ธแ„‚แ…ตแ„ƒแ…ก.

์•ˆ๋…•ํ•˜์„ธ์š”, Aidenโ€™s Lab ๋‰ด์Šค๋ ˆํ„ฐ์ž…๋‹ˆ๋‹ค.

์„œ๋น„์Šค ๊ฐœ๋ฐœ์ด ๋๋‚˜๋ฉด ๋ฐฐํฌํ•˜๊ธฐ ์œ„ํ•ด ์šฐ๋ฆฌ๋Š” ๋ณดํ†ต ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•ฉ๋‹ˆ๋‹ค.

AWS๋‚˜ GCP, Azure ๊ฐ™์€ ํผ๋ธ”๋ฆญ ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค ๋•๋ถ„์—, ๊ทœ๋ชจ๊ฐ€ ํฌ์ง€ ์•Š์€ ํ”„๋กœ์ ํŠธ๋ผ๋ฉด ์ปดํ“จํŒ… ์„œ๋ฒ„์™€ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ, DB ์ •๋„๋งŒ ์„ค์ •์— ์‹ ๊ฒฝ์“ฐ๋ฉด ๊ธˆ๋ฐฉ ์„œ๋น„์Šค๋ฅผ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ์ฃ .

ํ•˜์ง€๋งŒ ์„œ๋น„์Šค๋‚˜ ํŒ€์˜ ๊ทœ๋ชจ๊ฐ€ ๋Š˜์–ด๋‚œ๋‹ค๋ฉด ํด๋ผ์šฐ๋“œ ์ธํ”„๋ผ ๊ด€๋ฆฌ๋Š” ์ ์  ๋ถ€๋‹ด์ด ๋ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉํ•˜๋Š” ํด๋ผ์šฐ๋“œ ์ธํ”„๋ผ ๊ตฌ์กฐ๋Š” ๋”์šฑ ๋ณต์žกํ•ด์ง€๊ณ , ์ธํ”„๋ผ ๊ตฌ์กฐ ๋ณ€๊ฒฝ์ด๋‚˜ ์šด์˜ ์ค‘ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ์ž…๋Š” ํ”ผํ•ด๋„ ์ปค์ง€๊ธฐ ๋•Œ๋ฌธ์ด์ฃ .

๊ทธ๋ž˜์„œ ์ด๋Ÿฐ ๋ถ€๋‹ด์„ ์ค„์ด๊ธฐ ์œ„ํ•ด ๋“ฑ์žฅํ•œ ๊ฒƒ์ด ๋ฐ”๋กœ, IaC(Infrastructure as Code)์ž…๋‹ˆ๋‹ค.

โ”์šฐ๋ฆฌ์—๊ฒŒ๋„ IaC๊ฐ€ ํ•„์š”ํ• ๊นŒ?

IaC๋Š” ์ด๋ฆ„์—์„œ ๋‚˜ํƒ€๋‚ด๊ณ  ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ์ธํ”„๋ผ๋ฅผ ์ฝ”๋“œ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๊ฐœ๋…์ธ๋ฐ์š”.

IaC๋Š” DevOps ๊ด€์ ์—์„œ๋„ ์ค‘์š”ํ•œ ํ‚ค์›Œ๋“œ๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

DevOps ์ ‘๊ทผ๋ฒ•์„ ํ†ตํ•ด ๊ฐœ๋ฐœ ๋‹ด๋‹น์ž์™€ ์šด์˜ ๋‹ด๋‹น์ž์˜ ๋ฐฐํฌ ํ™˜๊ฒฝ์„ ๋งž์ถœ ๋•Œ, IaC๋ฅผ ๋„์ž…ํ•˜๋ฉด ๊ฐ–๊ฐ€์ง€ ์˜ค๋ฅ˜๋‚˜ ๋ถˆ์ผ์น˜ ๋ฌธ์ œ๋ฅผ ํ”ผํ•˜๊ณ  ์ˆ˜์›”ํ•˜๊ฒŒ ๋งž์ถœ ์ˆ˜ ์žˆ์–ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐฐํฌ ์ž๋™ํ™”์— ๋„์›€์ด ๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๊ฒŒ๋‹ค๊ฐ€ IaC๋ฅผ ์ ์šฉํ•˜๋ฉด ์ธํ”„๋ผ ์—ญ์‹œ CI/CD ํŒŒ์ดํ”„๋ผ์ธ์„ ํ†ตํ•ด ํ…Œ์ŠคํŠธ ๋ฐ ๋ฒ„์ „ ์ปจํŠธ๋กค์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— DevOps ๊ด€์ ์—์„œ IaC ๋„์ž…์ด ๊ถŒ์žฅ๋˜์ฃ .

IaC๋Š” ๋น„๋‹จ ๊ทœ๋ชจ๊ฐ€ ํฐ ๊ธฐ์—…์—๋งŒ ๊ตญํ•œ๋˜๋Š” ๊ธฐ์ˆ ์ด ์•„๋‹™๋‹ˆ๋‹ค.

์˜คํžˆ๋ ค ํ•œ์ •๋œ ์ž์›์œผ๋กœ ๋งŽ์€ ์ผ์„ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๋Š” ์†Œ๊ทœ๋ชจ ํŒ€์—๊ฒŒ๋„ ์ธํ”„๋ผ ๊ด€๋ฆฌ ์ž๋™ํ™”๋Š” ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค.

IaC๋ฅผ ๋„์ž…ํ•˜๋ฉด ์ˆ˜๋™ ์ž‘์—…์œผ๋กœ ์ธํ•œ ์‹ค์ˆ˜๋ฅผ ์ค„์ด๊ณ , ๋ฐ˜๋ณต์ ์ธ ์ž‘์—…์„ ์ž๋™ํ™”ํ•˜์—ฌ ํŒ€์˜ ์ƒ์‚ฐ์„ฑ์„ ํฌ๊ฒŒ ๋†’์ผ ์ˆ˜ ์žˆ๋Š”๋ฐ์š”.

์ด๋Š” ํŒ€์ด ๋น„์ฆˆ๋‹ˆ์Šค ๊ฐ€์น˜ ์ฐฝ์ถœ์— ๋” ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ์†Œ๊ทœ๋ชจ ํŒ€์—๊ฒŒ๋„ IaC ๋„์ž…์€ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

โœจ๋‚ด ์ƒํ™ฉ์— ๋งž๋Š” IaC ํˆด์„ ๊ณ ๋ฅด๋Š” ๋ฐฉ๋ฒ•์€?

"IaC์˜ ์ค‘์š”์„ฑ์€ ์•Œ๊ฒ ๋Š”๋ฐ IaC ํˆด์ด ๋„ˆ๋ฌด ๋งŽ์•„์„œ ๊ณ ๋ฅด๊ธฐ ํž˜๋“ค์–ด์š”."

๋งž์Šต๋‹ˆ๋‹ค. ๋ฐฉ๊ธˆ ์„ค๋ช…๋“œ๋ฆฐ ๊ฒƒ์ฒ˜๋Ÿผ IaC๋Š” ํด๋ผ์šฐ๋“œ ์ธํ”„๋ผ ๊ด€๋ฆฌ์— ์ฃผ์š” ํ‚ค์›Œ๋“œ๊ฐ€ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฏธ ์—ฌ๋Ÿฌ IaC ํˆด๋“ค์ด ์„ธ์ƒ์— ๋‚˜์™”๋Š”๋ฐ์š”.

์˜คํ”ˆ์†Œ์Šค IaC ํˆด๋งŒํ•ด๋„ Terraform๋‚˜ Pulumi, Crossplane ๋“ฑ ๋‹ค์–‘ํ•˜์ฃ .

๊ทธ๋Ÿผ ๋‚ด๊ฒŒ ๋งž๋Š” IaC ํˆด์„ ๊ณ ๋ฅด๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ• ๊นŒ์š”?

์ €๋Š” ์•„๋ž˜ 3๊ฐ€์ง€ ๊ธฐ์ค€์œผ๋กœ IaC ํˆด์„ ์„ ํƒํ•˜์‹ค ๊ฒƒ์„ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค.

  1. ์‚ฌ์šฉ์ž์˜ ๊ธฐ์ˆ  ์Šคํƒ

  2. ๋Œ€์ƒ ํด๋ผ์šฐ๋“œ ๋ฐ ์„œ๋น„์Šค ์ง€์› ๋ฒ”์œ„

  3. ์ปค๋ฎค๋‹ˆํ‹ฐ ๋ฐ ์ƒํƒœ๊ณ„ ์„ฑ์ˆ™๋„

๋จผ์ € ์‚ฌ์šฉ์ž์˜ ๊ธฐ์ˆ  ์Šคํƒ์ด๋ž€, ์‚ฌ์šฉ์ž๊ฐ€ ์ด๋ฏธ ์ต์ˆ™ํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ์ˆ  ์Šคํƒ๊ณผ ์–ธ์–ด๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, Terraform์€ ์ž์ฒด์ ์ธ ๋ฌธ๋ฒ•์˜ DSL(Domain Specific Language)์„ ์‚ฌ์šฉํ•ด์„œ IaC๋ฅผ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ Terraform์„ ์‚ฌ์šฉํ•ด๋ณธ ๊ฒฝํ—˜์ด ์—†๋‹ค๋ฉด ๋ณ„๋„์˜ ๋ฌธ๋ฒ•์„ ์ƒˆ๋กœ ๋ฐฐ์›Œ์•ผ ํ•˜๋Š” ๊ฒƒ์ด ๋ถ€๋‹ด์ด ๋  ์ˆ˜ ์žˆ๊ฒ ์ฃ .

๋ฐ˜๋ฉด์— Python์ด๋‚˜ TypeScript, Go์™€ ๊ฐ™์€ ๋ฒ”์šฉ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ์ง€์›ํ•˜๋Š” Pulumi๋Š” ์ƒ๋Œ€์ ์œผ๋กœ ์ดˆ๊ธฐ ๋„์ž… ์žฅ๋ฒฝ์ด ๋‚ฎ๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‘ ๋ฒˆ์งธ๋กœ ๋Œ€์ƒ ํด๋ผ์šฐ๋“œ ๋ฐ ์„œ๋น„์Šค ์ง€์› ๋ฒ”์œ„๋Š”, ๋„์ž…ํ•˜๋ ค๋Š” IaC ํˆด์ด ํ˜„์žฌ ๋‚ด๊ฐ€ ์‚ฌ์šฉ ์ค‘์ด๊ฑฐ๋‚˜ ์•ž์œผ๋กœ ์‚ฌ์šฉํ•  ๊ณ„ํš์ด ์žˆ๋Š” ํด๋ผ์šฐ๋“œ ์ œ๊ณต์ž(AWS, GCP, Azure)์™€ ํŠน์ • ์„œ๋น„์Šค(Kubernetes ๋“ฑ)๋ฅผ ์–ผ๋งˆ๋‚˜ ์•ˆ์ •์ ์œผ๋กœ ํญ๋„“๊ฒŒ ์ง€์›ํ•˜๋Š”์ง€ ํ™•์ธํ•ด์•ผ ํ•จ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

ํŠน์ • ๋ฒค๋”์— ์ข…์†๋˜์ง€ ์•Š๊ณ  ๋ฉ€ํ‹ฐ ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์„ ๊ณ ๋ คํ•œ๋‹ค๋ฉด, ๋‹ค์–‘ํ•œ ํด๋ผ์šฐ๋“œ๋ฅผ ์ผ๊ด€๋˜๊ฒŒ ์ง€์›ํ•˜๋Š” ํˆด์ด ์œ ๋ฆฌํ•˜๊ฒ ์ฃ .

Pulumi์™€ Terraform์˜ ๊ฒฝ์šฐ, ๋ชจ๋‘ ํŠน์ • ํด๋ผ์šฐ๋“œ์— ์ข…์†๋˜์ง€ ์•Š๊ณ  ๋ฉ€ํ‹ฐ ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ ์ปค๋ฎค๋‹ˆํ‹ฐ ๋ฐ ์ƒํƒœ๊ณ„ ์„ฑ์ˆ™๋„์ž…๋‹ˆ๋‹ค.

Terraform๋Š” ์ด๋ฏธ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ปค๋ฎค๋‹ˆํ‹ฐ๊ฐ€ ํ™œ๋ฐœํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ Pulumi๋ณด๋‹ค ๋ ˆํผ๋Ÿฐ์Šค๊ฐ€ ๋งŽ์€ ํŽธ์ด์ฃ .

์œ„ 3๊ฐ€์ง€ ๊ธฐ์ค€์˜ ์ค‘์š”๋„๋Š” ์ด ๊ธ€์„ ์ฝ๊ณ  ๊ณ„์‹  ๋ถ„๋“ค๋งˆ๋‹ค ์กฐ๊ธˆ์”ฉ ๋‹ค๋ฅด์‹ค ๊ฒ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์ €๋Š” ๋„์ž…์— ๋Œ€ํ•œ ๋ถ€๋‹ด์ด ๋‚ฎ๋‹ค๋Š” ์ ์—์„œ Pulumi๋ฅผ ์—ฌ๋Ÿฌ๋ถ„๋“ค๊ป˜ ์ข€ ๋” ์†Œ๊ฐœํ•ด๋“œ๋ฆฌ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

Pulumi๋Š” ๊ฐœ๋ฐœ์ž์—๊ฒŒ ์ต์ˆ™ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ธํ”„๋ผ๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ํฐ ์žฅ์ ์„ ์ง€๋‹ˆ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ๋ณ„๋„์˜ DSL ํ•™์Šต ๋ถ€๋‹ด์„ ์ค„์—ฌ์คŒ๊ณผ ๋™์‹œ์— ๊ธฐ์กด ์–ธ์–ด์˜ ํ’๋ถ€ํ•œ ์ƒํƒœ๊ณ„์™€ ๋„๊ตฌ๋ฅผ ํ™œ์šฉํ•œ ํ…Œ์ŠคํŠธ, ์žฌ์‚ฌ์šฉ, ์ถ”์ƒํ™”์— ์œ ๋ฆฌํ•˜์ฃ .

ํŠนํžˆ ๊ธฐ์กด ๊ฐœ๋ฐœ ๋„๊ตฌ์™€ ํ…Œ์ŠคํŠธ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ๊ทธ๋Œ€๋กœ ํ™œ์šฉํ•˜์—ฌ ์ธํ”„๋ผ ์ฝ”๋“œ์˜ ํ’ˆ์งˆ์„ ๋†’์ผ ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ๋„ ์ฃผ๋ชฉํ•  ๋งŒํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ’ซPulumi๋Š” ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ• ๊นŒ?

๊ทธ๋Ÿผ ์ด์ œ Pulumi๊ฐ€ ์–ด๋–ค ๊ตฌ์กฐ๋กœ ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€ ํ•ต์‹ฌ๋งŒ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

Pulumi์˜ ํ•ต์‹ฌ ๊ตฌ์„ฑ์š”์†Œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • CLI

  • ์–ธ์–ด๋ณ„ SDK

  • ๋ฐฐํฌ ์—”์ง„

  • ์ƒํƒœ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ

์•„๊นŒ Pulumi๋Š” ๊ฐœ๋ฐœ์ž์—๊ฒŒ ์ต์ˆ™ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ์ธํ”„๋ผ ๊ด€๋ฆฌ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑ ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ํ–ˆ์—ˆ์ฃ ?

๊ทธ๋ž˜์„œ ๊ฐœ๋ฐœ์ž๋Š” ์›ํ•˜๋Š” ์–ธ์–ด๋ณ„ SDK๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ธํ”„๋ผ ๊ด€๋ฆฌ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ , Pulumi CLI๋ฅผ ํ†ตํ•ด ๋ฐฐํฌ ์—”์ง„์— ๋ช…๋ น์„ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ช…๋ น์„ ์ „๋‹ฌ ๋ฐ›์€ ๋ฐฐํฌ ์—”์ง„์€ ์ž‘์„ฑ๋œ ์ธํ”„๋ผ ๊ด€๋ฆฌ ์ฝ”๋“œ๋ฅผ ํ•ด์„ํ•˜์—ฌ ์‹ค์ œ ํด๋ผ์šฐ๋“œ ๋ฆฌ์†Œ์Šค๋ฅผ ์ƒ์„ฑ ๋ฐ ์ˆ˜์ •ํ•˜๋ฉฐ, ๊ทธ ๊ฒฐ๊ณผ๋Š” ์ƒํƒœ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์— ๊ธฐ๋ก๋ฉ๋‹ˆ๋‹ค.

์œ„ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ๊ทธ๋ฆผ์œผ๋กœ ํ‘œํ˜„ํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

Pulumi์˜ ์ƒํƒœ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์€ IaC ๊ด€์ ์—์„œ ์ค‘์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์กฐ๊ธˆ๋งŒ ๋” ์•Œ์•„๋ณผ๊ฒŒ์š”.

๋ฐฐํฌ๋œ ์ธํ”„๋ผ์˜ ์ตœ์‹  ์ƒํƒœ๋Š” ๋กœ์ปฌ ํŒŒ์ผ์ด๋‚˜ Pulumi์˜ ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค, ์•„๋‹ˆ๋ฉด S3์™€ ๊ฐ™์€ ๋ฐฑ์—”๋“œ์— ์ €์žฅํ•ด์„œ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ์š”.

์ด ์ƒํƒœ ์ •๋ณด๋Š” ์‹ค์ œ ์ธํ”„๋ผ์™€ ์ฝ”๋“œ ๊ฐ„์˜ ๋“œ๋ฆฌํ”„ํŠธ(Drift)๋ฅผ ํƒ์ง€ํ•˜๊ฑฐ๋‚˜, ๊ธฐ์กด ์ƒํƒœ๋ฅผ ์ถ”์ ํ•˜๋Š” ๋ฐ์— ๊ผญ ํ•„์š”ํ•œ ์š”์†Œ์ž…๋‹ˆ๋‹ค.

๋“œ๋ฆฌํ”„ํŠธ๋ž€, ๋ณ€๊ฒฝ๋œ ์ธํ”„๋ผ ์ƒํƒœ๊ฐ€ ์ธํ”„๋ผ ๊ด€๋ฆฌ ์ฝ”๋“œ์— ์ •์˜๋œ ๊ฒƒ๊ณผ ์ผ์น˜ํ•˜์ง€ ์•Š๋Š” ํ˜„์ƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

IaC ํˆด์˜ ํšจ์œจ์„ฑ๊ณผ ๋ณด์•ˆ์„ฑ์„ ์•ฝํ™”์‹œํ‚ฌ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋“œ๋ฆฌํ”„ํŠธ๋ฅผ ํƒ์ง€ํ•˜๋Š” ๊ฒŒ ์ค‘์š”ํ•œ๋ฐ์š”.

Pulumi๋Š” ์ž์‹ ์˜ ์ƒํƒœ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์„ ํ™œ์šฉํ•˜์—ฌ ๋“œ๋ฆฌํ”„ํŠธ๋ฅผ ํƒ์ง€ํ•˜๋Š” ๊ธฐ๋Šฅ๋„ ์ง€์›ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ‘Pulumi๋ฅผ ๋„์ž…ํ•˜๋ฉด ์–ด๋–ค ๋ณ€ํ™”๊ฐ€ ์žˆ์„๊นŒ?

๊ทธ๋ ‡๋‹ค๋ฉด ๋‚ด๊ฐ€ ์ง„ํ–‰ ์ค‘์ธ ํ”„๋กœ์ ํŠธ์— Pulumi๋ฅผ ๋„์ž…ํ•ด์„œ ์–ด๋–ค ์ด์ ์„ ์–ป์„ ์ˆ˜ ์žˆ์„๊นŒ์š”?

IaC๋ฅผ ๋„์ž…ํ•œ๋‹ค๋Š” ๊ฒƒ์€ ์ธํ”„๋ผ ๊ตฌ์ถ• ํ”„๋กœ์„ธ์Šค๋ฅผ ์ž๋™ํ™”ํ•ด์„œ ์ธํ”„๋ผ ํ”„๋กœ๋น„์ €๋‹ ๋ฐ ๊ด€๋ฆฌ์— ํ•„์š”ํ•œ ์‹œ๊ฐ„์„ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค๋Š” ๋œป์ž…๋‹ˆ๋‹ค.

๋˜ํ•œ ์ธํ”„๋ผ๋ฅผ ์ฝ”๋“œ ๋ฒ ์ด์Šค๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— Human error๋ฅผ ์ค„์ด๊ณ , ์ผ๊ด€์„ฑ ์žˆ๋Š” ํ™˜๊ฒฝ ๊ตฌ์ถ•๋„ ๊ฐ€๋Šฅํ•˜์ฃ .

์ธํ”„๋ผ ๋ณ€๊ฒฝ ์ด๋ ฅ์ด ์ฝ”๋“œ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ธฐ๋ก๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ถ”์ ๊ณผ ๋ฌธ์„œํ™”์—๋„ ์šฉ์ดํ•˜๊ณ ์š”.

ํŠนํžˆ Pulumi๋Š” ๋ฒ”์šฉ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ์ง€์›ํ•˜๊ธฐ ๋•Œ๋ฌธ์—,

  • ์ฝ”๋“œ ์ž๋™ ์™„์„ฑ

  • ์‹ค์‹œ๊ฐ„ ์˜ค๋ฅ˜ ๊ฒ€์ถœ

  • ๋ฆฌํŒฉํ† ๋ง ๋“ฑ...

IDE๊ฐ€ ์ง€์›ํ•˜๋Š” ๊ธฐ๋Šฅ๋“ค์„ ์ธํ”„๋ผ ์ฝ”๋“œ ์ž‘์„ฑ์—๋„ ๊ทธ๋Œ€๋กœ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ๋ณ„๋„์˜ ๋„๊ตฌ๋‚˜ ์–ธ์–ด๋ฅผ ๋ฐฐ์šฐ๋Š” ์‹œ๊ฐ„์„ ์ ˆ์•ฝํ•˜๋ฉด์„œ๋„ ๊ฐœ๋ฐœ ํ๋ฆ„์„ ๋Š์ง€ ์•Š์•„, ์ธํ”„๋ผ ๊ตฌ์ถ• ๋ฐ ์ˆ˜์ • ์†๋„๊ฐ€ ๋ˆˆ์— ๋„๊ฒŒ ํ–ฅ์ƒ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋˜ํ•œ ์ธํ”„๋ผ๊ฐ€ ๋ชจ๋“  ํŒ€์›์—๊ฒŒ ์ต์ˆ™ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ๊ด€๋ฆฌ๋˜๋ฉด, ๊ฐœ๋ฐœ๊ณผ ์šด์˜ ํŒ€ ๊ฐ„์˜ ์žฅ๋ฒฝ์ด ๋‚ฎ์•„์งˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ธํ”„๋ผ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ๋Œ€ํ•ด ์ฝ”๋“œ ๋ฆฌ๋ทฐ๋ฅผ ์ง„ํ–‰ํ•˜๊ณ , Git์„ ํ†ตํ•ด ๋ฒ„์ „์„ ๊ด€๋ฆฌํ•˜๋ฉฐ ํ˜‘์—…ํ•˜๋Š” ๊ฒƒ์ด ์ž์—ฐ์Šค๋Ÿฌ์›Œ ์ง€๋Š” ๊ฑฐ์ฃ .

๊ทœ๋ชจ๊ฐ€ ์–ด๋А ์ •๋„ ์žˆ๋Š” ํŒ€์ด๋ผ๋„ ๊ฐœ๋ฐœ ๋‹ด๋‹น๊ณผ ์šด์˜ ๋‹ด๋‹น ์ธ์›๋“ค ๊ฐ„์˜ ์ธํ”„๋ผ ์ดํ•ด๋„๋ฅผ ๋†’์—ฌ, ๊ฒฐ๊ณผ์ ์œผ๋กœ ๋” ๋น ๋ฅด๊ณ  ์•ˆ์ •์ ์ธ ์„œ๋น„์Šค ๋ฐฐํฌ๊ฐ€ ๊ฐ€๋Šฅํ•ด์งˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Pulumi๋Š” ์ผ๋ฐ˜ ์†Œํ”„ํŠธ์›จ์–ด ์ฝ”๋“œ์ฒ˜๋Ÿผ ์ธํ”„๋ผ ์ฝ”๋“œ์— ๋Œ€ํ•œ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ์ž‘์„ฑ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ๊ฐœ๋ฐœ์ž๋Š” ์ž์‹ ์—๊ฒŒ ์ต์ˆ™ํ•œ ํ…Œ์ŠคํŠธ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ธํ”„๋ผ ๊ด€๋ฆฌ ์ฝ”๋“œ๊ฐ€ ์˜ˆ์ƒ๋Œ€๋กœ ๋™์ž‘ํ•˜๋Š”์ง€ ๋ฏธ๋ฆฌ ๊ฒ€์ฆํ•  ์ˆ˜ ์žˆ์ฃ .

์‹ค์ œ ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์— ๋ฐฐํฌํ•˜๊ธฐ ์ „ ์ž ์žฌ์ ์ธ ์˜ค๋ฅ˜๋ฅผ ๋ฐœ๊ฒฌํ•˜๊ณ  ์ˆ˜์ •ํ•  ๊ธฐํšŒ๊ฐ€ ์ฃผ์–ด์ง€๊ธฐ ๋•Œ๋ฌธ์—, ์ธํ”„๋ผ ๋ณ€๊ฒฝ ์ž‘์—…์˜ ์‹ ๋ขฐ๋„์™€ ์•ˆ์ •์„ฑ๋„ ๋”์šฑ ๋†’์•„์งˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๐Ÿ”ญ๋งˆ๋ฌด๋ฆฌ

์ด๋ฒˆ ๊ธ€์—์„œ๋Š” IaC๋ฅผ ๋„์ž…ํ•ด์•ผ ํ•˜๋Š” ์ด์œ ์™€ IaC ํˆด ์„ ํƒ ๊ธฐ์ค€, ๊ทธ๋ฆฌ๊ณ  Pulumi์— ๋Œ€ํ•ด ์‚ดํŽด๋ดค์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ๊นŒ์ง€ ๊ธ€์„ ์ฝ์œผ์‹œ๋‹ค๋ณด๋ฉด ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ Pulumi๋ฅผ ์–ด๋–ป๊ฒŒ ๋„์ž…ํ•˜๊ณ  ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์„๊นŒ ๊ถ๊ธˆํ•˜์‹ค ์ˆ˜ ์žˆ๋Š”๋ฐ์š”.

๊ทธ๋ž˜์„œ ๋‹ค์Œ ๊ธ€์—์„œ๋Š” Pulumi ์„ค์น˜๋ถ€ํ„ฐ ์ธํ”„๋ผ ์ฝ”๋“œ ์ž‘์„ฑ, ๋ฐฐํฌ๊นŒ์ง€ Python ์–ธ์–ด๋กœ AWS ๋ฆฌ์†Œ์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ํ•ต์‹ฌ ๊ฐ€์ด๋“œ๋ฅผ ์ œ๊ณตํ•ด๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿผ ๋‹ค์Œ ๊ธ€๋„ ๊ธฐ๋Œ€ํ•ด์ฃผ์„ธ์š”!

โœจ์ด๋ฒˆ ๋‰ด์Šค๋ ˆํ„ฐ๋Š” ์–ด๋– ์…จ๋‚˜์š”?

์ด๋ฒˆ ๊ธ€์—์„œ ๋‹ค๋ฃฌ ์ฃผ์ œ์— ๋Œ€ํ•ด ์–ด๋–ป๊ฒŒ ์ƒ๊ฐํ•˜๋Š”์ง€ ์•Œ๋ ค์ฃผ์„ธ์š”! ๋‰ด์Šค๋ ˆํ„ฐ๋ฅผ ๋” ๋‚˜์€ ๋ฐฉํ–ฅ์œผ๋กœ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด ์•„๋ž˜ ํผ์—์„œ ์งง์€ ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›๊ณ  ์žˆ์–ด์š”.

๐Ÿ‘‰ ํ”ผ๋“œ๋ฐฑ ๋ณด๋‚ด๊ธฐ (1~2๋ถ„ ์†Œ์š”)

์—ฌ๋Ÿฌ๋ถ„๋“ค์˜ ์†Œ์ค‘ํ•œ ์˜๊ฒฌ์€ Aidenโ€™s Lab ๋‰ด์Šค๋ ˆํ„ฐ์—๊ฒŒ ํฐ ํž˜์ด ๋ฉ๋‹ˆ๋‹ค!

๐Ÿ”ญAidenโ€™s Lab์—์„œ ๋” ๋งŽ์€ ์•„ํ‹ฐํด์„ ๋งŒ๋‚˜๋ณด์„ธ์š”

๋ฐœํ–‰๋œ ๋‰ด์Šค๋ ˆํ„ฐ๋ฅผ ์•„์นด์ด๋น™ํ•˜๊ณ  ๋‹ค์–‘ํ•œ ์ •๋ณด๋ฅผ ๊ณต์œ ํ•˜๋Š” ๊ธฐ์ˆ  ๋ธ”๋กœ๊ทธ๋ฅผ ์šด์˜ ์ค‘์ž…๋‹ˆ๋‹ค.