CDN ์ˆ˜์ง‘ ๋ฐ ์„ค์ •

CDN(์ฝ˜ํ…์ธ  ์ „์†ก ๋„คํŠธ์›Œํฌ)์€ ์ฃผ๋กœ ์ •์  ์š”์†Œ์˜ ๋กœ๋“œ ์†๋„๋ฅผ ๋†’์ด๊ธฐ ์œ„ํ•ด ์›น์‚ฌ์ดํŠธ์™€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋‹ค๋ฅธ ์ง€์—ญ์— ์œ„์น˜ํ•œ CDN ์„œ๋ฒ„์— ํŒŒ์ผ์„ ์บ์‹ฑํ•จ์œผ๋กœ์จ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. CDN์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•˜๋ฉด ์‚ฌ์šฉ์ž๋Š” ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ์„œ๋ฒ„์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์Šต๋‹ˆ๋‹ค.

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

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

CDN ์ˆ˜์ง‘ ๋ฐ ์„ค์ •
์ถœ์ฒ˜ : pikisuperstar๊ฐ€ ๋งŒ๋“  ์ธํฌ๊ทธ๋ž˜ํ”ฝ ๋ฒกํ„ฐ โ€” www.freepik.com

์–ธ์ œ ์ž์ฒด CDN์ด ํ•„์š”ํ•ฉ๋‹ˆ๊นŒ?

์ž์ฒด CDN์„ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ด ์ ํ•ฉํ•œ ๊ฒฝ์šฐ๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

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

๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ์—๋Š” ๊ธฐ์กด์˜ ๊ธฐ์„ฑ ์†”๋ฃจ์…˜์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋” ์ ์ ˆํ•ฉ๋‹ˆ๋‹ค.

์‹œ์ž‘ํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ๊ฒƒ

์ž์‹ ๋งŒ์˜ ์ž์œจ์‹œ์Šคํ…œ(AS)์ด ์žˆ๋‹ค๋ฉด ์ •๋ง ์ข‹์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋™์ผํ•œ IP๋ฅผ ์—ฌ๋Ÿฌ ์„œ๋ฒ„์— ํ• ๋‹นํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ด ์ง€์‹œ์— ๋”ฐ๋ผ ๋„คํŠธ์›Œํฌ ์ˆ˜์ค€์—์„œ ์‚ฌ์šฉ์ž๋ฅผ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๊ณณ์œผ๋กœ ์•ˆ๋‚ดํ•ฉ๋‹ˆ๋‹ค. /24 ์ฃผ์†Œ ๋ธ”๋ก์œผ๋กœ๋„ ์ฝ˜ํ…์ธ  ์ „๋‹ฌ ๋„คํŠธ์›Œํฌ๋ฅผ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์€ ์ฃผ๋ชฉํ•  ๋งŒํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ถ€ ์„œ๋ฒ„ ๊ณต๊ธ‰์ž๋Š” ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ์ง€์—ญ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ด‘๊ณ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

IP ์ฃผ์†Œ ๋ธ”๋ก์˜ ์šด ์ข‹์€ ์†Œ์œ ์ž๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ ๊ฐ„๋‹จํ•œ CDN์„ ์‹œ์ž‘ํ•˜๋ ค๋ฉด ๋‹ค์Œ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

  • ๋„๋ฉ”์ธ ์ด๋ฆ„ ๋˜๋Š” ํ•˜์œ„ ๋„๋ฉ”์ธ
  • ์„œ๋กœ ๋‹ค๋ฅธ ์ง€์—ญ์— ์žˆ๋Š” ๋‘ ๊ฐœ ์ด์ƒ์˜ ์„œ๋ฒ„. ์„œ๋ฒ„๋Š” ์ „์šฉ์ด๊ฑฐ๋‚˜ ๊ฐ€์ƒ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • geoDNS ๋„๊ตฌ. ๋„์›€์„ ๋ฐ›์œผ๋ฉด ๋„๋ฉ”์ธ์— ์•ก์„ธ์Šคํ•˜๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ์„œ๋ฒ„๋กœ ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค.

๋„๋ฉ”์ธ ๋“ฑ๋ก ๋ฐ ์„œ๋ฒ„ ์ฃผ๋ฌธ

