03. AWS S3 & CloudFront

1. ์ •์  ์‚ฌ์ดํŠธ <-> ๋™์  ์‚ฌ์ดํŠธ

1-1. ์ •์  ์‚ฌ์ดํŠธ

์ •์ ์‚ฌ์ดํŠธ
  1. ํŠน์ง•

    1. ์›น ์„œ๋ฒ„ ์ปดํ“จํ„ฐ์— ์ด๋ฏธ ์ €์žฅ๋œ ํŒŒ์ผ์„ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋ณ€๊ฒฝ์—†์ด ์ „์†ก

    2. ์„œ๋ฒ„ ๋‚ด ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๋Š” ํ•œ ๊ฐ™์€ ์‚ฌ์ดํŠธ ํ™”๋ฉด์„ ๋ณด๊ฒŒ ๋จ

    3. ๋ชจ๋“  ์‚ฌ์šฉ์ž๊ฐ€ ๊ฐ™์€ ํ™”๋ฉด์„ ์‘๋‹ต ๋ฐ›์Œ

  2. ์žฅ์ 

    1. ๋‹ค๋ฅธ process ์—†์ด ์š”์ฒญ์— ๋Œ€ํ•œ ํŒŒ์ผ๋งŒ ์ „์†กํ•˜๋ฏ€๋กœ ์†๋„๊ฐ€ ๋น ๋ฅด๋‹ค.

    2. ๋‹จ์ˆœํ•œ ๋ฌธ์„œ๋กœ ์›น์„œ๋ฒ„๋ฅผ ๊ตฌ์ถ•ํ•ด ํ˜ธ์ŠคํŒ… ์„œ๋ฒ„ ์—ฐ๊ฒฐ ๋น„์šฉ์ด ์ž‘๋‹ค.

1-2. ๋™์  ์‚ฌ์ดํŠธ

๋™์ ์‚ฌ์ดํŠธ
  1. ํŠน์ง•

    1. ์„œ๋ฒ„์— ์ €์žฅ๋œ HTML์ด ๊ทธ๋Œ€๋กœ ๋ณด์—ฌ์ง€์ง€ ์•Š์Œ

    2. ๋™์ ์œผ๋กœ ๋งŒ๋“ค์–ด์ง€๋Š” ์›นํŽ˜์ด์ง€

    3. ์‚ฌ์šฉ์ž๋Š” ์ƒํ™ฉ, ์‹œ๊ฐ„, ์š”์ฒญ ๋“ฑ ๋‹ค์–‘ํ•œ ์กฐ๊ฑด์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ์›นํŽ˜์ด์ง€๋ฅผ ๋ณด๊ฒŒ ๋œ๋‹ค.

  2. ์ข…๋ฅ˜

    1. CSR (Client Side Rendering)

    2. SSR (Server Side Rendering)

    3. MPA (Multi Page Application)

    4. SPA (Single Page Application)

2. AWS S3

2-1. AWS S3์˜ ์ •์˜

  1. Simple Storage Service

  2. ๊ฐ์ฒด ๊ธฐ๋ฐ˜

  3. ์Šคํ† ๋ฆฌ์ง€ ์„œ๋น„์Šค

