๐Ÿ“‚ AWS

[AWS] Cloud Front

dhyuck 2021. 10. 5. 00:47
๋ฐ˜์‘ํ˜•

CDN

  • CDN(Content Delivery Network, Content Distribution Network)์€ ์‚ฌ์šฉ์ž์™€ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ๊ฐ€๊นŒ์šด ๊ณณ์— ์บ์‹œ ์„œ๋ฒ„๋ฅผ ์šด์˜ํ•˜์—ฌ ์ปจํ…์ธ ๋ฅผ ๋น ๋ฅด๊ฒŒ ์ „์†กํ•˜๋Š” ์บ์‹ฑ ๊ธฐ์ˆ  ์ž…๋‹ˆ๋‹ค.

  • ์˜ค๋ฆฌ์ง„ ์„œ๋ฒ„๋Š” ์›๋ณธ ์ปจํ…์ธ  ์„œ๋ฒ„๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

  • ์˜ค๋ฆฌ์ง€ ์„œ๋ฒ„์— ์žˆ๋Š” ์ปจํ…์ธ ๋ฅผ ๋ถ„์‚ฐ๋œ ์บ์‹œ ์„œ๋ฒ„์— ์ €์žฅํ•˜๋Š” ๊ฒƒ์„ ์บ์‹ฑ์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

  • Request Routing : ์‚ฌ์šฉ์ž์˜ ์ปจํ…์ธ  Request์— ๋Œ€ํ•ด, ์ตœ์ ์˜ Cache Server๋ฅผ ์„ ํƒํ•ด์ฃผ๋Š” ๊ธฐ๋Šฅ์œผ๋กœ CDN ๋ง์—๋Š” ์ด๋ฅผ ์ฒ˜๋ฆฌํ•ด์ฃผ๋Š” Request Router๊ฐ€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

  • CDN ์บ์‹ฑ ์ข…๋ฅ˜

    • Cache Hit : ์บ์‹œ์„œ๋ฒ„์— ์ปจํ…์ธ ๊ฐ€ ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ / Cache Miss : ์บ์‹œ์„œ๋ฒ„์— ์ปจํ…์ธ ๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ

    • Static Caching

      ์ด๋ฏธ์ง€, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ, CSS์™€ ๊ฐ™์ด ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๋Š” ์ •์ ์ธ ์ปจํ…์ธ ๋ฅผ ์บ์‹ฑํ•ฉ๋‹ˆ๋‹ค.

    • Dynamic Caching

      ๋™์ ์ธ ์ปจํ…์ธ ๋Š” ์ •์  ์บ์‹ฑ์— ๋น„ํ•ด Cache Hit๋Š” ๋†’์ง€ ์•Š์ง€๋งŒ, ๋™์  ์ปจํ…์ธ ๋ฅผ CDN์„ ํ†ตํ•ด์„œ ๋ฐฐํฌํ•˜๋ฉด ์˜ค๋ฆฌ์ง„ ์„œ๋ฒ„๋ฅผ ๋ณดํ˜ธํ•˜๊ณ  ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด๋‹ค ๋น ๋ฅธ ์ปจํ…์ธ ๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


CloudFront

  • Cloud Front๋Š” AWS์˜ CDN ์„œ๋น„์Šค๋กœ ์—ฃ์ง€ ๋กœ์ผ€์ด์…˜์ด๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์˜ ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ์ปจํ…์ธ ๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

  • Distribution

    ์˜ค๋ฆฌ์ง„๊ณผ ์—ฃ์ง€ ๋กœ์ผ€์ด์…˜ ์ค‘๊ฐ„์—์„œ ์ปจํ…์ธ  ๋ฐฐํฌ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜๋Š” CloudFront์˜ ๋…๋ฆฝ์ ์ธ ๋‹จ์œ„์ž…๋‹ˆ๋‹ค.

    Distribution์„ ์ƒ์„ฑํ•˜๋ฉด xxxx.cloudfront.net ์ด๋ผ๋Š” ๋„๋ฉ”์ธ์ด ์ƒ์„ฑ๋˜๋ฉฐ, Route53๊ณผ ์—ฐ๊ฒฐํ•˜์—ฌ ์‚ฌ์šฉ์ž๊ฐ€ ์›ํ•˜๋Š” ๋„๋ฉ”์ธ์œผ๋กœ CNAME ์ฒ˜๋ฆฌ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    Distribution์€ HTTP(S) ์ „์šฉ์˜ Web Distribution๊ณผ ๋™์˜์ƒ ์ปจํ…์ธ  ์ „์šฉ์˜ RTMP Distribution์œผ๋กœ ๋‚˜๋ˆ„์–ด์ง‘๋‹ˆ๋‹ค.

  • Edge Location

    ์˜ค๋ฆฌ์ง„์—์„œ Distribution์„ ํ†ตํ•ด ๋ฐฐํฌ๋˜๋Š” ์ปจํ…์ธ ๋ฅผ ์บ์‹ฑํ•˜๋Š” ์žฅ์น˜์ž…๋‹ˆ๋‹ค.


