DevLog ๐ถ
[Network] CDN - ์บ์ ์๋ฒ๋ก ๋น ๋ฅด๊ฒ ๋ก๋ํ๊ธฐ ๋ณธ๋ฌธ
๐ฑ CDS (Content Delivery Service)
๋ง์ฝ, ๋ด๊ฐ ๋ฐฐํฌํ ์๋ฒ๊ฐ ํ๊ตญ์๋ง ์กด์ฌํ์ง๋ง ์ ์ธ๊ณ ๋ค์ํ ๊ณณ์์ ์ก์ธ์ค๋๊ณ ์๋ค๊ณ ์๊ฐํด๋ณด์.
์๋ง์ ํ์ผ๊ณผ ๋ฐ์ดํฐ์ ๋ํด ์ ์ธ๊ณ์ ์๋ตํด์ผ ํ๋ ์ํฉ์์, ๋ฉ๋ฆฌ ์๋ ๊ตญ๊ฐ์ ์ฌ์ฉ์์ ๋ํด์ ์ ๋ฌํด์ผ ํ๋ค๋ฉด?
ํ๊ตญ ์ฌ์ฉ์์๊ฒ๋ ๋น ๋ฅด๊ฒ ์ ๋ฌํ ์ ์์ง๋ง, ๋ฉ๋ฆฌ ์๋ ์ฌ์ฉ์์ ์์ฒญ์ ๋ฐ์์ ํ๊ตญ์์ ์ฒ๋ฆฌํ๊ณ , ๋ ๋ค์ ๋ฐ์ดํฐ๋ฅผ ๊ณณ๊ณณ์ ์กด์ฌํ๋ ์ฌ์ฉ์์๊ฒ ์ ๋ฌํด์ผ ํ๊ธฐ ๋๋ฌธ์ ์ด๋ ์ ๋ ์ง์ฐ์ด ๋ฐ์ํ ์๋ฐ์ ์๋ค.
์ด๋ฌํ ์ํฉ์์ ๋ค์์ ์บ์ ์๋ฒ๋ฅผ ์ฌ๋ฌ ๊ฐ์ ์ง์ญ์ ๋ฐฐ์นํ์ฌ ํธ๋ํฝ์ ๋ถ์ฐ์ํค๋ ๋ฐฉ๋ฒ์ด ํ์ํ๋ค!
๊ทธ๋ ๋ค๋ฉด ์บ์ ์๋ฒ๋ ์ด๋์ ๋ฌ์ผ ํ ๊น?
1. ์น ์๋ฒ ์ง์ ์ ๋๊ธฐ
์น ์๋ฒ ์ง์ ์ ๋๊ฒ ๋๋ฉด ์๋ฒ ์์ฒด์ ๋ถํ๋ ์ค์ด๋ค๊ฒ ๋์ง๋ง, ์ธํฐ๋ท์์ ํ๋ฅด๋ ํธ๋ํฝ์ ์กฐ์ ํ ์ ์๋ค.
2. ํด๋ผ์ด์ธํธ ์ธก์ ๋๊ธฐ
1๋ฒ์ ๊ฒฝ์ฐ์ ๋ฌ๋ฆฌ, ์ธํฐ๋ท์ ํ๋ฅด๋ ํธ๋ ํฝ์ ์ต์ ํ ์ ์๋ค.
๊ทธ๋์ ๋์ฉ๋ ๋ฐ์ดํฐ๋ฅผ ํฌํจํ๋ ์ปจํ ์ธ ๋ผ๋ฉด ํด๋ผ์ด์ธํธ ์ธก์ ๋๋ ๊ฒ์ด ๋ ์ข๋ค.
ํ์ง๋ง, ์น ์๋ฒ ์ด์์๊ฐ ์ ์ด ๋ถ๊ฐ๋ฅํ๊ณ , ํด๋ผ์ด์ธํธ๊ฐ ์ ๋ง ์บ์ ์๋ฒ๋ฅผ ๊ฐ์ง๊ณ ์๋์ง ๋จ์ ํ ์๊ฐ ์๋ค.
(๋ณดํต ์น ์๋ฒ ์ธก์์๋ ํด๋ผ์ด์ธํธ์ ์ ๋ณด๋ฅผ ์์ ํ ๋ฏฟ์ด์๋ ์ ๋๋ค.)
3. ์ธํฐ๋ท ์ฃผ์์ ๋๊ธฐ
ํ๋ก๋ฐ์ด๋์ ๊ณ์ฝํ์ฌ ์๋ฒ ์ด์์๊ฐ ์ ์ดํ ์ ์๋ ์บ์ ์๋ฒ๋ฅผ ํ๋ก๋ฐ์ด๋์ ๋๋ ๊ฒ์ด๋ค.
์ด๋ ๊ฒ ๋๋ฉด ์ธํฐ๋ท์์ ํ๋ฅด๋ ํธ๋ํฝ๋ ์ ์ดํ ์ ์์ผ๋ฉฐ, ์๋ฒ ์ด์์๊ฐ ์บ์ ์๋ฒ๋ฅผ ์ ์ดํ ์ ์๊ฒ ๋๋ค.
ํ์ง๋ง, ์๋ฒ ์ธก์์๋ ์ธํฐ๋ท์ ์ด๋ ์ธก์์ ์ก์ธ์คํ๋์ง ์ ์ ์๊ธฐ ๋๋ฌธ์ POP (point of presence, ์ธํฐ๋ท ์ก์ธ์ค ํฌ์ธํธ) ์ ๋ถ์ ์บ์ ์๋ฒ๋ฅผ ์ค์นํด์ผ ๋ผ์ ํ์ค์ ์ผ๋ก ๋ถ๊ฐ๋ฅํ๋ค. ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์ ๋ณดํต์ ์ค์ํ ํ๋ก๋ฐ์ด๋ ์์ฃผ๋ก ์บ์ ์๋ฒ๋ฅผ ๋์ด ์บ์ ์๋ฒ๋ฅผ ์ค์ด๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ค.
์ด๋ ๊ฒ ํ๋ฉด ํ ์๋ ์์ง๋ง, ๋น์ฉ์ ์ผ๋ก ๋ง์ด ๋ค๊ธฐ ๋๋ฌธ์ ์บ์ ์๋ฒ๋ฅผ ์ค์นํ๊ณ ์น ์๋ฒ ์ด์์์๊ฒ ๋์ถํ๋ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ ์ด์์๊ฐ ๋ด๋นํ๊ฒ ๋์๋๋ฐ, ์ด๋ฅผ CDS (Content Delivery Service) - ์ฝํ ์ธ ๋ฐฐํฌ ์๋น์ค๋ผ๊ณ ํ๋ค.
CDSP (CDS๋ฅผ ์ ๊ณตํ๋ ์ฌ์ ์)๋ ์ค์ํ ํ๋ก๋ฐ์ด๋์ ๊ณ์ฝํ๊ณ , ๊ทธ๊ณณ์ ์ฌ๋ฌ ๊ฐ์ ์บ์ ์๋ฒ๋ฅผ ์ค์นํ๋ฉด์, ๋์์ ์น ์๋ฒ ์ด์์์๋ ๊ณ์ฝํ์ฌ ์น ์๋ฒ์ ์บ์ ์๋ฒ ์ฌ์ด๋ฅผ ์ฐ๊ฒฐํด์ฃผ๋ ์ญํ ์ ํ๋ค.
= ๊ฒฐ๊ณผ์ ์ผ๋ก ์ฌ์ฉ์์ ์์ฒญ์ ๋ํด์ ์ค์ ์๋ฒ๊ฐ ์๋ ์บ์ ์๋ฒ๊ฐ ์๋ตํ๋๋ก ๋ง๋๋ ๊ฒ!
ex) AWS์ CloudFront๊ฐ ๋ํ์ ์ธ ์ ๊ณต ์๋น์ค ์ค ํ๋์ด๋ค.
+ ๋ณดํต์ 'CDN'์ด๋ผ๋ ๋ช ์นญ์ ๋ง์ด ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์๋์์๋ ๊ทธ๋ ๊ฒ ๋ถ๋ฅด๊ฒ ๋ค.
๐ฌ CDN์ ์ฌ์ฉํ๋ฉด ๋ฌด์์ด ์ข์๊น?
- ํ์ด์ง ๋ก๋ ์๊ฐ ๋จ์ถ
- ๋์ญํญ ๋น์ฉ ์ ๊ฐ (์๋ณธ ์๋ฒ์ ์ ๊ณต ๋ฐ์ดํฐ ์์ ์ค์ด๊ฒ ๋๋๊น)
- ์ฝํ ํธ ๊ฐ์ฉ์ฑ (๋ ๋ง์ ํธ๋ํฝ ์ฒ๋ฆฌ ๊ฐ๋ฅ)
- ์น ์ฌ์ดํธ์ ๋ณด์ ๊ฐํ (DDoS ๊ณต๊ฒฉ๋ ๋ถ์ฐ์ํค๋ ์กฐ๊ธ ๋ ๊ฐํจ)
๐ฌ ๋ณดํต ์ธ์ ์ฌ์ฉํ ๊น?
- ๋น ๋ฅด๊ฒ ์ปจํ ์ธ ๋ฅผ ์ ์กํด์ผ ํ ๋ (๋ด์ค ๊ฐ์...?)
- ์ค์๊ฐ ์คํธ๋ฆฌ๋ฐ
- ๋์ ์ฌ์ฉ์๊ฐ ๋ง์ ๊ฒฝ์ฐ
๊ธฐ๋ณธ์ ์ผ๋ก CDN์ ๊ฒฝ์ฐ ์ฌ์ฉ์๊ฐ ์น ๋ธ๋ผ์ฐ์ ์ ์์ฒญ์ ๋ณด๋ด๋ฉด (ํด๋ผ์ด์ธํธ์ ์์ฒญ์ด ์๋ฒ๋ก ์ค๊ฒ ๋๋ฉด) ์๋ณธ ์๋ฒ๋ก๋ถํฐ ์ปจํ ์ธ ๋ฅผ ๊ฐ์ ธ์ ์ ์ ์๊ฒ ์ ์กํ ๋์์ ์บ์ ์๋ฒ์ ์ ์ฅํ๋ค. ๊ทธ๋ฆฌ๊ณ , ์ดํ์ ๋ฐ์ํ ์์ฒญ์ ๊ฒฝ์ฐ '๊ฐ์ฅ ๊ฐ๊น์ด' ์บ์ ์๋ฒ์๊ฒ ์ก์ธ์คํ๋๋ก ๋ง๋ ๋ค.
๐ก '๊ฐ์ฅ ๊ฐ๊น์ด ์บ์ ์๋ฒ๋ฅผ ์ฐพ์๋ด๊ณ , ๊ทธ๊ณณ์ ์ก์ธ์คํ๋ค'
์ด ๋ง์ ์ด๋์์ ๋ค์ด๋ณธ ๊ฒ ๊ฐ์ง ์์๊ฐ? ๋ฐ๋ก DNS ์๋ฒ์์ IP ์ฃผ์๋ฅผ ์ฐพ์๋ด๋ ๊ณผ์ ์ด๋ค.
์์ ๊ทธ๋ฆผ์ ๋ณด์. ์์ ์จ์๋ MAC, IP ๊ฐ์ ์ ๋ณด๋ ํด๋ผ์ด์ธํธ์ ์กฐํ ๋ฉ์์ง์ด๋ค.
ํด๋ผ์ด์ธํธ ์ธก์ DNS ์๋ฒ๋ ํด๋ผ์ด์ธํธ์ ๊ฐ์ ์ฅ์์, ๋ผ์ฐํ ํ ์ด๋ธ์ ์ ์ํ ๋ผ์ฐํฐ๋ ์บ์ ์๋ฒ์ ์ค์น ์ฅ์์ ์๋ค๊ณ ๊ฐ์ ํด๋ณด์.
์ด๋, ๊ฐ์ฅ ๊ฐ๊น์ด ์บ์ ์๋ฒ๋ฅผ ์ฐพ์๋ด๊ธฐ ์ํด์ ๋จผ์ ์๋ฒ ์ธก์ DNS ์๋ฒ๋ ์บ์ ์๋ฒ์ ์๋ ๋ผ์ฐํฐ๋ก๋ถํฐ ๋ผ์ฐํ ํ ์ด๋ธ์ ๋ฐ๊ฒ ๋๋ค.
๋ผ์ฐํ ํ ์ด๋ธ์ ์ ๋ณด๋ฅผ ์กฐํฉํ๋ค ๋ณด๋ฉด ์ด๋ ํ ๋ผ์ฐํฐ A -> ํ๋ก๋ฐ์ด๋ X -> ํ๋ก๋ฐ์ด๋ Y -> ํด๋ผ์ด์ธํธ ์ธก DNS ์๋ฒ... ์ด๋ฐ ์์ผ๋ก ๊ฒฝ๋ก์ ๋ํ ์ ๋ณด๋ฅผ ์ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ต์ ์ธ ๊ฑฐ๋ฆฌ ์ ๋ฅผ ํ์ ํ ์ ์๊ฒ ๋๋ค.
์๋ฒ ์ธก DNS ์๋ฒ๋๋ผ์ฐํฐ ๊ฐ์๋งํผ ๋ผ์ฐํฐ ํ ์ด๋ธ์ ๊ฐ์ง๊ณ ์๊ฒ ๋๋ฉฐ, ์ด๋ฌํ ๊ฒฝ๋ก ์ ๋ณด์ ๋ฐ์ ์ก์ ์ฒ IP ์ฃผ์๋ฅผ ํตํด ์บ์ ์๋ฒ์ ํด๋ผ์ด์ธํธ ์ธก์ DNS ์๋ฒ ์ฌ์ด์ ๊ฑฐ๋ฆฌ๋ฅผ ์กฐ์ฌํ์ฌ ๊ฐ์ฅ ๊ฐ๊น์ด ์บ์ ์๋ฒ์ IP ์ฃผ์๋ฅผ ์ฐพ๋๋ค. (๋ชจ๋ ๋ผ์ฐํฐ ์ ๋ณด์ ๋ํด ๋น๊ตํ์ฌ ๊ฐ์ฅ ๊ฐ๊น์ด ๋ผ์ฐํฐ ์ฐพ๊ธฐ)
๐ฑ ๋ฆฌ๋ค์ด๋ ํธ ํ์ฉํ๊ธฐ
๊ฐ์ฅ ๊ฐ๊น์ด ์บ์ ์๋ฒ์ ์ก์ธ์คํ๊ธฐ ์ํด ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ ์ ์๋๋ฐ, 'Location'์ด๋ผ๋ HTTP ํค๋๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด๋ค.
Location ํค๋์ ๋ด๊ธด ๋ฆฌ์์ค ์์น๋ก ์ด๋ํ์ฌ ๊ฐ๊น์ด ์๋ฒ๋ก ์ด๋ํด๋๊ฐ๋ ๊ฒ์ด๋ค.
๊ทธ๋ฆฌ๊ณ , ์ด๋ ๊ฒ ์ด๋ํ๋ ๊ณผ์ ์ '๋ฆฌ๋ค์ด๋ ํธ'๋ผ๊ณ ํ๋ค.
๋ฆฌ๋ค์ด๋ ํธ๋ฅผ ํตํด ๊ฐ์ฅ ๊ฐ๊น์ด ์บ์ ์๋ฒ๋ฅผ ํด๋ผ์ด์ธํธ์ ํต์งํ ๋๋ ๋ฆฌ๋ค์ด๋ ํธ์ฉ ์๋ฒ๋ฅผ ์น ์๋ฒ์ธก์ DNS ์๋ฒ์ ๋ฑ๋กํ๊ฒ ๋๋ฉฐ, ํด๋ผ์ด์ธํธ๋ DNS ์๋ฒ์ ๋ฑ๋ก๋ ์ ๋ณด๋ฅผ ๋ฐํ์ผ๋ก HTTP ๋ฆฌํ์คํธ๋ฅผ ๋ณด๋ด๊ฒ ๋๋ค.
๊ทธ๋ฌ๋ฉด ๋ฆฌ๋ค์ด๋ ํธ ์๋ฒ ์ญ์ DNS ์๋ฒ์ฒ๋ผ ๊ฒฝ๋ก ์ ๋ณด๋ฅผ ๋ชจ์ ๊ฐ์ฅ ๊ฐ๊น์ด ์บ์ ์๋ฒ๋ฅผ ์ฐพ๊ฒ ๋๋ค.
ํด๋น ์บ์ ์๋ฒ๋ฅผ ๋ํ๋ด๋ ๊ฒฝ๋ก๋ฅผ Location ํค๋์ ๋ฃ์ด ์๋ต์ ์ ์กํด์ฃผ๋ฉด ํด๋ผ์ด์ธํธ๋ ํด๋น ์ ๋ณด๋ฅผ ๋ฐํ์ผ๋ก ์บ์ ์๋ฒ์ ์ก์ธ์คํ๊ฒ ๋๋ค. ๋ํ, Location ํค๋ ์ธ์๋ ํจํท์ ์๋ณต ์๊ฐ ๊ฐ์ ์ ๋ณด๋ฅผ ๋์ด ์๊ฐ ์ ๋ณด๋ฅผ ๋ฐํ์ผ๋ก ์ต์ ์ ์บ์ ์๋ฒ์ ์ก์ธ์ค ํ๋๋ก ๋ง๋ค ์ ์๋ค.
์ฌ์ค ๊ฑฐ์ ๋น์ทํ์ง๋ง, ์ฒซ ๋ฒ์งธ ๋ฐฉ๋ฒ์ ๊ฐ์ฅ ๊ฐ๊น์ด ์บ์ ์๋ฒ์ IP ์ฃผ์๋ฅผ ๋ฐํํด์ ํด๋น ์บ์ ์๋ฒ์ ์ ์ํ๋ ๋๋์ด๊ณ ...
๋ ๋ฒ์งธ ๋ฐฉ๋ฒ์ HTTP ๋ฉ์์ง๋ฅผ ๋ณ๋์ ์๋ฒ๋ก ๋ณด๋ด์ ํด๋น ์๋ฒ์์ ๊ฒฝ๋ก ์ ๋ณด๋ฅผ ๊ณ์ฐํ์ฌ ํค๋ ๊ฐ์ผ๋ก ๋ฐ๋ ๋๋...?
์ฒซ ๋ฒ์งธ ๋ฐฉ๋ฒ์ http ์ด์ ๋จ๊ณ์ธ ๊ฒ ๊ฐ๊ณ , ๋ ๋ฒ์งธ ๋ฐฉ๋ฒ์ http ๋ฉ์์ง๋ฅผ ํตํด ์ป๋ ๊ฒ ๊ฐ์๋ฐ ํท๊ฐ๋ฆฐ๋ค.
๐ฑ ์บ์ ์ ๋ณด๋ ์ธ์ ๊ฐฑ์ ํ์ง?
์บ์ ๊ด๋ จ ์ด์ผ๊ธฐ์์ ๊ฐ์ฅ ์ค์ํ ์ ์ค์ ํ๋์ด๋ค.
๊ธฐ์กด์๋ ํ ๋ฒ ์ก์ธ์คํ ๋ฐ์ดํฐ๋ฅผ ๋ ๋ฒ์งธ ์ก์ธ์ค ์ ๋ฐํํ๋๋ก ํ๋ ๋ฐฉ๋ฒ์ด ์์๋๋ฐ (ttl ๊ณ ๋ ค) ์ด ์ญ์ ๊ธฐ์กด ๋ฐ์ดํฐ์์ ์ ํฉ์ฑ์ ๋ณด์ฅํด์ค ์ ์๊ธฐ ๋๋ฌธ์, ์น ์๋ฒ์์ ๊ธฐ์กด์ ๋ฐ์ดํฐ๋ฅผ ๊ฐฑ์ ํ ๊ฒฝ์ฐ ์บ์ ์๋ฒ์ ๋๊ธฐํ๋ฅผ ์งํํด์ผ ํ๋ค.
์ด๋ฌ๋ฉด ํญ์ ์บ์ ์๋ฒ์ ๋ฐ์ดํฐ๊ฐ ์ต์ ์ด๋ผ๋ ๊ฒ์ ๋ณด์ฅํ ์ ์์ผ๋ฉฐ, CDN์ ์บ์ ์๋ฒ๋ ์ด์ ๋ํ ๋ฐฉ๋ฒ์ด ๋ด์ฅ๋์ด ์๋ค.
์๋ฅผ ๋ค์ด, ์์ ๋งํ๋ AWS CloudFront์ ๊ฒฝ์ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ผ์ ์บ์๊ฐ 24์๊ฐ ์ ๋ณด ์ ์ง๋๋ค.
HTTP ํค๋์ Cache-Control ํค๋๋ฅผ ํตํด์ ์บ์์ ์ ์ง ์๊ฐ์ ์ค์ ํ ์ ์์ง๋ง, ๊ฐ๋ฐ์๊ฐ ์ง์ ์บ์๊ฐ ๋ง๋ฃ๋๊ธฐ ์ ํ์ผ ๋ด์ฉ์ ๊ฐฑ์ ํ ์ ์๋ 'Invalidation'์ด๋ผ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๊ณ ์๋ค.
๋ํ, ์บ์ ๊ท์น์ ์ฐพ์๋ณด์๋๋ฐ ๊ธฐ๋ณธ์ ์ผ๋ก CDN์ ์บ์ ์ ์ฑ ์ HTTP์ ๋ฐ๋ฅด๋ ๊ฒ ๊ฐ๋ค.
You can control cache aging by configuring the Cache-Control: max-age field in an HTTP response header. By leveraging cache rules, you can optimize cache periods for different services.
์ ์ด์ ๊ฐ๋ฐ์๊ฐ ์บ์ฑ์ ๋ํ ๊ท์น์ ์ ํ ์ ์๋ ๊ฒ์ฒ๋ผ ๋ณด์ธ๋ค.
๐ก ํด์ฆ
Q. ํ์ฌ ์ฃผ๋ฅ๊ฐ ๋์ด ์๋ ๋ฐฉํ๋ฒฝ์ ์ ํ์ด ๋ฌด์์ผ๊น?
A. ํจํท ํํฐ๋งํ
Q. ๋ฐฉํ๋ฒฝ์์ ์ ํ๋ฆฌ์ผ์ด์ ์ข ๋ฅ๋ฅผ ์ง์ ํ ๋ ์ ๊ฒํ๋ ์ ๋ณด๋?
A. ํฌํธ ๋ฒํธ
Q. ์น ์๋ฒ์ ๋ถํ๋ฅผ ๋ง๊ธฐ ์ํด ์ก์ธ์ค๋ฅผ ์ฌ๋ฌ ๋์ ์๋ฒ์ ๋ถ๋ฐฐํ๋ ์ฅ์น๋?
A. ๋ก๋ ๋ฐธ๋ฐ์
Q. ์๋ฒ ์ธก์ ์ค์นํ๋ ํ๋ก์๋ ๋ฌด์์ผ๊น?
A. ๋ฆฌ๋ฒ์ค ํ๋ก์
Q. ์ธํฐ๋ท์ ๋ค์์ ์บ์ ์๋ฒ๋ฅผ ์ค์นํ๊ณ , ์น ์๋ฒ ์ด์์์๊ฒ ๋์ถํ๋ ์๋น์ค๋?
A. CDS