EIF 1: First Project (1) - AWS ๋ฐฐํฌ ๋ฐ Cloudfront Cache ์‚ญ์ œ

์ด๊ฑด TIL์ด๋ผ๊ธฐ๋ณด๋‹ค๋Š” 2WIL(2 Weeks I Learned)๊ฐ€ ๋  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 

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

๋จผ์ € AWS ๋ฐฐํฌ ๊ด€๋ จํ•ด์„œ ๋งŒ๋‚ฌ๋˜ ์—๋Ÿฌ๋“ค์„ ์–ด๋–ป๊ฒŒ ํ•ธ๋“ค๋งํ–ˆ๋Š”์ง€ ์ •๋ฆฌํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค!

 

AWS ๋ฐฐํฌ

Route53์— Server๋„ A๋‚˜ CNAME์œผ๋กœ ๋ ˆ์ฝ”๋“œ ์ถ”๊ฐ€ํ•ด์ฃผ๊ธฐ

 

์—ฌ๊ธฐ์„œ A๋‚˜ CNAME ์€ DNS์˜ ์ผ์ข…์ž…๋‹ˆ๋‹ค.

 

DNS๋Š” Domain Name System์˜ ์•ฝ์ž๋กœ ํ˜ธ์ŠคํŠธ์˜ ๋„๋ฉ”์ธ ์ด๋ฆ„์„ ํ˜ธ์ŠคํŠธ์˜ ๋„คํŠธ์›Œํฌ ์ฃผ์†Œ๋กœ ๋ฐ”๊พธ๊ฑฐ๋‚˜ ๊ทธ ๋ฐ˜๋Œ€์˜ ๋ณ€ํ™˜์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ค์–ด์ง„ ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด www.example.com ๊ณผ ๊ฐ™์€ ์ฃผ ์ปดํ“จํ„ฐ์˜ ๋„๋ฉ”์ธ ์ด๋ฆ„์„ 192.168.1.0๊ณผ ๊ฐ™์€ IP ์ฃผ์†Œ๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  ๋ผ์šฐํŒ… ์ •๋ณด๋ฅผ ์ œ๊ณตํ•  ๋•Œ ์“ฐ์ด๋Š” ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค.  

 

A Record๋Š” DNS์— ์ €์žฅ๋˜๋Š” ์ •๋ณด์˜ ํƒ€์ž…์œผ๋กœ ๋„๋ฉ”์ธ ์ฃผ์†Œ์™€ ์„œ๋ฒ„์˜ IP ์ฃผ์†Œ๋ฅผ ์ง์ ‘ ๋งคํ•‘์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์œ„์™€ ๊ฐ™์€ www.example.com์ด A Record์— ํ•ด๋‹น๋ฉ๋‹ˆ๋‹ค. 

 

CNAME Record๋Š” Canonical Name Record์˜ ์•ฝ์ž๋กœ ํ•˜๋‚˜์˜ ๋„๋ฉ”์ธ ๋„ค์ž„์„ ๋˜ ๋‹ค๋ฅธ ๋„๋ฉ”์ธ ์ด๋ฆ„์œผ๋กœ ๋งคํ•‘์‹œํ‚ค๋Š” ๋„๋ฉ”์ธ ๋„ค์ž„ ์‹œ์Šคํ…œ์˜ ์ผ์ข…์ž…๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ IP์ฃผ์†Œ๋กœ๋ถ€ํ„ฐ ํ•œ ๊ฐœ๊ฐ€ ์•„๋‹Œ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์„œ๋น„์Šค๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ์ข‹์Šต๋‹ˆ๋‹ค. ๋˜๋Š” IP ์ฃผ์†Œ๊ฐ€ ์ž์ฃผ ๋ฐ”๋€Œ๋Š” ํ™˜๊ฒฝ์—์„œ ์œ ์—ฐํ•˜๊ฒŒ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. 

ํ•œํŽธ, ์‹ค์ œ IP ์ฃผ์†Œ๋ฅผ ์–ป์„ ๋•Œ๊นŒ์ง€ ์—ฌ๋Ÿฌ ๋ฒˆ DNS ์ •๋ณด๋ฅผ ์š”์ฒญํ•ด์•ผํ•œ๋‹ค๋Š” ์ ์ด ๋‹จ์ ์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ ์€ ์„ฑ๋Šฅ์ €ํ•˜๋ฅผ ์œ ๋ฐœํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

 

 

 

 

 

 

Cloudfront Cache ์‚ญ์ œ

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

๊ทธ ์ด์œ ๋Š” ์•„๋ž˜ ๊ทธ๋ฆผ์„ ์ฐธ๊ณ ํ•˜๋ฉด์„œ ์„ค๋ช…ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

CDN๊ณผ Edge์˜ ์ž‘๋™ ์˜ˆ์‹œ

Cache๊ฐ€ ์—†๋Š” Empty Edge๋Š” Origin์— ์žˆ๋Š” ํŒŒ์ผ์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

๋ฐ˜๋ฉด, Cache๊ฐ€ ์žˆ๋Š” Cached Edge๋Š” ์บ์‹œ๋œ ํŒŒ์ผ์„ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. ์š”์ฒญ ์ฒ˜๋ฆฌ ์†๋„ ๋ถ€๋ถ„์—์„œ๋Š” ์บ์‹œ๋œ ํŒŒ์ผ์„ ๋ฐ”๋กœ ์ „๋‹ฌํ•ด์ฃผ๋‹ˆ Empty Edge๋ฅผ ํ†ตํ•ด ์ „๋‹ฌํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ํ›จ์”ฌ ์œ ๋ฆฌํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์˜ค๋ฆฌ์ง„ ํŒŒ์ผ์ด ๋ณ€๊ฒฝ๋˜๋Š” ๊ฒฝ์šฐ์—๋Š” ๊ธฐ์กด์˜ ์บ์‹œ๋œ ํŒŒ์ผ์„ ๋ณด๋‚ด์ค„ ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ์ƒˆ๋กœ ์˜ค๋ฆฌ์ง„์—์„œ ํŒŒ์ผ์„ ๊ฐ€์ ธ์™€ ์บ์‹œ๋ฅผ ํ•ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์บ์‹œ๋ฅผ ์‚ญ์ œํ•ด์•ผ ๋ฐ˜์˜ํ•  ์ˆ˜ ์žˆ์—ˆ๋˜ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

 

์‹ค์ œ๋กœ Response๋ฅผ ํ™•์ธํ•ด๋ณด๋‹ˆ ์•„๋ž˜์™€ ๊ฐ™์ด x-cache: Hit rom cloudfront๋ผ๊ณ  ๋˜์–ด์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. 

Hit from cloudfront

 

 

 

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

CDN cache ์‚ญ์ œ

 

 

์‚ญ์ œํ•˜๊ณ  ๋‚˜๋‹ˆ x-cache๊ฐ€ Miss from cloudfront๋กœ ๋ฐ”๊ผˆ์Šต๋‹ˆ๋‹ค.

Miss from cloudfront

'EIF' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

C์–ธ์–ด - Runtime Error: Segmentation fault  (0) 2022.01.03
EIF 3: ERR_HTTP_HEADERS_SENT  (0) 2021.12.05
EIF 2: First Project (2) - try, catch ์—๋Ÿฌ  (0) 2021.11.24