๋„๋ฉ”์ธ ๋“ฑ๋ก์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ชจ๋“  ๊ฒƒ์ด ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ๋“ฑ๋ก ๊ธฐ๊ด€์„ ํ†ตํ•ด ๋ชจ๋“  ์˜์—ญ์— ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด CDN์— ํ•˜์œ„ ๋„๋ฉ”์ธ์„ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. cdn.๋„๋ฉ”์ธ์ด๋ฆ„.com. ์‚ฌ์‹ค, ์šฐ๋ฆฌ์˜ ์˜ˆ์—์„œ๋Š” ๊ทธ๋ ‡๊ฒŒ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์„œ๋ฒ„ ์ฃผ๋ฌธ์˜ ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž ์ฒญ์ค‘์ด ์œ„์น˜ํ•œ ์ง€์—ญ ๋ฐ ๊ตญ๊ฐ€์—์„œ ์ž„๋Œ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ๊ฐ€ ๋Œ€๋ฅ™ ๊ฐ„์ด๋ผ๋ฉด ์ „ ์„ธ๊ณ„์— ์„œ๋ฒ„๋ฅผ ์ œ๊ณตํ•˜๋Š” ํ˜ธ์ŠคํŒ… ์ œ๊ณต์—…์ฒด๋ฅผ ์„ ํƒํ•˜๋Š” ๊ฒƒ์ด ํŽธ๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ: OVH, ๋ฆฌ์Šค์›น ะธ 100TB - ์ „์šฉ ์„œ๋ฒ„์˜ ๊ฒฝ์šฐ, ๋ฒŒ ํ„ฐ ะธ DigitalOcean โ€” ๊ฐ€์ƒ ํด๋ผ์šฐ๋“œ*์˜ ๊ฒฝ์šฐ.

๊ฐœ์ธ CDN์˜ ๊ฒฝ์šฐ ์„œ๋กœ ๋‹ค๋ฅธ ๋Œ€๋ฅ™์— 3๊ฐœ์˜ ๊ฐ€์ƒ ์„œ๋ฒ„๋ฅผ ์ฃผ๋ฌธํ•ฉ๋‹ˆ๋‹ค. ์œ  ๋ฒŒ ํ„ฐ ์„œ๋ฒ„์—์„œ $5/์›” ์šฐ๋ฆฌ๋Š” ์–ป์„ ๊ฒƒ์ด๋‹ค 25GB SSD ์žฅ์†Œ์™€ 1TB ํŠธ๋ž˜ํ”ฝ. ์„ค์น˜ํ•˜๋Š” ๋™์•ˆ ์ตœ์‹  Debian์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ ์„œ๋ฒ„:

CDN ์ˆ˜์ง‘ ๋ฐ ์„ค์ • ํ”„๋ž‘ํฌํ‘ธ๋ฅดํŠธ, IP: 199.247.18.199

CDN ์ˆ˜์ง‘ ๋ฐ ์„ค์ • ์‹œ์นด๊ณ , IP: 149.28.121.123

CDN ์ˆ˜์ง‘ ๋ฐ ์„ค์ • ์‹ฑ๊ฐ€ํฌ๋ฅด, IP: 157.230.240.216

*Vultr์™€ DigitalOcean์€ ๊ฒฐ์ œ ๋ฐฉ๋ฒ•์„ ์ถ”๊ฐ€ํ•œ ํ›„ ์ด ๊ธฐ์‚ฌ์˜ ๋งํฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ€์ž…ํ•˜๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ 100๋‹ฌ๋Ÿฌ์˜ ํฌ๋ ˆ๋”ง์„ ์•ฝ์†ํ•ฉ๋‹ˆ๋‹ค. ์ €์ž๋„ ์ด์— ๋Œ€ํ•ด ์ž‘์€ ์นญ์ฐฌ์„ ๋ฐ›์•˜๋Š”๋ฐ, ์ด๋Š” ์ง€๊ธˆ ๊ทธ์—๊ฒŒ ๋งค์šฐ ์˜๋ฏธ ์žˆ๋Š” ์ผ์ด๋‹ค. ์ดํ•ดํ•ด ์ฃผ์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

geoDNS ์„ค์ •

์‚ฌ์šฉ์ž๊ฐ€ CDN ๋„๋ฉ”์ธ ๋˜๋Š” ํ•˜์œ„ ๋„๋ฉ”์ธ์— ์•ก์„ธ์Šคํ•  ๋•Œ ์›ํ•˜๋Š”(๊ฐ€์žฅ ๊ฐ€๊นŒ์šด) ์„œ๋ฒ„๋กœ ์—ฐ๊ฒฐ๋˜๋„๋ก ํ•˜๋ ค๋ฉด geoDNS ๊ธฐ๋Šฅ์ด ์žˆ๋Š” DNS ์„œ๋ฒ„๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

geoDNS์˜ ์›๋ฆฌ์™€ ์ž‘๋™ ์ ˆ์ฐจ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. DNS ์š”์ฒญ์„ ๋ณด๋‚ธ ํด๋ผ์ด์–ธํŠธ์˜ IP ๋˜๋Š” ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ์žฌ๊ท€ DNS ์„œ๋ฒ„์˜ IP๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์žฌ๊ท€ ์„œ๋ฒ„๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ DNS ๊ณต๊ธ‰์ž์ž…๋‹ˆ๋‹ค.
  2. ํด๋ผ์ด์–ธํŠธ์˜ IP๋Š” ํ•ด๋‹น ๊ตญ๊ฐ€ ๋˜๋Š” ์ง€์—ญ์„ ์‹๋ณ„ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ์˜ค๋Š˜๋‚  ๋งค์šฐ ๋งŽ์€ GeoIP ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ข‹์€ ๊ฒƒ๋“ค๋„ ์žˆ์–ด์š” ๋ฌด๋ฃŒ ์˜ต์…˜.
  3. ํด๋ผ์ด์–ธํŠธ์˜ ์œ„์น˜์— ๋”ฐ๋ผ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด CDN ์„œ๋ฒ„์˜ IP ์ฃผ์†Œ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

