CDN์€ ๋ญ˜๊นŒ?

@choi2021 ยท March 01, 2023 ยท 9 min read

๐Ÿ™„ CDN์ด๋ž€

CDN์€ Contents Delivery Network์˜ ์•ฝ์ž๋กœ ์›นํŽ˜์ด์ง€, ์‚ฌ์ง„, ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ „๋‹ฌํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ๊ธฐ์กด ์„œ๋ฒ„๊ฐ€ ์žˆ๋Š”๋ฐ ์™œ CDN์ด ํ•„์š”ํ• ๊นŒ?

CDN์˜ ํ•„์š”์„ฑ

ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํŠน์ • ํŽ˜์ด์ง€๋‚˜ API๋ฅผ ์š”์ฒญํ•˜๋ฉด ์„œ๋ฒ„๋Š” ๋ฐ›์€ ์š”์ฒญ์— ์•Œ๋งž์€ ์‘๋‹ต์„ ๋ณด๋‚ด์ฃผ๋Š” ๊ฒƒ์ด ๊ธฐ๋ณธ์ ์ธ ๋„คํŠธ์›Œํฌ ํ๋ฆ„์ด๋‹ค. ๊ฒฐ๊ตญ์€ ํ•˜๋‚˜์˜ ์š”์ฒญ๋‹น ํ•˜๋‚˜์˜ ์‘๋‹ต์„ ๋ฐ›๊ฒŒ ๋˜๋Š”๋ฐ, ๋งŒ์•ฝ ์„œ๋น„์Šค๊ฐ€ ์—„์ฒญ๋‚˜๊ฒŒ ์ปค์กŒ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋ฉด, ์ „์„ธ๊ณ„ ์ˆ˜์ฒœ๋งŒ๋ช…์ด ๋™์‹œ์— ์š”์ฒญ์„ ํ•˜๋Š” ๊ฒฝ์šฐ์— ์„œ๋ฒ„๋Š” ์ˆ˜์ฒœ๋งŒ๊ฐœ์˜ ์š”์ฒญ์— ๋”ฐ๋ผ ์‘๋‹ต์„ ํ•ด์ค˜์•ผํ•˜๋Š” ์ƒํ™ฉ์ด ๋œ๋‹ค. ์ด๋ ‡๊ฒŒ ๋  ๊ฒฝ์šฐ ์„œ๋ฒ„์˜ ์ž…์žฅ๊ณผ ํด๋ผ์ด์–ธํŠธ ์ž…์žฅ์— ๋”ฐ๋ผ ๊ฐ๊ฐ์˜ ๋ฌธ์ œ๊ฐ€ ์กด์žฌํ•˜๊ฒŒ ๋œ๋‹ค.

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

๋‘๋ฒˆ์งธ๋กœ ์„œ๋ฒ„์˜ ์ž…์žฅ์—์„œ ๋ณด๋ฉด ์ •๋ง ๋งŽ์€ ์š”์ฒญ์„ ๋ฐ›์•„์„œ ์ฒ˜๋ฆฌํ•œ๋‹ค๊ณ  ํ–ˆ์„ ๋•Œ, ๋‹น์—ฐ ์„œ๋ฒ„ ์ž์ฒด์˜ ๋ถ€๋‹ด์ด ๋Š˜์–ด๋‚˜๊ฒŒ ๋œ๋‹ค. ํ•˜๋‚˜์˜ ์š”๋ฆฌ์‚ฌ๊ฐ€ ์š”๋ฆฌํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ์—ฌ๋Ÿฌ ์š”๋ฆฌ์‚ฌ๋ฅผ ๊ณ ์šฉํ•ด ํ•œ๊บผ๋ฒˆ์— ๋งŽ์€ ์ฃผ๋ฌธ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด ํ›จ์”ฌ ํšจ์œจ์ ์ด๊ณ  ํ˜ผ์ž์„œ ๋ชจ๋“  ์ฃผ๋ฌธ์„ ๋‹ค ์ฒ˜๋ฆฌํ•˜๋˜ ๊ธฐ์กด ์š”๋ฆฌ์‚ฌ์˜ ๋ถ€๋‹ด์„ ์ค„์—ฌ์ค„ ์ˆ˜ ์žˆ๋‹ค. ๊ธฐ์กด ์„œ๋ฒ„๋ฅผ ๋ณธ์ , CDN์„ ์ฒด์ธ์ ์œผ๋กœ ์ƒ๊ฐํ•ด, ๋ณธ์ ์˜ ์š”๋ฆฌ์‚ฌ ์ˆ˜๋ฅผ ์ ๊ฒŒ (๋Œ€์—ญํญ์„ ์ ๊ฒŒ) ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์–ด ๋น„์šฉ์„ ์ค„์ผ ์ˆ˜ ์žˆ๋Š” ์žฅ์ ์„ ๊ฐ€์ง„๋‹ค.