2-2. AWS S3์˜ ํŠน์ง•

  1. ํ™•์žฅ์„ฑ

    1. ์ถ”๊ฐ€ ์Šคํ† ๋ฆฌ์ง€๊ฐ€ ํ•„์š”ํ•  ๋•Œ, ์•Œ์•„์„œ ์Šคํ† ๋ฆฌ์ง€ ์šฉ๋Ÿ‰ ์ถ”๊ฐ€๋จ

  2. ๊ฐ€์šฉ์„ฑ

    1. ์„œ๋น„์Šค๊ฐ€ ํ•ญ์ƒ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ์ง€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ง€ํ‘œ

    2. ํผ์„ผํ‹ฐ์ง€(%)๋กœ ํ‘œ๊ธฐํ•  ์ˆ˜ ์žˆ์Œ

    3. AWS S3์—์„œ ๋ณด์žฅํ•˜๋Š” ๊ฐ€์šฉ์„ฑ: 99.999999999%

    4. ์ฆ‰, 1000์–ต๊ฐœ ๋ฐ์ดํ„ฐ ์ค‘ 1 ๊ฐœ ๋ฐ์ดํ„ฐ๊ฐ€ ์†์‹ค๋  ์ˆ˜ ์žˆ๋‹ค.

  3. ๋‚ด๊ตฌ์„ฑ

    1. S3์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋Š” ๋Œ€๋ถ€๋ถ„์˜ ์ƒํ™ฉ์—์„œ ๋ณด์กด๋จ

    2. AWS S3์—์„œ ๋ณด์žฅํ•˜๋Š” ๋‚ด๊ตฌ์„ฑ: 99.99%

    3. ์ฆ‰, ํ•˜๋ฃจ์— 8.6์ดˆ ๋ฏธ๋งŒ์œผ๋กœ ๋‹ค์šดํƒ€์ž„์ด ๋ฐœ์ƒํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋‹ค.

  4. ๊ฐ์ฒด ๋ฐ ์„ฑ๋Šฅ

    1. ์ผ๋ฐ˜์ ์ธ SSD/HDD ๋ฐฉ์‹์ด ์•„๋‹ˆ๋ฉฐ I/O (input/output) ๋ณ‘๋ชฉ์ง€์ ์ด ๊ฑฐ์˜ ๋ฐœ์ƒํ•˜์ง€ ์•Š์Œ

    2. ๋‹จ, ๊ฐ์ฒด์˜ ํ‚ค ์„ค๊ณ„์˜ ๋ถ„ํฌ๊ฐ€ ๋‚ฎ์„ ๊ฒฝ์šฐ I/O ๋ณ‘๋ชฉ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Œ

3. CDN (Contents Delivery Network) ์„œ๋น„์Šค

3-1. ๊ฐœ๋…

  1. ์ง€๋ฆฌ์ ์œผ๋กœ ๋ถ„์‚ฐ๋œ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์„œ๋ฒ„

  2. ์ „ ์„ธ๊ณ„ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์— ํŒŒ์ผ ์‚ฌ๋ณธ์„ ์ž„์‹œ๋กœ ์ €์žฅ

  3. ์›น ์ฝ˜ํ…์ธ ๋ฅผ ์‚ฌ์šฉ์ž์™€ ๊ฐ€๊นŒ์šด ๊ณณ์—์„œ ์ „์†กํ•จ์œผ๋กœ์จ ์ „์†ก ์†๋„ ํ–ฅ์ƒ

3-2. ์ž‘๋™์›๋ฆฌ

  1. ์บ์‹ฑ & ์—ฃ์ง€ ์บ์‹ฑ & ์—ฃ์ง€

    1. ์บ์‹ฑ

      1. ์ •์  ์ฝ˜ํ…์ธ ๋Š” ์„œ๋ฒ„์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๋Š” ํ•œ ํ•ญ์ƒ ๊ฐ™์€ ์ •๋ณด๋ฅผ ๋ณด์—ฌ์ฃผ๊ธฐ ๋•Œ๋ฌธ์—

      2. ๋งค๋ฒˆ ์„œ๋ฒ„์— ์š”์ฒญํ•˜๊ณ  resource๋ฅผ ๋ฐ›์•„์˜ฌ ํ•„์š” ์—†์ด

      3. client์™€ ๊ฐ€๊นŒ์šด edge์— ์ตœ๊ทผ response ๋‚ด์šฉ์„ ์ €์žฅํ•ด ๋†จ๋‹ค๊ฐ€ ํŠน์ • ์‹œ๊ฐ„ ๋‚ด์— ๊ฐ™์€ ์š”์ฒญ์ด ๋“ค์–ด์˜ค๋ฉด

      4. ์ €์žฅ๋œ ๋ณต์‚ฌ๋ณธ์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒƒ

    2. ์—ฃ์ง€

      1. ์บ์‹ฑ์ด ์ด๋ฃจ์–ด์ง€๋Š” ์ €์žฅ์†Œ

  2. PoP (Points of Presence) ์ง€์—ญ ์ ‘์† ์ง€์ 

  3. REC (Regional Edge Cache) ์ง€์—ญ ์—ฃ์ง€ ์บ์‹œ