geoDNS ๊ธฐ๋Šฅ์„ ๊ฐ–์ถ˜ DNS ์„œ๋ฒ„๋Š” ์ง์ ‘ ์กฐ๋ฆฝํ•ด ๋ณด์„ธ์š”, ๊ทธ๋Ÿฌ๋‚˜ ์ „ ์„ธ๊ณ„์˜ DNS ์„œ๋ฒ„ ๋„คํŠธ์›Œํฌ์™€ ํ•จ๊ป˜ ๊ธฐ์„ฑ ์†”๋ฃจ์…˜์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋” ๋‚ซ์Šต๋‹ˆ๋‹ค. ์• ๋‹ˆ์บ์ŠคํŠธ ๋ฐ•์Šค์—์„œ:

  • ํด๋ผ์šฐ๋“œDNS ๋ถ€ํ„ฐ $9.95/์›”, GeoDNS ๊ด€์„ธ, ๊ธฐ๋ณธ์ ์œผ๋กœ ํ•˜๋‚˜์˜ DNS ์žฅ์•  ์กฐ์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค
  • ์งˆ๋กœ๋ ˆ ๋ถ€ํ„ฐ $25/์›”, DNS ์žฅ์•  ์กฐ์น˜ ํ™œ์„ฑํ™”๋จ
  • ์•„๋งˆ์กด ๊ฒฝ๋กœ 53 ๋ถ€ํ„ฐ $35/์›” ์ˆœ์ˆ˜ 50์ฒœ๋งŒ ๊ฐœ์˜ ์ง€์—ญ ์ฟผ๋ฆฌ์˜ ๊ฒฝ์šฐ. DNS ์žฅ์•  ์กฐ์น˜ ๋น„์šฉ์€ ๋ณ„๋„๋กœ ์ฒญ๊ตฌ๋ฉ๋‹ˆ๋‹ค.
  • ์‰ฌ์šด DNS ๋ถ€ํ„ฐ $125/์›”, 10๊ฐœ์˜ DNS ์žฅ์•  ์กฐ์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
  • Cloudflare, "Geo Steering" ๊ธฐ๋Šฅ์€ Enterprise ๊ด€์„ธ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

geoDNS๋ฅผ ์ฃผ๋ฌธํ•  ๋•Œ ์š”๊ธˆ์— ํฌํ•จ๋œ ์š”์ฒญ ์ˆ˜์— ์ฃผ์˜ํ•˜๊ณ  ๋„๋ฉ”์ธ์— ๋Œ€ํ•œ ์‹ค์ œ ์š”์ฒญ ์ˆ˜๊ฐ€ ์˜ˆ์ƒ๋ณด๋‹ค ๋ช‡ ๋ฐฐ ๋” ๋†’์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์„ ๊ณ ๋ คํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ˆ˜๋ฐฑ๋งŒ ๋ช…์˜ ๊ฑฐ๋ฏธ, ์Šค์บ๋„ˆ, ์ŠคํŒจ๋จธ ๋ฐ ๊ธฐํƒ€ ์•…๋ น์ด ์ง€์น  ์ค„ ๋ชจ๋ฅด๊ณ  ์ผํ•ฉ๋‹ˆ๋‹ค.

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

CDN์„ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•ด ์šฐ๋ฆฌ๋Š” ํด๋ผ์šฐ๋“œDNS, GeoDNS ๊ด€์„ธ.

๊ฐœ์ธ ๊ณ„์ •์— ๋„๋ฉ”์ธ์„ ๋‚˜ํƒ€๋‚ด๋Š” ์ƒˆ DNS ์˜์—ญ์„ ์ถ”๊ฐ€ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ํ•˜์œ„ ๋„๋ฉ”์ธ์— CDN์„ ๊ตฌ์ถ•ํ•˜๊ณ  ๊ธฐ๋ณธ ๋„๋ฉ”์ธ์ด ์ด๋ฏธ ์‚ฌ์šฉ ์ค‘์ธ ๊ฒฝ์šฐ ์˜์—ญ์„ ์ถ”๊ฐ€ํ•œ ํ›„ ์ฆ‰์‹œ ๊ธฐ์กด ์ž‘์—… DNS ๋ ˆ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์„ ์žŠ์ง€ ๋งˆ์„ธ์š”. ๋‹ค์Œ ๋‹จ๊ณ„๋Š” CDN ๋„๋ฉ”์ธ/ํ•˜์œ„ ๋„๋ฉ”์ธ์— ๋Œ€ํ•ด ์—ฌ๋Ÿฌ A ๋ ˆ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฐ ๋ ˆ์ฝ”๋“œ๋Š” ์šฐ๋ฆฌ๊ฐ€ ์ง€์ •ํ•œ ์ง€์—ญ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋Œ€๋ฅ™์ด๋‚˜ ๊ตญ๊ฐ€๋ฅผ ์ง€์—ญ์œผ๋กœ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์†Œ์ง€์—ญ์€ ๋ฏธ๊ตญ๊ณผ ์บ๋‚˜๋‹ค์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ์˜ ๊ฒฝ์šฐ CDN์€ ํ•˜์œ„ ๋„๋ฉ”์ธ์—์„œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. cdn.sayt.in. ์˜์—ญ์„ ์ถ”๊ฐ€ํ•˜์—ฌ sayt.in, ํ•˜์œ„ ๋„๋ฉ”์ธ์— ๋Œ€ํ•œ ์ฒซ ๋ฒˆ์งธ A ๋ ˆ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๋ถ๋ฏธ ์ „์ฒด๋ฅผ ์‹œ์นด๊ณ ์— ์žˆ๋Š” ์„œ๋ฒ„๋กœ ์—ฐ๊ฒฐํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