์ด๋Ÿฌํ•œ ๋‘๊ฐ€์ง€ ์ธก๋ฉด์˜ ๊ณ ๋ฏผ์„ ํ•œ๋ฒˆ์— ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด CDN์ด๋‹ค. ํด๋ผ์ด์–ธํŠธ ์ž…์žฅ์—์„œ๋Š” ์‹ค์ œ ์œ„์น˜ํ•œ ์„œ๋ฒ„๊นŒ์ง€ ์š”์ฒญ์„ ์ „๋‹ฌํ•˜์ง€ ์•Š๊ณ , ํ˜„์žฌ ์œ„์น˜ํ•œ ์ง€์—ญ์˜ CDN์„ ์ด์šฉํ•ด ๋น ๋ฅด๊ฒŒ ํ•„์š”ํ•œ ์ปจํ…์ธ ๋ฅผ ๋ฐ›์•„์˜ฌ ์ˆ˜ ์žˆ๊ณ , ์„œ๋ฒ„ ์ž…์žฅ์—์„œ๋Š” ์ง€์—ญ๋งˆ๋‹ค ์„œ๋ฒ„๋ฅผ ๋‘ ์œผ๋กœ์จ ์ปจํ…์ธ  ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต์„ ํ•˜์ง€ ์•Š์•„๋„ ๋˜๋‹ˆ๊นŒ ๋ถ€๋‹ด์ด ์ค„๊ฒŒ ๋œ๋‹ค. ์ด๋ ‡๊ฒŒ ์ง€์—ญ๋งˆ๋‹ค ๋‘” ์„œ๋ฒ„๋ฅผ Edge๋ผ๊ณ  ๋ถ€๋ฅด๋Š”๋ฐ, ๋ชจ๋“  ์„œ๋ฒ„์˜ ๊ธฐ๋Šฅ์„ ๋‹ค ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์›นํŽ˜์ด์ง€, ์ด๋ฏธ์ง€, ๋™์˜์ƒ๊ณผ ๊ฐ™์€ ์ปจํ…์ธ ์— ๋Œ€ํ•ด ์บ์‹ฑํ•˜๊ณ  ์žˆ๋‹ค.

[Cloudflare์˜ CDN ์‚ฌ์ง„]

cloudflare
cloudflare

๊ทธ๋ ‡๋‹ค๋ฉด ํด๋ผ์ด์–ธํŠธ๋Š” ๋ถ„๋ช… ๊ฐ™์€ ๋„๋ฉ”์ธ ์ฃผ์†Œ๋กœ ์š”์ฒญ์„ ๋ณด๋‚ด๊ฒŒ ๋ ํ…๋ฐ, ์–ด๋–ค ๊ฒƒ์€ ์ง์ ‘ ์„œ๋ฒ„์— ์š”์ฒญ์ด ๊ฐ€์•ผํ•˜๊ณ , ์–ด๋–ค ๊ฒƒ์€ CDN์—์„œ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์„ํ…๋ฐ ์ด๋Ÿฌํ•œ ์š”์ฒญ์— ๋Œ€ํ•œ ๋ถ„๋ฆฌ๋Š” ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌ๋˜์–ด์ ธ ์žˆ๋Š”๊ฑธ๊นŒ?