CloudFront ์„ค์ •

  1. S3 ๋ฒ„ํ‚ท ๋˜๋Š” ์‚ฌ์šฉ์ž์˜ HTTP ์„œ๋ฒ„์™€ ๊ฐ™์€ ์˜ค๋ฆฌ์ง„ ์„œ๋ฒ„๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์˜ค๋ฆฌ์ง„ ์„œ๋ฒ„๋Š” ๊ฐ์ฒด์˜ ์ตœ์ข… ๋ฒ„์ „์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
  2. ์˜ค๋ฆฌ์ง„ ์„œ๋ฒ„์— ํŒŒ์ผ์„ ์—…๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. ๊ฐ์ฒด๋ผ๊ณ ๋„ ๋ถˆ๋ฆฌ๋Š” ํŒŒ์ผ์€ ์›นํŽ˜์ด์ง€, ์ด๋ฏธ์ง€ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ HTTP๋ฅผ ํ†ตํ•ด ์ œ๊ณต๋  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ํ•ญ๋ชฉ์ž…๋‹ˆ๋‹ค.
  3. Distribution์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ CloudFront๊ฐ€ ์‚ฌ์šฉ์ž ์š”์ฒญ์— ์˜ํ•ด ํŒŒ์ผ์„ ๊ฐ€์ ธ์˜ฌ ์˜ค๋ฆฌ์ง„ ์„œ๋ฒ„๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
  4. Distribution ์ƒ์„ฑ์„ ์™„๋ฃŒํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋„๋ฉ”์ธ์ด ํ• ๋‹น ๋ฉ๋‹ˆ๋‹ค. http://d1111111abcdef8.cloudfront.net
  5. Distribution์˜ ์„ค์ •์„ ๋ชจ๋“  ์—ฃ์ง€ ๋กœ์ผ€์ด์…˜๊ณผ ์ ‘์†์ง€์ (Points Of Presence, POP)์œผ๋กœ ๋ณด๋ƒ…๋‹ˆ๋‹ค.

CloudFront์˜ ๋™์ž‘ ๋ฐฉ์‹

  1. ์‚ฌ์šฉ์ž๊ฐ€ ์ด๋ฏธ์ง€ ํŒŒ์ผ ๋˜๋Š” HTML ํŒŒ์ผ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค.

  2. DNS๊ฐ€ ์ตœ์ ์˜ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณต ํ•  ์ˆ˜ ์žˆ๋Š” ์—ฃ์ง€ ๋กœ์ผ€์ด์…˜์œผ๋กœ ์š”์ฒญ์„ ๋ผ์šฐํŒ…ํ•ฉ๋‹ˆ๋‹ค.

  3. CF๋Š” ํ•ด๋‹น ์บ์‹œ์— ์š”์ฒญ๋œ ํŒŒ์ผ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์—ฌ ํŒŒ์ผ์ด ์žˆ๋‹ค๋ฉด ์ „๋‹ฌํ•˜๊ณ , ํŒŒ์ผ์ด ์—†๋‹ค๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    1. CF๋Š” ์˜ค๋ฆฌ์ง„ ์„œ๋ฒ„์— ์‚ฌ์šฉ์ž ์š”์ฒญ์„ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

    2. ์˜ค๋ฆฌ์ง„ ์„œ๋ฒ„๋Š” ํŒŒ์ผ์„ ์—ฃ์ง€ ๋กœ์ผ€์ด์…˜์œผ๋กœ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

    3. ์˜ค๋ฆฌ์ง„์œผ๋กœ ๋ถ€ํ„ฐ ์ฒซ๋ฒˆ์งธ ๋ฐ”์ดํŠธ๊ฐ€ ๋„์ฐฉํ•˜๋ฉด CF๋Š” ์ปจํ…์ธ ๋ฅผ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ „๋‹ฌํ•˜๊ธฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

      ์ดํ›„ CF๋Š” ๋‹ค์Œ์— ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๊ฐ€ ํ•ด๋‹น ํŒŒ์ผ์„ ์š”์ฒญํ•  ๋•Œ ์—ฃ์ง€ ๋กœ์ผ€์ด์…˜์˜ ์บ์‹œ์— ํŒŒ์ผ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.