3-3. ์ž‘๋™ ๋ฐฉ์‹

  1. ์„ธ ๊ฐ€์ง€ ์„œ๋ฒ„์— ์˜์กด

    1. ์˜ค๋ฆฌ์ง„ ์„œ๋ฒ„: S3, Google Cloud Storage, ํ˜น์€ ์ž์ฒด ์„œ๋ฒ„ ๋“ฑ

    2. ์—ฃ์ง€ ์„œ๋ฒ„:

      1. ์ „์„ธ๊ณ„ ์—ฌ๋Ÿฌ ์ง€๋ฆฌ์  ์œ„์น˜์— ์กด์žฌ

      2. PoP(Point of Presence) ๋ผ๊ณ ๋„ ํ•จ

      3. ์˜ค๋ฆฌ์ง„ ์„œ๋ฒ„์˜ ์ฝ˜ํ…์ธ ๋ฅผ ๋ณต์‚ฌํ•˜์—ฌ ์บ์‹ฑ

    3. DNS ์„œ๋ฒ„:

      1. ์˜ค๋ฆฌ์ง„ ๋ฐ ์—ฃ์ง€ ์„œ๋ฒ„์˜ IP ์ฃผ์†Œ๋ฅผ ์ถ”์ ํ•˜๊ณ  ์ œ๊ณต

      2. ์˜ค๋ฆฌ์ง„์œผ๋กœ ์š”์ฒญ์ด ์˜ค๋ฉด ์ปจํ…์ธ ๋ฅผ ๋” ๋น ๋ฅด๊ฒŒ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋Š” ํŽ˜์–ด๋ง ๋œ ์—ฃ์ง€ ์„œ๋ฒ„์˜ ์ด๋ฆ„์œผ๋กœ ์‘๋‹ต

  2. ์ˆ˜ํ–‰ํ•˜๋Š” ๊ธฐ๋Šฅ

    1. ์ง€์—ฐ ์‹œ๊ฐ„ ๋‹จ์ถ•

      1. ๋ฐ์ดํ„ฐ๊ฐ€ ์ด๋™ํ•ด์•ผ ํ•˜๋Š” ๋ฌผ๋ฆฌ์  ๊ฑฐ๋ฆฌ๋ฅผ ์ค„์ž„

      2. CDN์ด ๋ณด๋‹ค ๋„“๊ณ  ๊ด‘๋ฒ”์œ„ํ•˜๊ฒŒ ๋ถ„์‚ฐ๋˜์–ด ์žˆ์„์ˆ˜๋ก ์œ ๋ฆฌ

    2. ๋ถ€ํ•˜ ๋ถ„์‚ฐ

      1. ํ•˜๋‚˜์˜ ์›น์†Œ์Šค์— ๋„๋‹ฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ๋กœ๋ฅผ ์—ฌ๋Ÿฌ๊ฐœ๋กœ ๋งŒ๋“ค์–ด ์ „์ฒด ํŠธ๋ž˜ํ”ฝ์˜ ๊ท ํ˜•์„ ๋งž์ถค

3-4. ์žฅ์ 

  1. ์„ฑ๋Šฅ ํ–ฅ์ƒ (๋ฌผ๋ฆฌ์  ๊ฑฐ๋ฆฌ ๋ฐ ํŠธ๋ž˜ํ”ฝ ๊ฐ์†Œ)

  2. ๊ฐ€์šฉ์„ฑ ๋ณด์žฅ

    1. ๊ณ ๋„๋กœ ๋ถ„์‚ฐ๋œ ์•„ํ‚คํ…์ณ์™€ ๋Œ€๊ทœ๋ชจ ์„œ๋ฒ„ ํ”Œ๋žซํผ์„ ๊ฐ–์ถ˜ ๊ณ ๊ธ‰ CDN

    2. 100Tbps๋ฅผ ํก์ˆ˜ํ•  ์ˆ˜ ์žˆ์–ด ๋” ๋งŽ์€ ์‚ฌ์šฉ์ž๋ฅผ ๊ธฐ๋ฐ˜์„ ๊ฐ–์ถœ ์ˆ˜ ์žˆ์Œ

  3. ๋ณด์•ˆ ๊ฐ•ํ™” (DDos ์ฐจ๋‹จ)

  4. ์ธํ…”๋ฆฌ์ „์Šค ์ˆ˜์ง‘ (Analytics)

  5. ๊ณ ๊ฐ ๊ฒฝํ—˜ ๊ฐœ์„ 

  6. ํŠธ๋ž˜ํ”ฝ ๋ถ€ํ•˜ ๋ถ„์‚ฐ

  7. ๋Œ€์—ญํญ ๋น„์šฉ ์ ˆ๊ฐ

4. CloudFront