CDN ์ˆ˜์ง‘ ๋ฐ ์„ค์ •
๊ธฐ๋ณธ ์ง€์—ญ์— ๋Œ€ํ•ด ํ•˜๋‚˜์˜ ํ•ญ๋ชฉ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์„ ์žŠ์ง€ ๋ง๊ณ  ๋‹ค๋ฅธ ์ง€์—ญ์— ๋Œ€ํ•ด์„œ๋„ ์ž‘์—…์„ ๋ฐ˜๋ณตํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ตญ ์–ป๋Š” ๊ฒƒ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

CDN ์ˆ˜์ง‘ ๋ฐ ์„ค์ •

์Šคํฌ๋ฆฐ์ƒท์˜ ๋งˆ์ง€๋ง‰ ๊ธฐ๋ณธ ํ•ญ๋ชฉ์€ ์ง€์ •๋˜์ง€ ์•Š์€ ๋ชจ๋“  ์ง€์—ญ(์œ ๋Ÿฝ, ์•„ํ”„๋ฆฌ์นด, ์œ„์„ฑ ์ธํ„ฐ๋„ท ์‚ฌ์šฉ์ž ๋“ฑ)์ด ํ”„๋ž‘ํฌํ‘ธ๋ฅดํŠธ์˜ ์„œ๋ฒ„๋กœ ์ „์†ก๋œ๋‹ค๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค.

์ด๊ฒƒ์œผ๋กœ ๊ธฐ๋ณธ์ ์ธ DNS ์„ค์ •์ด ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ๋„๋ฉ”์ธ ๋“ฑ๋ก ๊ธฐ๊ด€์˜ ์›น์‚ฌ์ดํŠธ์— ์ ‘์†ํ•˜์—ฌ ํ˜„์žฌ ๋„๋ฉ”์ธ NS๋ฅผ ClouDNS์—์„œ ๋ฐœ๊ธ‰ํ•œ NS๋กœ ๊ต์ฒดํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  NS๊ฐ€ ์—…๋ฐ์ดํŠธ๋˜๋Š” ๋™์•ˆ ์„œ๋ฒ„๋ฅผ ์ค€๋น„ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

SSL ์ธ์ฆ์„œ ์„ค์น˜

๋‹น์‚ฌ์˜ CDN์€ HTTPS๋ฅผ ํ†ตํ•ด ์ž‘๋™ํ•˜๋ฏ€๋กœ ๋„๋ฉ”์ธ ๋˜๋Š” ํ•˜์œ„ ๋„๋ฉ”์ธ์— ๋Œ€ํ•œ SSL ์ธ์ฆ์„œ๊ฐ€ ์ด๋ฏธ ์žˆ๋Š” ๊ฒฝ์šฐ ์ด๋ฅผ ๋ชจ๋“  ์„œ๋ฒ„(์˜ˆ: ๋””๋ ‰ํ„ฐ๋ฆฌ)์— ์—…๋กœ๋“œํ•˜์„ธ์š”. /etc/ssl/๋„๋ฉ”์ธ/

์ธ์ฆ์„œ๊ฐ€ ์—†์œผ๋ฉด Let's Encrypt์—์„œ ๋ฌด๋ฃŒ๋กœ ์ธ์ฆ์„œ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์— ๋”ฑ ๋งž์Šต๋‹ˆ๋‹ค ACME ์‰˜ ์Šคํฌ๋ฆฝํŠธ. ํด๋ผ์ด์–ธํŠธ๋Š” ํŽธ๋ฆฌํ•˜๊ณ  ๊ตฌ์„ฑํ•˜๊ธฐ ์‰ฌ์šฐ๋ฉฐ, ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์ ์€ ClouDNS์˜ API๋ฅผ ํ†ตํ•ด DNS๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋„๋ฉ”์ธ/ํ•˜์œ„ ๋„๋ฉ”์ธ์„ ๊ฒ€์ฆํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ์„œ๋ฒ„ ์ค‘ ํ•˜๋‚˜์ธ ์œ ๋Ÿฝ 199.247.18.199์—๋งŒ acme.sh๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค. ์ด ์„œ๋ฒ„์—์„œ ์ธ์ฆ์„œ๋Š” ๋‹ค๋ฅธ ๋ชจ๋“  ์„œ๋ฒ„๋กœ ๋ณต์‚ฌ๋ฉ๋‹ˆ๋‹ค. ์„ค์น˜ํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•˜์‹ญ์‹œ์˜ค.