๋‹ค์‹œ ๋‚˜์˜ค๋Š” DNS์™€ ๋ฐœ์ „๋œ GSLB

ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”์ฒญ์„ ๋ณด๋‚ด๊ณ  ์š”์ฒญ์— ์•Œ๋งž์€ ์‘๋‹ต์„ ๋ฐ›๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ•ด๋‹น ์„œ๋ฒ„์˜ IP์ฃผ์†Œ๋ฅผ ๊ฐ€์ ธ์™€์•ผํ•œ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ์•Œ๊ณ ์žˆ๋Š” ๋„๋ฉ”์ธ ์ฃผ์†Œ๋ฅผ IP์ฃผ์†Œ๋กœ ๋งคํ•‘ํ•ด์ฃผ๋Š” ๊ฒƒ์„ DNS (Domain Namve System)๊ฐ€ ๋‹ด๋‹นํ•ด์ฃผ๋Š” ๊ฒƒ์„ ์ €๋ฒˆ ๊ธ€์„ ์ž‘์„ฑํ•˜๋ฉฐ ์•Œ ์ˆ˜ ์žˆ์—ˆ๋‹ค. ์—ฌ๊ธฐ์„œ CDN์ด ์ถ”๊ฐ€๋˜๋ฉด์„œ ๋‹จ์ˆœํžˆ ๋„๋ฉ”์ธ์˜ ์„œ๋ฒ„์˜ IP์ฃผ์†Œ๋ฅผ ์ฐพ๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ ํ•ด๋‹น ์š”์ฒญ์ด ์บ์‹ฑ๋˜์–ด ์žˆ๋Š” ์ฝ˜ํ…์ธ ์ผ ๊ฒฝ์šฐ๋‚˜ ์ง€์—ญ๋ณ„๋กœ ๊ฐ€๊นŒ์šด CDN์— ์š”์ฒญํ•  ์ˆ˜ ์žˆ๊ฒŒ ์—ฐ๊ฒฐํ•˜๋Š” ์ผ์ด ํ•„์š”ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.

DNS๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ด๋Ÿฐ ๋ณต์žกํ•œ ์ผ์„ ํ•ด์ฃผ๋Š” ๊ฒƒ์ด ๋ฐ”๋กœ GSLB (Global Server Load Banlancing) ์ด๋‹ค. GSLB๋Š” ์š”์ฒญํ•˜๋Š” ์‚ฌ์šฉ์ž์˜ ์œ„์น˜์— ๋”ฐ๋ผ ์•Œ๋งž์€ ์„œ๋ฒ„๋ฅผ ์ฐพ์•„์„œ ์—ฐ๊ฒฐํ•ด์ฃผ๋Š”๋ฐ, ์ด๋•Œ ์•Œ๋งž์€ ์„œ๋ฒ„๋Š” GSLB์˜ Load Balancing์ด๋ž€ ๋‹จ์–ด๊ฐ€ ๋‹ด๊ฒจ์žˆ๋“ฏ, ํ˜„์žฌ ์œ„์น˜์™€ ๊ฐ€๊นŒ์šด ๊ฑฐ๋ฆฌ์˜ ์„œ๋ฒ„๋งŒ์„ ๊ณ ๋ คํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ํ•ด๋‹น ์„œ๋ฒ„์— ํ˜„์žฌ ์‚ฌ์šฉ์ž๊ฐ€ ๋ชฐ๋ฆด ๊ฒฝ์šฐ ๋“ฑ์˜ ์„œ๋ฒ„์˜ ์ƒํƒœ๋ฅผ ๊ณ ๋ คํ•ด์„œ ์ ์ ˆํ•œ ์„œ๋ฒ„๋กœ ์—ฐ๊ฒฐํ•ด์ค€๋‹ค.

์ด๋ ‡๊ฒŒ ์„œ๋ฒ„ ์ƒํƒœ๊นŒ์ง€ ๊ณ ๋ คํ•˜๊ธฐ ๋•Œ๋ฌธ์— DDoS์™€ ๊ฐ™์€ ๊ณต๊ฒฉ์œผ๋กœ ๊ฐ‘์ž๊ธฐ ๋งŽ์€ ์š”์ฒญ์ด ๋ชฐ๋ ค์™€ ํ•ด๋‹น ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ฒŒ ๋˜๋Š” ๊ฒฝ์šฐ์—, CDN์œผ๋กœ ์—ฐ๊ฒฐํ•ด๋‘์—ˆ๋‹ค๋ฉด ๊ทธ ์ง€์—ญ์˜ CDN๋งŒ ๊ณต๊ฒฉ๋‹นํ•˜๊ณ , ์ดํ›„ ๊ฐ™์€ ์ง€์—ญ์˜ ์š”์ฒญ์€ ๋‹ค๋ฅธ ์„œ๋ฒ„๋กœ ์ž๋™์œผ๋กœ ์š”์ฒญํ•˜๊ฒŒ ์—ฐ๊ฒฐํ•ด์ค˜์„œ ์„œ๋น„์Šค ์ž์ฒด์˜ ์žฅ์•  ๋Œ€์‘์—๋„ ๊ฐ•์ ์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค.

