๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • ์žฅ์›์ต ๊ธฐ์ˆ ๋ธ”๋กœ๊ทธ
๐Ÿคท๐Ÿผ‍โ™€๏ธ Etc.../- linux, aws, docker, k8s

[Infrastructure] ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ์˜ 2๊ฐ€์ง€ ๋ฐฉ๋ฒ• (Rolling Update, Blue-Green Update)

by Wonit 2020. 11. 26.

๋ฐฐํฌ๋Š” DevOps์˜ ๊ฝƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค.


์ด๋Ÿฌํ•œ ๋ฐฐํฌ๋Š” ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ์™€ ์ค‘๋‹จ ๋ฐฐํฌ ๋ฐฉ์‹์ด ์žˆ๋‹ค.


์ค‘๋‹จ ๋ฐฐํฌ์™€ ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ์˜ ์ฐจ์ด๋Š” ์ด๋ฆ„์—์„œ๋„ ์•Œ ์ˆ˜ ์žˆ๋“ฏ ์ค‘๋‹จ์˜ ์œ ๋ฌด์ด๋‹ค.

 

์šฐ๋ฆฌ๊ฐ€ ๋งŒ์•ฝ ์ฟ ํŒก ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•˜๋ ค๊ณ  ์ฟ ํŒก ํŽ˜์ด์ง€์— ๋“ค์–ด๊ฐ”์œผ๋‚˜ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํŽ˜์ด์ง€๊ฐ€ ๋œฌ๋‹ค๋ฉด ์ด ์ƒํ™ฉ์€ ์ƒˆ๋กœ์šด ๋ฒ„์ „์„ ์œ„ํ•ด์„œ ์ž ์‹œ ์„œ๋น„์Šค๋ฅผ ์ค‘๋‹จํ•œ ์ค‘๋‹จ ๋ฐฐํฌ๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

(์ฐธ๊ณ ๋กœ ์ผ๋ฐ˜์ ์ธ ์ƒ๊ฐ์— ์˜ํ•ด์„œ ๊ธ€์„ ์“ฐ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ์„œ๋น„์Šค๊ฐ€ ์ค‘๋‹จ ๋ฐฐํฌ์ฒ˜๋Ÿผ ๋ณด์ด๋Š” ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ์ธ์ง€ ํ˜น์€ ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ์ธ์ง€ ์ •ํ™•ํžˆ ๋‚ด๋ถ€์ž๊ฐ€ ์•„๋‹ˆ๋ผ ์•Œ์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค.)

์ด๋Ÿฐ ๋ฐฐํฌ ์ค‘๋‹จ์— ๊ณผ์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

 

๋งŒ์•ฝ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์„œ๋น„์Šค๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ž.

์ด๋Ÿฐ ์„œ๋น„์Šค์— ๋ฐฐํฌ๋ฅผ ํ•œ๋‹ค๊ณ  ํ•˜๋ฉด

์ผ๋ฐ˜์ ์ธ ๋ฐฐํฌ

์œ„์™€ ๊ฐ™์ด ์ƒˆ๋กœ์šด ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธ๋ฅผ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ธฐ์กด์— ์—ฐ๊ฒฐ๋œ ์„œ๋น„์Šค๋ฅผ ํ•ด์ œ ํ•˜๊ณ  ์ƒˆ๋กœ์šด ๋ฒ„์ „์œผ๋กœ ๊ฐˆ์•„๋ผ์šด ๋’ค ๋‹ค์‹œ ์„œ๋น„์Šค๋ฅผ ํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

๋ฌด์ค‘๋‹จ ๋ฐฐํฌ

ํ•˜์ง€๋งŒ ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ๋Š” ์—ฌ๋Ÿฌ ๊ธฐ์ˆ ๋“ค์„ ์ด์šฉํ•ด์„œ ๋ฐฐํฌ๋˜๋Š” ๋„์ค‘์— ์—ฐ๊ฒฐ์„ ํ•ด์ œํ•˜์ง€ ์•Š๊ณ  ์ƒˆ๋กœ์šด ๋ฒ„์ „์œผ๋กœ ๊ฐˆ์•„๋ผ์šด ๋’ค ์ง€์†ํ•ด์„œ ์„œ๋น„์Šค๋ฅผ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

 

์ด๋Ÿฐ ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ์— ๋ฐฉ๋ฒ•์—๋Š” 4๊ฐ€์ง€๊ฐ€ ์žˆ๊ณ  ์ด ์ค‘ 2๊ฐ€์ง€๋ฅผ ์˜ค๋Š˜ ํ•œ ๋ฒˆ ์•Œ์•„๋ณผ ๊ฒƒ์ด๋‹ค.

  1. Rolling Deployment
  2. Blue-Green Deployment
  3. Canary Deployment
  4. L4 Switch