root@cdn:~# wget -O - https://get.acme.sh | bash; source ~/.bashrc

์Šคํฌ๋ฆฝํŠธ๋ฅผ ์„ค์น˜ํ•˜๋Š” ๋™์•ˆ ๋‹น์‚ฌ์˜ ์ฐธ์—ฌ ์—†์ด ์ธ์ฆ์„œ๋ฅผ ์ถ”๊ฐ€๋กœ ์—…๋ฐ์ดํŠธํ•˜๊ธฐ ์œ„ํ•œ CRON ์ž‘์—…์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

์ธ์ฆ์„œ ๋ฐœ๊ธ‰ ์‹œ ๋„๋ฉ”์ธ ํ™•์ธ์€ API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ DNS๋ฅผ ํ†ตํ•ด ์ˆ˜ํ–‰๋˜๋ฏ€๋กœ Reseller API ๋ฉ”๋‰ด์˜ ClouDNS ๊ฐœ์ธ ๊ณ„์ •์—์„œ ์ƒˆ API ์‚ฌ์šฉ์ž๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ auth-id์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ํŒŒ์ผ์— ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค. ~/.acme.sh/dnsapi/dns_cloudns.sh (ํŒŒ์ผ๊ณผ ํ˜ผ๋™ํ•˜์ง€ ๋งˆ์„ธ์š”. dns_clouddns.sh). ์ฃผ์„์„ ์ œ๊ฑฐํ•˜๊ณ  ํŽธ์ง‘ํ•ด์•ผ ํ•˜๋Š” ์ค„์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

CLOUDNS_AUTH_ID=<auth-id>
CLOUDNS_AUTH_PASSWORD="<ะฟะฐั€ะพะปัŒ>"

์ด์ œ SSL ์ธ์ฆ์„œ๋ฅผ ์š”์ฒญํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. cdn.sayt.in

root@cdn:~# acme.sh --issue --dns dns_cloudns -d cdn.sayt.in --reloadcmd "service nginx reload"

๋งค๊ฐœ๋ณ€์ˆ˜์—๋Š” ์•ž์œผ๋กœ ๊ฐ ์ธ์ฆ์„œ ์œ ํšจ์„ฑ ์—…๋ฐ์ดํŠธ ํ›„์— ์›น ์„œ๋ฒ„ ๊ตฌ์„ฑ์„ ์ž๋™์œผ๋กœ ๋‹ค์‹œ ๋กœ๋“œํ•˜๋Š” ๋ช…๋ น์„ ์ง€์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

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

CDN ์ˆ˜์ง‘ ๋ฐ ์„ค์ •

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

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

root@cdn:~# mkdir -p /root/.acme.sh/cdn.sayt.in/
root@cdn:~# scp -r [email protected]:/root/.acme.sh/cdn.sayt.in/* /root/.acme.sh/cdn.sayt.in/

์ธ์ฆ์„œ๋ฅผ ์ •๊ธฐ์ ์œผ๋กœ ์—…๋ฐ์ดํŠธํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‘ ์„œ๋ฒ„ ๋ชจ๋‘์— ์ผ์ผ CRON ์ž‘์—…์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