4-1. ์ •์˜

  1. ์บ์‹ฑ๊ณผ ์—ฃ์ง€๋ฅผ ์ด์šฉํ•œ CDN(์ฝ˜ํ…์ธ  ๋ฐฐํฌ ๋„คํŠธ์›Œํฌ) ์„œ๋น„์Šค

4-2. CloudFront์˜ Edge

viewr->cloudFront
  1. ์ „๋‹ฌ ์ˆœ์„œ

    1. Viewer

    2. POP (์บ์‹ฑ ๊ธฐ๋Šฅ ํฌํ•จ)

    3. REC (์บ์‹ฑ ๊ธฐ๋Šฅ ํฌํ•จ)

    4. Origin (eg. S3)

์‹ค์ œ ๋ถ„ํฌ
  1. ์‹ค์ œ cloudfront์˜ ์—ฃ์ง€ ์„œ๋ฒ„ ๋ถ„ํฌ

4-3. CloudFront์˜ ์žฅ์ 

  1. ๋ฌผ๋ฆฌ์  ๊ฑฐ๋ฆฌ๊ฐ€ ๊ฐ์†Œ๋˜์–ด ์ง€์—ฐ ์‹œ๊ฐ„์ด ์ค„์–ด๋“ฆ

  2. ์ฝ˜ํ…์ธ  ๋ณด์•ˆ ์œ ์ง€

    1. ์ง€๋ฆฌ์  ์ œํ•œ, ์„œ๋ช…๋œ URL, ์„œ๋ช…๋œ ์ฟ ํ‚ค ๋“ฑ์„ ๊ธฐ์ค€์œผ๋กœ ์•ก์„ธ์Šค ์ œํ•œ์„ ์ถ”๊ฐ€๋กœ ์„ค์ •ํ•˜์—ฌ ๊ธฐ์ค€์ด ๋‹ค๋ฅธ ์ปจํ…์ธ ์— ์ ‘๊ทผ์„ ์ œํ•œํ•  ์ˆ˜ ์žˆ๋‹ค.

    2. OAI (Origin Access Identity)

      1. S3 ๋ฒ„ํ‚ท ๋ฐ ์ปจํ…์ธ ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ Cloudfront๋กœ ์ œํ•œ

    3. ์•…์„ฑ ๊ณต๊ฒฉ ์ฐจ๋‹จ ๊ฐ€๋Šฅ

      1. AWS WAF

      2. AWS Shield

6. ๋ฐฐํฌํ•ด๋ณด๊ธฐ

6-1. ์‚ฌ์ „ ์ค€๋น„

  1. ์ •์  ํŒŒ์ผ ์ค€๋น„ํ•˜๊ธฐ build

6-2. S3 bucket

  1. s3 bucket ์ƒ์„ฑํ•˜๊ธฐ alt text

  2. ํŒŒ์ผ์„ bucket์— ์—…๋กœ๋“œ ํ•˜๊ธฐ alt text

  3. bucket ์ •์ฑ… ์ˆ˜์ •ํ•˜๊ธฐ alt text

  4. s3 ์ •์  ํ˜ธ์ŠคํŒ…ํ•˜๊ธฐ

    1. ์†์„ฑ ํƒญ์˜ ๊ฐ€์žฅ ์•„๋ž˜ alt text

    2. ์ •์  ์›น์‚ฌ์ดํŠธ ํ˜ธ์ŠคํŒ… ํ™œ์„ฑํ™” alt text

    3. ํ™•์ธํ•ด๋ณด๊ธฐ alt text

6-3. Cloudfront

alt text
  1. cloudfront ๋ฐฐํฌ ์ƒ์„ฑํ•˜๊ธฐ

    1. ์›๋ณธ์œผ๋กœ s3 bucket ์—ฐ๊ฒฐํ•˜๊ธฐ alt text

    2. ์›๋ณธ ์•ก์„ธ์Šค ์ œํ•œํ•˜๊ธฐ alt text

    3. ๊ธฐ๋ณธ ์บ์‹œ ๋™์ž‘ alt text

    4. ๋„๋ฉ”์ธ ์—ฐ๊ฒฐ์€ ๋‚˜์ค‘์— ์—ฌ๊ธฐ์„œ alt text

    5. ํ•˜๊ณ  ๋‚˜๋ฉด ๋ฒ„ํ‚ท ๊ถŒํ•œ์„ ์ˆ˜์ •ํ•˜๋ผ๊ณ  ์•Œ๋ฆผ์ด ๋œฌ๋‹ค. ์ผ๋‹จ ๋ƒ…๋‘๊ณ  ๋„๋ฉ”์ธ์„ ๊ตฌ๋งคํ•˜๋Ÿฌ ๊ฐ‘๋‹ˆ๋‹ค. alt text