์‹œ์ž‘ํ•ด๋ณด์ž.

1. Rolling Deployment

Rolling ๋ฐฐํฌ์˜ ์ปจ์…‰์€ ๊ฐ„๋‹จํ•˜๋‹ค. ๋ฐฐํฌ๋œ ์„œ๋ฒ„๋ฅผ ํ•œ ๋Œ€์”ฉ ๊ตฌ๋ฒ„์ „์—์„œ ์ƒˆ ๋ฒ„์ „์œผ๋กœ ๊ต์ฒดํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

 

๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ๊ฐ€ ์ƒˆ๋กœ์šด ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธ ํ•  ๋•Œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ž„๋ฌด๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค.

 

  • ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ๋Š” ๋ฐฐํฌ๋œ ์„œ๋ฒ„์— ์—ฐ๊ฒฐ์„ ์ผ์‹œ์ ์œผ๋กœ ๋Š๋Š”๋‹ค.
  • ์—ฐ๊ฒฐ์ด ๋Š์–ด์ง„ ์„œ๋ฒ„์— ์ƒˆ๋กญ๊ฒŒ ์—…๋ฐ์ดํŠธ๋œ ์„œ๋ฒ„๋ฅด๋ฅด ๊ต์ฒดํ•œ๋‹ค.
  • ๊ต์ฒด๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด ๋‚˜๋จธ์ง€ ๋ฒ„์ „์„ ์œ„์™€ ๊ฐ™์€ ๊ณผ์ •์œผ๋กœ ์—…๋ฐ์ดํŠธ ํ•œ๋‹ค.
์œ„์˜ ๊ณผ์ •์„ ๊ทธ๋ฆผ์œผ๋กœ ๋‚˜ํƒ€๋‚ด๋ฉด ์•„๋ž˜์™€ ๊ฐ™์„ ๊ฒƒ์ด๋‹ค.

์ด๋Ÿฐ Rolling ์„œ๋ฒ„์—๋„ ์žฅ์ ์ด ์žˆ๊ณ  ๋‹จ์ ์ด ์žˆ๋Š”๋ฐ,

์žฅ์ 

์ธํ”„๋ผ์— ๊ตฌ์„ฑ๋œ ํ˜„์žฌ ์ž์›์„ ๊ทธ๋Œ€๋กœ ์œ ์ง€ํ•˜๊ณ  ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

๊ทธ๋„ ๊ทธ๋Ÿด ๊ฒƒ์ด ๊ธฐ์กด์˜ ์„œ๋ฒ„์˜ ์—ฐ๊ฒฐ์„ ๋Š๊ณ  ๊ทธ ์ž๋ฆฌ์— ์ƒˆ๋กœ์šด ์„œ๋ฒ„๋กœ ๋Œ€์น˜์‹œ์ผœ๋ฒ„๋ฆฌ๋‹ˆ ๊ธฐ์กด์˜ ์ž์›์— ํฌ๊ฒŒ ์ค„์ด๊ฑฐ๋‚˜ ๋Š˜์ผ ํ•„์š”๊ฐ€ ์—†๋Š” ๊ฒƒ์ด๋‹ค.

๋‹จ์ 

๋‹จ์ ์€ ์กฐ๊ธˆ ์น˜๋ช…์ ์ด๋‹ค.

 

์—…๋ฐ์ดํŠธ ๋„์ค‘์— ์„œ๋ฒ„๋ฅผ ํ•„์—ฐ์ ์œผ๋กœ ๋Š์–ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋ฒ„ ๊ณผ๋ถ€ํ•˜๊ฐ€ ์ƒ๊ธด๋‹ค.


๊ทธ๋ฆฌ๊ณ  ๋กค๋ฐฑ์ด ํž˜๋“ค๋‹ค๋Š” ์ ์ด ์žˆ๋‹ค.


๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒจ์„œ ๋กค๋ฐฑ์„ ํ•ด์•ผํ•œ๋‹ค๋ฉด ์œ„์™€ ๊ฐ™์€ ๊ณผ์ •์„ ๋˜ ๊ฑฐ์ณ์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ ˆ ํšจ์œจ์ ์ด์ง€ ๋ชปํ•œ๋‹ค.

 

2. Blue-Green Deployment