scp -r [email protected]:/root/.acme.sh/cdn.sayt.in/* /root/.acme.sh/cdn.sayt.in/ && service nginx reload

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

Nginx ์„ค์น˜ ๋ฐ ๊ตฌ์„ฑ

์ •์  ์ฝ˜ํ…์ธ ๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ์บ์‹ฑ ํ”„๋ก์‹œ ์„œ๋ฒ„๋กœ ๊ตฌ์„ฑ๋œ Nginx๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ํŒจํ‚ค์ง€ ๋ชฉ๋ก์„ ์—…๋ฐ์ดํŠธํ•˜๊ณ  ์„ธ ์„œ๋ฒ„ ๋ชจ๋‘์— ์„ค์น˜ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

root@cdn:~# apt update
root@cdn:~# apt install nginx

๊ธฐ๋ณธ๊ฐ’ ๋Œ€์‹  ์•„๋ž˜ ์Šคํฌ์ผ๋Ÿฌ์˜ ๊ตฌ์„ฑ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
nginx.conf

user www-data;
worker_processes auto;
pid /run/nginx.pid;

events {
    worker_connections 4096;
    multi_accept on;
}

http {
    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    types_hash_max_size 2048;

    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    access_log off;
    error_log /var/log/nginx/error.log;

    gzip on;
    gzip_disable "msie6";
    gzip_comp_level 6;
    gzip_proxied any;
    gzip_vary on;
    gzip_types text/plain application/javascript text/javascript text/css application/json application/xml text/xml application/rss+xml;
    gunzip on;            

    proxy_temp_path    /var/cache/tmp;
    proxy_cache_path   /var/cache/cdn levels=1:2 keys_zone=cdn:64m max_size=20g inactive=7d;
    proxy_cache_bypass $http_x_update;

server {
  listen 443 ssl;
  server_name cdn.sayt.in;

  ssl_certificate /root/.acme.sh/cdn.sayt.in/cdn.sayt.in.cer;
  ssl_certificate_key /root/.acme.sh/cdn.sayt.in/cdn.sayt.in.key;

  location / {
    proxy_cache cdn;
    proxy_cache_key $uri$is_args$args;
    proxy_cache_valid 90d;
    proxy_pass https://sayt.in;
    }
  }
}

๊ตฌ์„ฑ์—์„œ ๋‹ค์Œ์„ ํŽธ์ง‘ํ•ฉ๋‹ˆ๋‹ค.

  • ์ตœ๋Œ€ ํฌ๊ธฐ โ€” ์บ์‹œ ํฌ๊ธฐ๊ฐ€ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋””์Šคํฌ ๊ณต๊ฐ„์„ ์ดˆ๊ณผํ•˜์ง€ ์•Š์Œ
  • ๋น„ํ™œ์„ฑ โ€” ์•ก์„ธ์Šค๋˜์ง€ ์•Š์€ ์บ์‹œ๋œ ๋ฐ์ดํ„ฐ์˜ ์ €์žฅ ์‹œ๊ฐ„
  • ssl_certificate ะธ SSL_certificate_key โ€” SSL ์ธ์ฆ์„œ ๋ฐ ํ‚ค ํŒŒ์ผ์˜ ๊ฒฝ๋กœ
  • ํ”„๋ก์‹œ_์บ์‹œ_์œ ํšจ โ€” ์บ์‹œ๋œ ๋ฐ์ดํ„ฐ์˜ ์ €์žฅ ์‹œ๊ฐ„
  • ํ”„๋ก์‹œ ํŒจ์Šค โ€” CDN์ด ์บ์‹ฑ์„ ์œ„ํ•ด ํŒŒ์ผ์„ ์š”์ฒญํ•  ์›๋ณธ ์„œ๋ฒ„์˜ ์ฃผ์†Œ์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ์˜ ์˜ˆ์—์„œ๋Š” ์ด๊ฒƒ์ด๋‹ค sayt.in

๋ณด์‹œ๋‹ค์‹œํ”ผ ๋ชจ๋“  ๊ฒƒ์ด ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. ์ง€์‹œ๋ฌธ์˜ ์œ ์‚ฌ์„ฑ์œผ๋กœ ์ธํ•ด ์บ์‹ฑ ์‹œ๊ฐ„์„ ์„ค์ •ํ•˜๋Š” ๋ฐ ์œ ์ผํ•œ ์–ด๋ ค์›€์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋น„ํ™œ์„ฑ ะธ ํ”„๋ก์‹œ_์บ์‹œ_์œ ํšจ. ์šฐ๋ฆฌ์˜ ์˜ˆ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‚ดํŽด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฐ ์ผ์ด ์ผ์–ด๋‚  ๋•Œ ๋น„ํ™œ์„ฑ=7์ผ ะธ Proxy_cache_valid 90์ผ:

  • 7์ผ ์ด๋‚ด์— ์š”์ฒญ์ด ๋ฐ˜๋ณต๋˜์ง€ ์•Š์œผ๋ฉด ์ด ๊ธฐ๊ฐ„์ด ์ง€๋‚œ ํ›„ ๋ฐ์ดํ„ฐ๊ฐ€ ์บ์‹œ์—์„œ ์‚ญ์ œ๋ฉ๋‹ˆ๋‹ค.
  • ์š”์ฒญ์ด 7์ผ๋งˆ๋‹ค ํ•œ ๋ฒˆ ์ด์ƒ ๋ฐ˜๋ณต๋˜๋ฉด ์บ์‹œ์˜ ๋ฐ์ดํ„ฐ๋Š” 90์ผ ํ›„์— ์˜ค๋ž˜๋œ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ๋˜๋ฉฐ ๋‹ค์Œ ์š”์ฒญ ์‹œ Nginx๋Š” ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜์—ฌ ์›๋ž˜ ์„œ๋ฒ„์—์„œ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

ํŽธ์ง‘์„ ๋งˆ์น˜๊ณ  nginx.conf, ๊ตฌ์„ฑ์„ ๋‹ค์‹œ ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.

root@cdn:~# service nginx reload

์šฐ๋ฆฌ์˜ CDN์€ ์™„์ „ํžˆ ์ค€๋น„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์›” 15๋‹ฌ๋Ÿฌ. ์šฐ๋ฆฌ๋Š” 3๊ฐœ ๋Œ€๋ฅ™์—์„œ ์ ‘์† ์ง€์ ๊ณผ 1TB์˜ ํŠธ๋ž˜ํ”ฝ(๊ฐ ์œ„์น˜๋งˆ๋‹ค XNUMXTB)์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค.

CDN ์ž‘๋™ ํ™•์ธ

๋‹ค์–‘ํ•œ ์ง€๋ฆฌ์  ์œ„์น˜์—์„œ CDN์— ๋Œ€ํ•œ ping์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ํ•‘ ์„œ๋น„์Šค๊ฐ€ ์ด์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

์‹œ์ž‘์ 
์ฃผ์ธ
IP
ํ‰๊ท  ์‹œ๊ฐ„(๋ฐ€๋ฆฌ์ดˆ)

๋…์ผ ๋ฒ ๋ฅผ๋ฆฐ
cdn.sayt.in
199.247.18.199
9.6

๋„ค๋œ๋ž€๋“œ, ์•”์Šคํ…Œ๋ฅด๋‹ด
cdn.sayt.in
199.247.18.199
10.1

ํ”„๋ž‘์Šค ํŒŒ๋ฆฌ
cdn.sayt.in
199.247.18.199
16.3

์˜๊ตญ, ๋Ÿฐ๋˜
cdn.sayt.in
199.247.18.199
14.9

์บ๋‚˜๋‹ค, ํ† ๋ก ํ† 
cdn.sayt.in
149.28.121.123
16.2

๋ฏธ๊ตญ, ์ƒŒํ”„๋ž€์‹œ์Šค์ฝ”
cdn.sayt.in
149.28.121.123
52.7

๋ฏธ๊ตญ, ๋‹ฌ๋ผ์Šค
cdn.sayt.in
149.28.121.123
23.1

๋ฏธ๊ตญ, ์‹œ์นด๊ณ 
cdn.sayt.in
149.28.121.123
2.6

๋ฏธ๊ตญ, ๋‰ด์š•
cdn.sayt.in
149.28.121.123
19.8

์‹ฑ๊ฐ€ํฌ๋ฅด
cdn.sayt.in
157.230.240.216
1.7

์ผ๋ณธ ๋„์ฟ„
cdn.sayt.in
157.230.240.216
74.8

ํ˜ธ์ฃผ, ์‹œ๋“œ๋‹ˆ
cdn.sayt.in
157.230.240.216
95.9

๊ฒฐ๊ณผ๋Š” ์ข‹์Šต๋‹ˆ๋‹ค. ์ด์ œ ๋ฉ”์ธ ์‚ฌ์ดํŠธ์˜ ๋ฃจํŠธ์— ํ…Œ์ŠคํŠธ ์ด๋ฏธ์ง€๋ฅผ ๋ฐฐ์น˜ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ.jpg CDN์„ ํ†ตํ•ด ๋‹ค์šด๋กœ๋“œ ์†๋„๋ฅผ ํ™•์ธํ•˜์„ธ์š”. ๊ทธ๊ฒƒ์€ ๋งํ•œ๋‹ค - ์™„๋ฃŒ. ์ฝ˜ํ…์ธ ๊ฐ€ ๋น ๋ฅด๊ฒŒ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค.

CDN ์ง€์ ์—์„œ ์บ์‹œ๋ฅผ ์ง€์šฐ๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ๋ฅผ ๋Œ€๋น„ํ•ด ์ž‘์€ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž‘์„ฑํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.
purge.sh

#!/bin/bash
if [ -z "$1" ]
then
    echo "Purging all cache"
    rm -rf /var/cache/cdn/*
else
    echo "Purging $1"
    FILE=`echo -n "$1" | md5sum | awk '{print $1}'`
    FULLPATH=/var/cache/cdn/${FILE:31:1}/${FILE:29:2}/${FILE}
    rm -f "${FULLPATH}"
fi

์ „์ฒด ์บ์‹œ๋ฅผ ์‚ญ์ œํ•˜๋ ค๋ฉด ์‹คํ–‰ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ณ„๋„์˜ ํŒŒ์ผ์„ ์ง€์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

root@cdn:~# ./purge.sh /test.jpg

๊ฒฐ๋ก  ๋Œ€์‹ 

๋งˆ์ง€๋ง‰์œผ๋กœ, ํ•œ๋•Œ ์ €๋ฅผ ๊ดด๋กญํ˜”๋˜ ๊ฐˆํ€ด๋ฅผ ์ฆ‰์‹œ ๋›ฐ์–ด๋„˜์„ ์ˆ˜ ์žˆ๋Š” ๋ช‡ ๊ฐ€์ง€ ์œ ์šฉํ•œ ํŒ์„ ์ œ๊ณตํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

  • CDN ๋‚ด๊ฒฐํ•จ์„ฑ์„ ๋†’์ด๋ ค๋ฉด ์„œ๋ฒ„ ์žฅ์•  ๋ฐœ์ƒ ์‹œ A ๋ ˆ์ฝ”๋“œ๋ฅผ ๋น ๋ฅด๊ฒŒ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” DNS ์žฅ์•  ์กฐ์น˜๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์ด ์ž‘์—…์€ ๋„๋ฉ”์ธ DNS ๋ ˆ์ฝ”๋“œ ์ œ์–ดํŒ์—์„œ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.
  • ์ง€๋ฆฌ์  ๋ฒ”์œ„๊ฐ€ ๋„“์€ ์‚ฌ์ดํŠธ์—๋Š” ์˜์‹ฌํ•  ์—ฌ์ง€ ์—†์ด ๋งŽ์€ ์ˆ˜์˜ CDN ํฌ์ธํŠธ๊ฐ€ ํ•„์š”ํ•˜์ง€๋งŒ ์ง€๋‚˜์น˜๊ฒŒ ์—ด๊ด‘ํ•˜์ง€๋Š” ๋งˆ์‹ญ์‹œ์˜ค. ์•„๋งˆ๋„ ์œ ๋Ÿฝ, ๋ถ๋ฏธ(๋™๋ถ€), ๋ถ๋ฏธ(์„œ๋ถ€), ์‹ฑ๊ฐ€ํฌ๋ฅด, ํ˜ธ์ฃผ, ํ™์ฝฉ, ์ผ๋ณธ ๋“ฑ 6~7๊ฐœ ์žฅ์†Œ์— ์„œ๋ฒ„๋ฅผ ๋ฐฐ์น˜ํ•œ๋‹ค๋ฉด ์‚ฌ์šฉ์ž๋Š” ์œ ๋ฃŒ CDN๊ณผ ํฐ ์ฐจ์ด๋ฅผ ๋Š๋ผ์ง€ ๋ชปํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
  • ๋•Œ๋•Œ๋กœ ํ˜ธ์ŠคํŒ… ์—…์ฒด๋Š” CDN ๋ชฉ์ ์œผ๋กœ ์ž„๋Œ€ ์„œ๋ฒ„ ์‚ฌ์šฉ์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ฐ‘์ž๊ธฐ ์ฝ˜ํ…์ธ  ์ „์†ก ๋„คํŠธ์›Œํฌ๋ฅผ ์„œ๋น„์Šค๋กœ ๋ฐฐํฌํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ•œ ๊ฒฝ์šฐ ํŠน์ • ํ˜ธ์ŠคํŒ… ๊ณต๊ธ‰์ž์˜ ๊ทœ์น™์„ ๋ฏธ๋ฆฌ ์ฝ์–ด๋ณด๋Š” ๊ฒƒ์„ ์žŠ์ง€ ๋งˆ์„ธ์š”.
  • ์—ฐ๊ตฌ ์ˆ˜์ค‘ ํ†ต์‹  ์ง€๋„๋Œ€๋ฅ™์ด ์–ด๋–ป๊ฒŒ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š”์ง€ ์ƒ์ƒํ•˜๊ณ  ์ฝ˜ํ…์ธ  ์ „์†ก ๋„คํŠธ์›Œํฌ๋ฅผ ๊ตฌ์ถ•ํ•  ๋•Œ ์ด๋ฅผ ๊ณ ๋ คํ•ฉ๋‹ˆ๋‹ค.
  • ํ™•์ธํ•ด ๋ณด์„ธ์š” ์—ฌ๋Ÿฌ ๊ณณ์—์„œ ์˜จ ํ•‘ ๊ท€ํ•˜์˜ ์„œ๋ฒ„์—. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด CDN ํฌ์ธํŠธ์— ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ์ง€์—ญ์„ ํ™•์ธํ•˜๊ณ  GeoDNS๋ฅผ ๋ณด๋‹ค ์ •ํ™•ํ•˜๊ฒŒ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ž‘์—…์— ๋”ฐ๋ผ ํŠน์ • ์บ์‹ฑ ์š”๊ตฌ ์‚ฌํ•ญ์— ๋งž๊ฒŒ Nginx๋ฅผ ์‚ฌ์šฉ์ž ์ •์˜ํ•˜๊ณ  ์„œ๋ฒ„์˜ ๋กœ๋“œ๋ฅผ ๊ณ ๋ คํ•˜๋Š” ๊ฒƒ์ด ์œ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Nginx ์บ์‹œ์— ๊ด€ํ•œ ๊ธฐ์‚ฌ๋Š” ๋‚˜์—๊ฒŒ ๋งŽ์€ ๋„์›€์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์— ๊ณผ๋ถ€ํ•˜์‹œ ์ž‘์—… ๊ฐ€์†ํ™” : ์—ฌ๊ธฐ์— ะธ ์—ฌ๊ธฐ์—

์ถœ์ฒ˜ : habr.com