6-4. route 53

  1. ๋„๋ฉ”์ธ ๊ตฌ๋งคํ•˜๊ธฐ

  2. ACM AWS certificate manager์—์„œ ํผ๋ธ”๋ฆญ ์ธ์ฆ์„œ ์š”์ฒญํ•˜๊ธฐ

    1. ๋ฆฌ์ „์ด ๋ฒ„์ง€๋‹ˆ์•„ ๋ถ๋ถ€์ธ์ง€ ํ™•์ธํ•˜๊ธฐ! alt text

    2. ์ธ์ฆ์„œ ์š”์ฒญ alt text

    3. ๊ตฌ๋งคํ•œ ๋„๋ฉ”์ธ ์ด๋ฆ„์œผ๋กœ ํผ๋ธ”๋ฆญ ์ธ์ฆ์„œ ์š”์ฒญ alt text

    4. ๊ฒ€์ฆ์„ ์œ„ํ•ด route 53์—์„œ record ์ƒ์„ฑํ•˜๊ธฐ alt text

  3. ๋„๋ฉ”์ธ์— ๋ ˆ์ฝ”๋“œ ์ถ”๊ฐ€ํ•˜๊ธฐ

  4. ๋„๋ฉ”์ธ cloudfront ๋ฐฐํฌ ๋„๋ฉ”์ธ ์—ฐ๊ฒฐํ•˜๊ธฐ 1. cloudfront > ์ผ๋ฐ˜ > ์„ค์ • > ํŽธ์ง‘ alt text 1. alternative domain name์— ์„ค์ •ํ•˜๊ธฐ 1. ๋ฐœ๊ธ‰ ์™„๋ฃŒ๋œ SSL์„ custom ssl certificate ์— ์ถ”๊ฐ€ํ•˜๊ธฐ alt text

  5. ํผ๋ธ”๋ฆญ ์•ก์„ธ์Šค๋ฅผ ์ฐจ๋‹จํ•˜๊ณ  cloudfront๋กœ๋งŒ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๊ธฐ์œ„ํ•ด s3 bucket ๊ถŒํ•œ ์ˆ˜์ •ํ•˜๊ธฐ

    1. cloudfront ์›๋ณธ > ํŽธ์ง‘

    2. ์ •์ฑ… ๋ณต์‚ฌํ•˜๊ธฐ

    3. s3 ๊ถŒํ•œ ์ˆ˜์ •ํ•˜๋Ÿฌ ๊ฐ€๊ธฐ

    4. ๋ฒ„ํ‚ท ์ •์ฑ… ํŽธ์ง‘

    5. ๋ถ™์—ฌ๋„ฃ๊ธฐ

    6. s3 ํผ๋ธ”๋ฆญ ์•ก์„ธ์Šค ์ฐจ๋‹จ ํ•ญ๋ชฉ ํŽธ์ง‘

      1. ๋‹ค์‹œ ๋ชจ๋“  ํผ๋ธ”๋ฆญ ์•ก์„ธ์Šค ์ฐจ๋‹จ ์„ ํƒ alt text

    7. ํ™•์ธํ•ด๋ณด๋ฉด ์ด์ œ public๋„๋ฉ”์ธ์€ ์ ‘๊ทผ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๊ณ , cloudfront๋Š” ์ ‘๊ทผ ๊ฐ€๋Šฅํ•จ alt text

6-5. SPA ์ƒˆ๋กœ๊ณ ์นจ์‹œ 404 ์—๋Ÿฌ ํ•ด๊ฒฐ

  1. cloudfront์˜ ์˜ค๋ฅ˜ ํŽ˜์ด์ง€ ์‘๋‹ต ์ƒ์„ฑ * 2

    1. HTTP ์—๋Ÿฌ ์ฝ”๋“œ: 404, 403

    2. Customize error response: Yesy

      1. Response page path: /index.html

      2. http response code: 200

  2. cloudfront์˜ ๋ฌดํšจํ™”

    1. ๋ฌดํšจํ™” ์ƒ์„ฑ

    2. ๊ฐ์ฒด ๊ฒฝ๋กœ ์ถ”๊ฐ€: /*

Last updated