์œ„์—์„œ ๋ง ํ–ˆ๋˜ Rolling Update์˜ ๋‹จ์ ์„ ๋ณด์™„ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ๋ฐ”๋กœ ์ด Blue-Green Deployment์ด๋‹ค.

Blue Green Deploy๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌ์„ฑ๋œ๋‹ค.

์ด ๋‘ ์ƒํƒœ๋ฅผ ์„œ๋น„์Šค ๊ทธ๋ฃน์œผ๋กœ ๋‚˜๋ˆˆ๋‹ค.

์ด Blue ์ƒํƒœ๋ฅผ Green ์ƒํƒœ๋กœ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ณผ์ •์ด ์ง„ํ–‰๋œ๋‹ค.

  • ์„œ๋ฒ„๋ฅผ ๊ทธ๋Œ€๋กœ ๋ณธ๋–  ํ•˜๋‚˜์˜ ์ƒˆ๋กœ์šด ์„œ๋ฒ„๋ฅผ ๋งŒ๋“ ๋‹ค. (์ƒˆ๋กœ์šด ์„œ๋ฒ„๋Š” ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ์— ์—ฐ๊ฒฐ๋˜์–ด์žˆ์ง€ ์•Š๋‹ค.)
  • ์ƒˆ๋กœ์šด ์„œ๋ฒ„ ์ „์ฒด๋ฅผ ์—…๋ฐ์ดํŠธํ•œ๋‹ค.
  • ๊ธฐ์กด ์„œ๋ฒ„์— ์—ฐ๊ฒฐ๋œ ์—ฐ๊ฒฐ์„ ์ƒˆ๋กœ์šด ์„œ๋ฒ„์˜ ์—ฐ๊ฒฐ๋กœ ๋ณ€๊ฒฝํ•œ๋‹ค.

์ด๋ฅผ ๊ทธ๋ฆผ์œผ๋กœ ํ™•์ธํ•ด๋ณด์ž.

์ด์ œ ๋˜ ๋‹จ์ ๊ณผ ์žฅ์ ์„ ์•Œ์•„๋ณด์ž

์žฅ์ 

์„œ๋ฒ„์˜ ๊ณผ๋ถ€ํ•˜๊ฐ€ ์ผ์–ด๋‚˜์ง€ ์•Š๋Š”๋‹ค.

Rolling์€ ์ƒˆ๋กœ ์—…๋ฐ์ดํŠธ๋ฅผ ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๊ธฐ์กด ์„œ๋ฒ„ ํ•˜๋‚˜ ์—ฐ๊ฒฐ์„ ๋Š์–ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ณผ๋ถ€ํ•˜๊ฐ€ ์ผ์–ด๋‚˜์ง€ ์•Š๊ฒŒ ๋œ๋‹ค.

๋‹จ์ 

๋น„์šฉ์ ์ธ ์ธก๋ฉด์—์„œ ์ œ์•ฝ์ด ์ƒ๊ธด๋‹ค.

์ด ๋ฐฉ๋ฒ•์€ ๊ธฐ์กด์˜ ์„œ๋ฒ„์™€ ๋™์ผํ•œ ์„œ๋ฒ„ ๊ทธ๋ฃน์„ ํ•˜๋‚˜ ๋” ์ƒ์„ฑํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฌผ๋ฆฌ์ ์ธ ์„œ๋ฒ„์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ๋Š” ์กฐ๊ธˆ ํž˜๋“ค ์ˆ˜ ์žˆ๋‹ค.
๊ธฐ์กด์— ๋ฌผ๋ฆฌ์  ์„œ๋ฒ„๋ฅผ ๊ตฌ๋™ํ•˜๋Š” ์žฅ๋น„์˜ ๋น„์šฉ์ด 1์–ต์ด์—ˆ๋‹ค๋ฉด ๋™์ผํ•œ ๊ทธ๋ฃน์„ ํ•˜๋‚˜ ๋” ์ƒ์„ฑํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— 2๋ฐฐ์ธ 2์–ต์ด ๋“ค์–ด์•ผ ํ•˜๋Š”๋ฐ, ์ด๊ฒƒ์€ ๋งค์šฐ ๋น„ํšจ์œจ์ ์ด๋‹ค. ๊ทธ๋ž˜์„œ ์ด ๋ฐฉ์‹์€ ์‰ฝ๊ฒŒ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ์—†์•จ ์ˆ˜ ์žˆ๋Š” ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์ด๋‚˜ Docker๊ณผ ๊ฐ™์€ ๊ฐ€์ƒํ™˜๊ฒฝ์ด ๋” ์–ด์šธ๋ฆฐ๋‹ค.

๋Œ“๊ธ€