gslb
gslb
๊ทธ๋Ÿฌ๋ฉด ์ด๋Ÿฌํ•œ CDN์— ์ €์žฅํ•  ๋ฐ์ดํ„ฐ๋Š” ์–ด๋–ค ์‹œ์ ์— ๊ฐ€์ ธ์™€์•ผ ํ• ๊นŒ? ๋˜ ์–ผ๋งˆ๋‚˜ ๋ณด๊ด€ํ•ด์•ผ ํ• ๊นŒ?

์บ์‹ฑ๊ณผ TTL

๋ฐ์ดํ„ฐ๋ฅผ ์–ผ๋งˆ๋‚˜ ์˜ค๋ž˜ ์กด์žฌํ•˜๋„๋ก ํ• ์ง€์— ๋Œ€ํ•œ ์šฉ์–ด๋Š” TTL (Time To Live)๋กœ ์„œ๋ฒ„์— ์บ์‹ฑํ•  ๋ฐ์ดํ„ฐ์˜ ์œ ํšจ์‹œ๊ฐ„์„ ์ •ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋งˆ์น˜ React-query์—์„œ cache-Time์„ ์ •ํ•˜๊ณ , ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด ์ƒˆ๋กญ๊ฒŒ ์š”์ฒญ์„ ๋ณด๋‚ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ๊ณผ ๊ฐ™๋‹ค. ์ด๋Ÿฌํ•œ TTL์„ค์ •์€ ๋ธŒ๋ผ์šฐ์ €์—์„œ ํ•  ๊ฒฝ์šฐ์—๋Š” HTTPํ—ค๋”์˜ Cache-Control๋ถ€๋ถ„์„ ํ†ตํ•ด ์ง€์ •ํ•ด์ค„ ์ˆ˜ ์žˆ๊ณ , CDN์„ ์ด์šฉํ•œ๋‹ค๋ฉด ํ•ด๋‹น ์—…์ฒด์—์„œ ์•Œ๋งž์€ TTL์„ ์ž๋™ํ™”ํ•ด์ฃผ๊ฑฐ๋‚˜ ๊ฐ๊ฐ ์บ์‹ฑ๋œ ๋ฐ์ดํ„ฐ์— ์•Œ๋งž๊ฒŒ ์„ค์ •์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

์บ์‹ฑ
์บ์‹ฑ

๋งˆ์น˜๋ฉฐ

๊ฐ„๋‹จํ•˜๊ฒŒ CDN์ด ์–ด๋–ค ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ์ˆ ์ธ์ง€, ์–ด๋–ป๊ฒŒ CDN์ด ๋™์ž‘ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ •๋ฆฌํ•ด๋ดค๋‹ค. ์ •๋ฆฌํ•˜๋ฉด์„œ Edge ์ปดํ“จํŒ…์— ๋Œ€ํ•ด์„œ ์›น๊ฐœ๋ฐœ์—์„œ ๋งŽ์€ ๊ด€์‹ฌ์„ ๊ฐ€์ง€๊ณ , CDN ์„œ๋ฒ„์—์„œ ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋ ค๋Š” ๋…ธ๋ ฅ์ด ๋ฐœ์ „๋˜๊ณ  ์žˆ๋Š” ๊ฒƒ์„ ์ƒˆ๋กญ๊ฒŒ ์•Œ ์ˆ˜ ์žˆ์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์กฐ๊ธˆ์”ฉ Edge ์ปดํ“จํŒ…์— ๋Œ€ํ•ด์„œ๋„ ๊ณต๋ถ€ํ•˜๋ฉด์„œ ํ•ด๋‹น ๋‚ด์šฉ์„ ์ถ”๊ฐ€์ ์œผ๋กœ ์ž‘์„ฑํ•ด ๊ธ€์„ ์—…๋ฐ์ดํŠธํ•˜๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค.

[์ฐธ๊ณ  ์ž๋ฃŒ]

@choi2021
๋งค์ผ์˜ ์‹œํ–‰์ฐฉ์˜ค๋ฅผ ๊ธฐ๋กํ•˜๋Š” ๊ฐœ๋ฐœ์ผ์ง€์ž…๋‹ˆ๋‹ค.