์‹œ์ž‘ํ•˜๋ฉฐ

ํŒ€์›๋ถ„๊ป˜์„œ ํ˜„์žฌ ๋‚ด๊ฐ€ ์ฐธ์—ฌํ•˜๊ณ  ์žˆ๋Š” ์‹ ๊ทœ ํ”„๋กœ์ ํŠธ์™€ ๊ธฐ์กด ๊ตฌ์ถ•๋˜์–ด ์žˆ๋˜ ํ”„๋กœ์ ํŠธ์— AWS ์ปจํ…Œ์ด๋„ˆ ์„œ๋น„์Šค๋“ค์„ ์‚ฌ์šฉํ•˜๊ณ  Jenkins๋ฅผ ํ†ตํ•ด ๋ฐฐํฌ๋ฅผ ์ง„ํ–‰ํ•˜๋Š” ์ž‘์—…์„ ์ง„ํ–‰ํ•˜์…จ๋‹ค. ์ด์— ๋Œ€ํ•œ ๊ฒฝํ—˜์„ ๊ณต์œ ํ•˜๊ธฐ ์œ„ํ•œ ์„ธ๋ฏธ๋‚˜ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•ด๋ณด์ž!

์‚ฌ์ „์„ค๋ช…

โ€˜์ด๋Ÿฐ๊ฒŒ ์žˆ๊ตฌ๋‚˜โ€™ ํ•˜๊ณ  ๋„˜์–ด๊ฐ€๋„ ๋‚ด์šฉ

  • ELB ๋ณด๋‹ค Cluster๊ฐ€ ์šฐ์„ ์‹œ ๋œ๋‹ค.

ELB TargetGroup์ด 3๊ฐœ๋กœ ์ง€์ •๋˜์–ด ์žˆ์–ด๋„, Cluster๊ฐ€ 2๊ฐœ๋กœ ์ง€์ •๋˜์–ด ์žˆ์œผ๋ฉด 2๊ฐœ์˜ ์ธ์Šคํ„ด์Šค๋งŒ ์‚ฌ์šฉ๋œ๋‹ค.

  • EC2 ์ธ์Šคํ„ด์Šค ์•ˆ์—๋Š” Amazon Agent, Application ๋‘ ๊ฐœ์˜ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์žˆ๋‹ค.
  • Cluster๋กœ ์ง€์ •๋˜์ง€ ์•Š์€ spare ์ปจํ…Œ์ด๋„ˆ๊ฐ€ N๊ฐœ ์กด์žฌํ•œ๋‹ค.

spare ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋งŽ์„ ์ˆ˜๋ก ์„ฑ๋Šฅ์ด ์ข‹์„ ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ
spare ์ปจํ…Œ์ด๋„ˆ์—์„œ ๋ฐฐํฌ๊ฐ€ ์‹œ์ž‘๋˜๋Š”๋ฐ 1๊ฐœ์—์„œ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค 2๊ฐœ ์ด์ƒ์—์„œ ๋™์‹œ์— ๋ฐฐํฌ๋˜๋Š” ๊ฒƒ์ด ์†๋„๊ฐ€ ๋น ๋ฅด๊ธฐ ๋•Œ๋ฌธ.

  • Jenkins ๋ฐฐํฌ ์‹คํ–‰ ์‹œ spare ์ปจํ…Œ์ด๋„ˆ์— ๋ฐฐํฌ๊ฐ€ ์‹œ์ž‘๋˜๊ณ , Cluster๋กœ ์ง€์ •๋œ ์ธ์Šคํ„ด์Šค๋ฅผ ํ•ด์ œํ•˜๋Š” ์‹์œผ๋กœ ๋ฐฐํฌ๊ฐ€ ์ง„ํ–‰๋œ๋‹ค.
  • Cluster์—์„œ ์ œ์™ธ๋œ ์ธ์Šคํ„ด์Šค๋Š” drain ์ƒํƒœ๋กœ ์ „ํ™˜๋œ๋‹ค.

Jenkins

์‚ฌ์ „์„ค๋ช…์˜ ๋‹จ๊ณ„๋Œ€๋กœ ์ง€์ •๋œ Pipeline Job์— ์˜ํ•ด ๋ฐฐํฌ ๊ณผ์ •์ด ์ง„ํ–‰๋œ๋‹ค.

  • ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๋ฐ›์€ branch๋ฅผ ํŠธ๋ž˜ํ‚นํ•ด์„œ ๋ณ€๊ฒฝ ๋‚ด์šฉ์„ ์ฐพ์•„๋‚ธ๋‹ค.
  • drain ์ƒํƒœ์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ์ฐพ์•„ ๋ฐฐํฌ๊ฐ€ ์‹œ์ž‘๋œ๋‹ค.
  • ๋ฐฐํฌ๋œ ์ธ์Šคํ„ด์Šค๋“ค๋กœ Cluster๋ฅผ ์žฌ๊ตฌ์„ฑํ•˜๊ณ  ๋ฐฐํฌ ์ดํ›„ ์ž‘์—…๋“ค(Jira ์—…๋ฐ์ดํŠธ ๋“ฑ)์ด ์ง„ํ–‰๋œ๋‹ค.

์ด ๊ณผ์ • ์ค‘ ํ•œ ๊ณณ์ด๋ผ๋„ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด Jenkins ๋ฐฐํฌ๊ฐ€ ์‹คํŒจํ•œ๋‹ค.

๋งˆ์น˜๋ฉฐ

Jenkins์™€ AWS ์‚ฌ์šฉ์ด ํ•„์ˆ˜ํ™”๋ฅผ ๋„˜์–ด์„œ ๊ธฐ๋ณธ์ด ๋˜๊ณ  ์žˆ๋Š” ์š”์ฆ˜, ์ด ๋ถ€๋ถ„์— ๋Œ€ํ•œ ์ง€์‹์ด ๋งŽ์ด ๋ถ€์กฑํ•˜๋‹ค๊ณ  ๋А๊ผˆ๋‹ค. ์ด๋ฒˆ ์„ธ๋ฏธ๋‚˜๋ฅผ ํ†ตํ•ด ๋” ๊ณต๋ถ€ํ•ด์•ผ๊ฒ ๋‹ค๋Š” ์˜์ง€๋ฅผ ๊ฐ–๊ฒŒ ๋˜์—ˆ๋‹ค. (์ œ๋ฐœ ํ•˜๋Š”๊ฑฐ์•ผ ..)