๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

DevOps

(3)
CDN (Content Delivery Network) CDN์ด๋ž€?CDN(์ฝ˜ํ…์ธ  ์ „์†ก ๋„คํŠธ์›Œํฌ)์€ ์ง€๋ฆฌ์ ์œผ๋กœ ๋ถ„์‚ฐ๋œ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์„œ๋ฒ„→ ์›น ์ฝ˜ํ…์ธ ๋ฅผ ์‚ฌ์šฉ์ž์™€ ๊ฐ€๊นŒ์šด ๊ณณ์—์„œ ์ „์†กํ•จ์œผ๋กœ์จ ์ „์†ก ์†๋„๋ฅผ ๋†’์ž„์›น ํŽ˜์ด์ง€, ์ด๋ฏธ์ง€, ๋™์˜์ƒ ๋“ฑ์˜ ์ฝ˜ํ…์ธ ๋ฅผ ์‚ฌ์šฉ์ž์˜ ์‹ค์ œ ์œ„์น˜์™€ ๊ฐ€๊นŒ์šด ์„œ๋ฒ„์— ์บ์‹ฑ์‚ฌ์šฉ์ž์™€ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ์„œ๋ฒ„์—์„œ ์ฝ˜ํ…์ธ ๋ฅผ ์ „์†ก → ํŽ˜์ด์ง€ ๋กœ๋“œ ์‹œ๊ฐ„ ๋‹จ์ถ•, ๋” ๋น ๋ฅธ ๊ณ ์„ฑ๋Šฅ ์›น ํ™˜๊ฒฝ ๊ฒฝํ—˜ CDN์˜ ๋™์ž‘ ์›๋ฆฌCDN์€ ์„ธ ๊ฐ€์ง€ ์ข…๋ฅ˜์˜ ์„œ๋ฒ„์— ์˜์กด์˜ค๋ฆฌ์ง„ ์„œ๋ฒ„์ฝ˜ํ…์ธ ์˜ ์›๋ณธ ๋ฒ„์ „์ด ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉฐ ์›๋ณธ ์†Œ์Šค ์—ญํ• ์„ ํ•จ์ฝ˜ํ…์ธ ๋ฅผ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•  ๋•Œ๋งˆ๋‹ค ์˜ค๋ฆฌ์ง„ ์„œ๋ฒ„์—์„œ ๋ณ€๊ฒฝ์˜ค๋ฆฌ์ง„ ์„œ๋ฒ„๋Š” ์ฝ˜ํ…์ธ  ๊ณต๊ธ‰์—…์ฒด๊ฐ€ ์†Œ์œ ํ•˜๊ณ  ๊ด€๋ฆฌ or ์จ๋“œํŒŒํ‹ฐ ํด๋ผ์šฐ๋“œ ๊ณต๊ธ‰์—…์ฒด์˜ ์ธํ”„๋ผ(Amazon์˜ AWS S3 ๋˜๋Š” Google Cloud Storage)์—์„œ ํ˜ธ์ŠคํŒ…์—ฃ์ง€ ์„œ๋ฒ„์ „ ์„ธ๊ณ„ ์—ฌ๋Ÿฌ ์ง€๋ฆฌ์  ์œ„์น˜์— ์œ„์น˜..
๋ฌด์ค‘๋‹จ ๋ฐฐํฌ (Zero Downtime Deployment) ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ๋ž€?๋ฌด์ค‘๋‹จ ๋ฐฐํฌ๋Š” ์„œ๋น„์Šค ์žฅ์• ์™€ ๋ฐฐํฌ์˜ ๋ถ€๋‹ด์„ ์ตœ์†Œํ™”ํ•˜๊ธฐ ์œ„ํ•ด ์šด์˜ ์ค‘์ธ ์„œ๋น„์Šค๋ฅผ ์ค‘๋‹จํ•˜์ง€ ์•Š๊ณ  ์‹ ๊ทœ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๋ฐฐํฌํ•˜๋Š” ๊ธฐ์ˆ  ๋ธ”๋ฃจ-๊ทธ๋ฆฐ ๋ฐฐํฌ(Blue-Green Deployment) ๊ฐœ๋…: ๋‘ ๊ฐœ์˜ ํ™˜๊ฒฝ(๋ธ”๋ฃจ์™€ ๊ทธ๋ฆฐ)์„ ์œ ์ง€ํ•˜๋ฉฐ, ํ˜„์žฌ ์šด์˜ ์ค‘์ธ ์„œ๋น„์Šค ํ™˜๊ฒฝ์„ Blue, ์ƒˆ๋กญ๊ฒŒ ๋ฐฐํฌํ•  ํ™˜๊ฒฝ์„ Green์ด๋ผ๊ณ  ํ•จ๋ฐฐํฌ ๊ณผ์ •์ƒˆ๋กœ์šด ๋ฒ„์ „์„ ๊ทธ๋ฆฐ ํ™˜๊ฒฝ์— ๋ฐฐํฌํ•œ ํ›„, ์ถฉ๋ถ„ํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ๊ฑฐ์นจํ…Œ์ŠคํŠธ ์™„๋ฃŒ ํ›„ ํŠธ๋ž˜ํ”ฝ์„ ๋ธ”๋ฃจ ํ™˜๊ฒฝ์—์„œ ๊ทธ๋ฆฐ ํ™˜๊ฒฝ์œผ๋กœ ์ „ํ™˜๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ๋‹ค์‹œ ๋ธ”๋ฃจ ํ™˜๊ฒฝ์œผ๋กœ ํŠธ๋ž˜ํ”ฝ์„ ์ „ํ™˜ํ•˜์—ฌ ๋กค๋ฐฑ ์šฉ์ด์žฅ์ ๋กค๋ฐฑ์ด ๊ฐ„๋‹จํ•˜๊ณ  ์œ„ํ—˜์ด ์ ์Œํ…Œ์ŠคํŠธ๊ฐ€ ์ถฉ๋ถ„ํžˆ ์ด๋ฃจ์–ด์ง„ ํ›„์— ์‹ค์ œ ์„œ๋น„์Šค์— ๋ฐ˜์˜ํ˜ธํ™˜์„ฑ ๋ฌธ์ œ ์—†์Œ๋‹จ์ ๋‘ ๊ฐœ์˜ ํ™˜๊ฒฝ์„ ์œ ์ง€ํ•ด์•ผ ํ•˜๋ฏ€๋กœ ์ธํ”„๋ผ ๋น„์šฉ ์ฆ๊ฐ€ ๋กค๋ง ๋ฐฐํฌ(Rolling Deployment)๊ฐœ๋…:..
PM2 Research ์ž…์‚ฌ ์ดˆ๊ธฐ ํ”„๋ก ํŠธ์—”๋“œ ์„œ๋น„์Šค ๋ฐฐํฌ ํ™˜๊ฒฝ์ด EC2์™€ PM2๋กœ ๊ตฌ์ถ•๋˜์–ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.PM2์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•˜๋ฉฐ ๋ฆฌ์„œ์น˜ํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค.PM2๋Š” Process Manager์˜ ์•ฝ์ž๋กœ NodeJS ํ”„๋กœ์„ธ์„œ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š”, ์›ํ™œํ•œ ์„œ๋ฒ„ ์šด์˜์„ ์œ„ํ•œ ํŒจํ‚ค์ง€์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์žˆ๋Š” ๋„์ค‘ ๊ฐ‘์ž๊ธฐ ์„œ๋ฒ„๊ฐ€ ์ค‘์ง€๋˜์–ด๋„ ์„œ๋ฒ„๋ฅผ ๋‹ค์‹œ ์‹คํ–‰Node.js๋Š” ์‹ฑ๊ธ€ ์Šค๋ ˆ๋“œ ๊ธฐ๋ฐ˜์ด์ง€๋งŒ, ๋ฉ€ํ‹ฐ ์ฝ”์–ด ํ˜น์€ ํ•˜์ดํผ ์Šค๋ ˆ๋”ฉ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์คŒํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€ํ„ฐ ์š”์ฒญ์ด ์˜ฌ ๋•Œ ์•Œ์•„์„œ ์š”์ฒญ์„ ์—ฌ๋Ÿฌ ๋…ธ๋“œ ํ”„๋กœ์„ธ์Šค์— ๊ณ ๋ฅด๊ฒŒ ๋ถ„๋ฐฐ (๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ)์ž‘๋™ ์›๋ฆฌPM2์˜ Cluster mode๋Š” Node.js์˜ Cluster module์„ ํ†ตํ•ด ์ž‘๋™Node.js Cluster module์€ Node.js์—์„œ ๋ฉ€ํ‹ฐ์ฝ”์–ด ์‹œ์Šคํ…œ์„ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก Port๋ฅผ ๊ณต์œ ํ•˜๋Š” Child ..