CloudFront์˜ ํŠน์ง•

  1. CF์˜ ์˜ค๋ฆฌ์ง„์œผ๋กœ S3, EC2, ELB, ์‚ฌ์šฉ์ž์˜ HTTP ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  2. CF๋Š” HTTP ๋˜๋Š” WebSocket ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•ด ์ „์†กํ•  ์ˆ˜ ์žˆ๋Š” ์ฝ˜ํ…์ธ ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

  3. ์ง€์—ญ ์ œํ•œ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ฉด ํŠน์ • ๊ตญ๊ฐ€์˜ ์‚ฌ์šฉ์ž๋งŒ ๋‚ด ์ฝ˜ํ…์ธ ์— ์•ก์„ธ์Šคํ•˜๋„๋ก ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ, ํŠน์ • ๊ตญ๊ฐ€์˜ ์‚ฌ์šฉ์ž๊ฐ€ ๋‚ด ์ฝ˜ํ…์ธ ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์—†๋„๋ก ์ง€์ •ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

  4. ์„œ๋ช…๋œ URL๊ณผ ์„œ๋ช…๋œ ์ฟ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋ผ์ด๋น— ์ปจํ…์ธ ๋ฅผ ์ œ๊ณต ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  5. AWS ์˜ค๋ฆฌ์ง„(Amazon S3, Amazon EC2 ๋“ฑ)์„ ์‚ฌ์šฉ ์ค‘์ธ ๊ฒฝ์šฐ Amazon CF๋กœ ์ „์†ก๋˜๋Š” AWS ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด ์ „์†ก ๋น„์šฉ์ด ๋ถ€๊ณผ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  6. CF๋Š” ์‚ฌ์šฉ์ž ์ •์˜ ์˜ค๋ฅ˜๋ฉ”์„ธ์ง€๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ๋ฐ˜ํ™˜ํ•˜๋„๋ก ํ•  ์ˆ˜์žˆ์Šต๋‹ˆ๋‹ค.

  7. CF์— ์บ์‹ฑ๋œ ํŒŒ์ผ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ 24์‹œ๊ฐ„ ์ดํ›„์— ์ž๋™์œผ๋กœ ๋งŒ๋ฃŒ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

    CF๋Š” ํŒŒ์ผ์ด ๋งŒ๋ฃŒ ๋  ๋•Œ๊นŒ์ง€ ์ œ๊ณตํ•˜๊ณ , ํŒŒ์ผ์ด ๋งŒ๋ฃŒ๋œ ํ›„์— CF๊ฐ€ ํ•ด๋‹น ํŒŒ์ผ์„ ์š”์ฒญ ๋ฐ›์œผ๋ฉด CF๋Š” ์ด ์š”์ฒญ์„ ์˜ค๋ฆฌ์ง„ ์„œ๋ฒ„๋กœ ์ „๋‹ฌํ•˜์—ฌ ์ตœ์‹  ๋ฒ„์ „์˜ ํŒŒ์ผ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ ์˜ค๋ฆฌ์ง„์˜ ์‘๋‹ต์€ ํŒŒ์ผ์˜ ๋ณ€๊ฒฝ ์—ฌ๋ถ€์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค.

    CF ์บ์‹œ์— ์ด๋ฏธ ์ตœ์‹  ๋ฒ„์ „์ด ์žˆ๋‹ค๋ฉด ์˜ค๋ฆฌ์ง„์€ 304 Not Modified๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ , CF ์บ์‹œ์— ์ตœ์‹  ๋ฒ„์ „์ด ์—†๋‹ค๋ฉด ์˜ค๋ฆฌ์ง„์€ 200 OK์™€ ์ตœ์‹  ๋ฒ„์ „์˜ ํŒŒ์ผ์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.


๋ฐ˜์‘ํ˜•

'๐Ÿ“‚ AWS' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[AWS] IAM  (0) 2021.10.13
[AWS/CLI] describe-route-tables  (0) 2021.10.07
[AWS] AWS Cli ์„ค์ •ํ•˜๊ธฐ  (0) 2021.09.03
[AWS] EC2 Windows ๋งŒ๋“ค๊ณ  ์ ‘์†ํ•˜๊ธฐ  (0) 2021.07.06
[AWS] EC2 Linux์— EBS ๋ณผ๋ฅจ ์ถ”๊ฐ€  (0) 2021.07.04