03. AWS S3 & CloudFront
1. ์ ์ ์ฌ์ดํธ <-> ๋์ ์ฌ์ดํธ
1-1. ์ ์ ์ฌ์ดํธ

ํน์ง
์น ์๋ฒ ์ปดํจํฐ์ ์ด๋ฏธ ์ ์ฅ๋ ํ์ผ์ ํด๋ผ์ด์ธํธ์๊ฒ ๋ณ๊ฒฝ์์ด ์ ์ก
์๋ฒ ๋ด ๋ฐ์ดํฐ๊ฐ ๋ณ๊ฒฝ๋์ง ์๋ ํ ๊ฐ์ ์ฌ์ดํธ ํ๋ฉด์ ๋ณด๊ฒ ๋จ
๋ชจ๋ ์ฌ์ฉ์๊ฐ ๊ฐ์ ํ๋ฉด์ ์๋ต ๋ฐ์
์ฅ์
๋ค๋ฅธ process ์์ด ์์ฒญ์ ๋ํ ํ์ผ๋ง ์ ์กํ๋ฏ๋ก ์๋๊ฐ ๋น ๋ฅด๋ค.
๋จ์ํ ๋ฌธ์๋ก ์น์๋ฒ๋ฅผ ๊ตฌ์ถํด ํธ์คํ ์๋ฒ ์ฐ๊ฒฐ ๋น์ฉ์ด ์๋ค.
1-2. ๋์ ์ฌ์ดํธ

ํน์ง
์๋ฒ์ ์ ์ฅ๋ HTML์ด ๊ทธ๋๋ก ๋ณด์ฌ์ง์ง ์์
๋์ ์ผ๋ก ๋ง๋ค์ด์ง๋ ์นํ์ด์ง
์ฌ์ฉ์๋ ์ํฉ, ์๊ฐ, ์์ฒญ ๋ฑ ๋ค์ํ ์กฐ๊ฑด์ ๋ฐ๋ผ ๋ค๋ฅธ ์นํ์ด์ง๋ฅผ ๋ณด๊ฒ ๋๋ค.
์ข ๋ฅ
CSR (Client Side Rendering)
SSR (Server Side Rendering)
MPA (Multi Page Application)
SPA (Single Page Application)
2. AWS S3
2-1. AWS S3์ ์ ์
Simple Storage Service
๊ฐ์ฒด ๊ธฐ๋ฐ
์คํ ๋ฆฌ์ง ์๋น์ค
2-2. AWS S3์ ํน์ง
ํ์ฅ์ฑ
์ถ๊ฐ ์คํ ๋ฆฌ์ง๊ฐ ํ์ํ ๋, ์์์ ์คํ ๋ฆฌ์ง ์ฉ๋ ์ถ๊ฐ๋จ
๊ฐ์ฉ์ฑ
์๋น์ค๊ฐ ํญ์ ์ฌ์ฉ ๊ฐ๋ฅํ์ง๋ฅผ ๋ํ๋ด๋ ์งํ
ํผ์ผํฐ์ง(%)๋ก ํ๊ธฐํ ์ ์์
AWS S3์์ ๋ณด์ฅํ๋ ๊ฐ์ฉ์ฑ: 99.999999999%
์ฆ, 1000์ต๊ฐ ๋ฐ์ดํฐ ์ค 1 ๊ฐ ๋ฐ์ดํฐ๊ฐ ์์ค๋ ์ ์๋ค.
๋ด๊ตฌ์ฑ
S3์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ ๋๋ถ๋ถ์ ์ํฉ์์ ๋ณด์กด๋จ
AWS S3์์ ๋ณด์ฅํ๋ ๋ด๊ตฌ์ฑ: 99.99%
์ฆ, ํ๋ฃจ์ 8.6์ด ๋ฏธ๋ง์ผ๋ก ๋ค์ดํ์์ด ๋ฐ์ํ ๊ฐ๋ฅ์ฑ์ด ์๋ค.
๊ฐ์ฒด ๋ฐ ์ฑ๋ฅ
์ผ๋ฐ์ ์ธ SSD/HDD ๋ฐฉ์์ด ์๋๋ฉฐ I/O (input/output) ๋ณ๋ชฉ์ง์ ์ด ๊ฑฐ์ ๋ฐ์ํ์ง ์์
๋จ, ๊ฐ์ฒด์ ํค ์ค๊ณ์ ๋ถํฌ๊ฐ ๋ฎ์ ๊ฒฝ์ฐ I/O ๋ณ๋ชฉ์ด ๋ฐ์ํ ์ ์์
3. CDN (Contents Delivery Network) ์๋น์ค
3-1. ๊ฐ๋
์ง๋ฆฌ์ ์ผ๋ก ๋ถ์ฐ๋ ์ฌ๋ฌ ๊ฐ์ ์๋ฒ
์ ์ธ๊ณ ๋ฐ์ดํฐ ์ผํฐ์ ํ์ผ ์ฌ๋ณธ์ ์์๋ก ์ ์ฅ
์น ์ฝํ ์ธ ๋ฅผ ์ฌ์ฉ์์ ๊ฐ๊น์ด ๊ณณ์์ ์ ์กํจ์ผ๋ก์จ ์ ์ก ์๋ ํฅ์
3-2. ์๋์๋ฆฌ
์บ์ฑ & ์ฃ์ง

์บ์ฑ
์ ์ ์ฝํ ์ธ ๋ ์๋ฒ์์ ๋ฐ์ดํฐ๋ฅผ ๋ณ๊ฒฝํ์ง ์๋ ํ ํญ์ ๊ฐ์ ์ ๋ณด๋ฅผ ๋ณด์ฌ์ฃผ๊ธฐ ๋๋ฌธ์
๋งค๋ฒ ์๋ฒ์ ์์ฒญํ๊ณ resource๋ฅผ ๋ฐ์์ฌ ํ์ ์์ด
client์ ๊ฐ๊น์ด edge์ ์ต๊ทผ response ๋ด์ฉ์ ์ ์ฅํด ๋จ๋ค๊ฐ ํน์ ์๊ฐ ๋ด์ ๊ฐ์ ์์ฒญ์ด ๋ค์ด์ค๋ฉด
์ ์ฅ๋ ๋ณต์ฌ๋ณธ์ ๋ฐํํ๋ ๊ฒ
์ฃ์ง
์บ์ฑ์ด ์ด๋ฃจ์ด์ง๋ ์ ์ฅ์
PoP (Points of Presence) ์ง์ญ ์ ์ ์ง์
REC (Regional Edge Cache) ์ง์ญ ์ฃ์ง ์บ์
3-3. ์๋ ๋ฐฉ์
์ธ ๊ฐ์ง ์๋ฒ์ ์์กด
์ค๋ฆฌ์ง ์๋ฒ: S3, Google Cloud Storage, ํน์ ์์ฒด ์๋ฒ ๋ฑ
์ฃ์ง ์๋ฒ:
์ ์ธ๊ณ ์ฌ๋ฌ ์ง๋ฆฌ์ ์์น์ ์กด์ฌ
PoP(Point of Presence) ๋ผ๊ณ ๋ ํจ
์ค๋ฆฌ์ง ์๋ฒ์ ์ฝํ ์ธ ๋ฅผ ๋ณต์ฌํ์ฌ ์บ์ฑ
DNS ์๋ฒ:
์ค๋ฆฌ์ง ๋ฐ ์ฃ์ง ์๋ฒ์ IP ์ฃผ์๋ฅผ ์ถ์ ํ๊ณ ์ ๊ณต
์ค๋ฆฌ์ง์ผ๋ก ์์ฒญ์ด ์ค๋ฉด ์ปจํ ์ธ ๋ฅผ ๋ ๋น ๋ฅด๊ฒ ์ ๊ณตํ ์ ์๋ ํ์ด๋ง ๋ ์ฃ์ง ์๋ฒ์ ์ด๋ฆ์ผ๋ก ์๋ต
์ํํ๋ ๊ธฐ๋ฅ
์ง์ฐ ์๊ฐ ๋จ์ถ
๋ฐ์ดํฐ๊ฐ ์ด๋ํด์ผ ํ๋ ๋ฌผ๋ฆฌ์ ๊ฑฐ๋ฆฌ๋ฅผ ์ค์
CDN์ด ๋ณด๋ค ๋๊ณ ๊ด๋ฒ์ํ๊ฒ ๋ถ์ฐ๋์ด ์์์๋ก ์ ๋ฆฌ
๋ถํ ๋ถ์ฐ
ํ๋์ ์น์์ค์ ๋๋ฌํ ์ ์๋ ๊ฒฝ๋ก๋ฅผ ์ฌ๋ฌ๊ฐ๋ก ๋ง๋ค์ด ์ ์ฒด ํธ๋ํฝ์ ๊ท ํ์ ๋ง์ถค
3-4. ์ฅ์
์ฑ๋ฅ ํฅ์ (๋ฌผ๋ฆฌ์ ๊ฑฐ๋ฆฌ ๋ฐ ํธ๋ํฝ ๊ฐ์)
๊ฐ์ฉ์ฑ ๋ณด์ฅ
๊ณ ๋๋ก ๋ถ์ฐ๋ ์ํคํ ์ณ์ ๋๊ท๋ชจ ์๋ฒ ํ๋ซํผ์ ๊ฐ์ถ ๊ณ ๊ธ CDN
100Tbps๋ฅผ ํก์ํ ์ ์์ด ๋ ๋ง์ ์ฌ์ฉ์๋ฅผ ๊ธฐ๋ฐ์ ๊ฐ์ถ ์ ์์
๋ณด์ ๊ฐํ (DDos ์ฐจ๋จ)
์ธํ ๋ฆฌ์ ์ค ์์ง (Analytics)
๊ณ ๊ฐ ๊ฒฝํ ๊ฐ์
ํธ๋ํฝ ๋ถํ ๋ถ์ฐ
๋์ญํญ ๋น์ฉ ์ ๊ฐ
4. CloudFront
4-1. ์ ์
์บ์ฑ๊ณผ ์ฃ์ง๋ฅผ ์ด์ฉํ CDN(์ฝํ ์ธ ๋ฐฐํฌ ๋คํธ์ํฌ) ์๋น์ค
4-2. CloudFront์ Edge

์ ๋ฌ ์์
Viewer
POP (์บ์ฑ ๊ธฐ๋ฅ ํฌํจ)
REC (์บ์ฑ ๊ธฐ๋ฅ ํฌํจ)
Origin (eg. S3)

์ค์ cloudfront์ ์ฃ์ง ์๋ฒ ๋ถํฌ
4-3. CloudFront์ ์ฅ์
๋ฌผ๋ฆฌ์ ๊ฑฐ๋ฆฌ๊ฐ ๊ฐ์๋์ด ์ง์ฐ ์๊ฐ์ด ์ค์ด๋ฆ
์ฝํ ์ธ ๋ณด์ ์ ์ง
์ง๋ฆฌ์ ์ ํ, ์๋ช ๋ URL, ์๋ช ๋ ์ฟ ํค ๋ฑ์ ๊ธฐ์ค์ผ๋ก ์ก์ธ์ค ์ ํ์ ์ถ๊ฐ๋ก ์ค์ ํ์ฌ ๊ธฐ์ค์ด ๋ค๋ฅธ ์ปจํ ์ธ ์ ์ ๊ทผ์ ์ ํํ ์ ์๋ค.
OAI (Origin Access Identity)
S3 ๋ฒํท ๋ฐ ์ปจํ ์ธ ์ ๋ํ ์ก์ธ์ค๋ฅผ Cloudfront๋ก ์ ํ
์ ์ฑ ๊ณต๊ฒฉ ์ฐจ๋จ ๊ฐ๋ฅ
AWS WAF
AWS Shield
6. ๋ฐฐํฌํด๋ณด๊ธฐ
6-1. ์ฌ์ ์ค๋น
์ ์ ํ์ผ ์ค๋นํ๊ธฐ build
6-2. S3 bucket
s3 bucket ์์ฑํ๊ธฐ

ํ์ผ์ bucket์ ์ ๋ก๋ ํ๊ธฐ

bucket ์ ์ฑ ์์ ํ๊ธฐ

s3 ์ ์ ํธ์คํ ํ๊ธฐ
์์ฑ ํญ์ ๊ฐ์ฅ ์๋

์ ์ ์น์ฌ์ดํธ ํธ์คํ ํ์ฑํ

ํ์ธํด๋ณด๊ธฐ

6-3. Cloudfront

cloudfront ๋ฐฐํฌ ์์ฑํ๊ธฐ
์๋ณธ์ผ๋ก s3 bucket ์ฐ๊ฒฐํ๊ธฐ

์๋ณธ ์ก์ธ์ค ์ ํํ๊ธฐ

๊ธฐ๋ณธ ์บ์ ๋์

๋๋ฉ์ธ ์ฐ๊ฒฐ์ ๋์ค์ ์ฌ๊ธฐ์

ํ๊ณ ๋๋ฉด ๋ฒํท ๊ถํ์ ์์ ํ๋ผ๊ณ ์๋ฆผ์ด ๋ฌ๋ค. ์ผ๋จ ๋ ๋๊ณ ๋๋ฉ์ธ์ ๊ตฌ๋งคํ๋ฌ ๊ฐ๋๋ค.

6-4. route 53
๋๋ฉ์ธ ๊ตฌ๋งคํ๊ธฐ
ACM AWS certificate manager์์ ํผ๋ธ๋ฆญ ์ธ์ฆ์ ์์ฒญํ๊ธฐ
๋ฆฌ์ ์ด ๋ฒ์ง๋์ ๋ถ๋ถ์ธ์ง ํ์ธํ๊ธฐ!

์ธ์ฆ์ ์์ฒญ

๊ตฌ๋งคํ ๋๋ฉ์ธ ์ด๋ฆ์ผ๋ก ํผ๋ธ๋ฆญ ์ธ์ฆ์ ์์ฒญ

๊ฒ์ฆ์ ์ํด route 53์์ record ์์ฑํ๊ธฐ

๋๋ฉ์ธ์ ๋ ์ฝ๋ ์ถ๊ฐํ๊ธฐ
๋๋ฉ์ธ cloudfront ๋ฐฐํฌ ๋๋ฉ์ธ ์ฐ๊ฒฐํ๊ธฐ 1. cloudfront > ์ผ๋ฐ > ์ค์ > ํธ์ง
1. alternative domain name์ ์ค์ ํ๊ธฐ 1. ๋ฐ๊ธ ์๋ฃ๋ SSL์ custom ssl certificate ์ ์ถ๊ฐํ๊ธฐ 
ํผ๋ธ๋ฆญ ์ก์ธ์ค๋ฅผ ์ฐจ๋จํ๊ณ cloudfront๋ก๋ง ์ ๊ทผ ๊ฐ๋ฅํ๊ฒ ํ๊ธฐ์ํด s3 bucket ๊ถํ ์์ ํ๊ธฐ
cloudfront ์๋ณธ > ํธ์ง
์ ์ฑ ๋ณต์ฌํ๊ธฐ
s3 ๊ถํ ์์ ํ๋ฌ ๊ฐ๊ธฐ
๋ฒํท ์ ์ฑ ํธ์ง
๋ถ์ฌ๋ฃ๊ธฐ
s3 ํผ๋ธ๋ฆญ ์ก์ธ์ค ์ฐจ๋จ ํญ๋ชฉ ํธ์ง
๋ค์ ๋ชจ๋ ํผ๋ธ๋ฆญ ์ก์ธ์ค ์ฐจ๋จ ์ ํ

ํ์ธํด๋ณด๋ฉด ์ด์ public๋๋ฉ์ธ์ ์ ๊ทผ์ด ๋ถ๊ฐ๋ฅํ๊ณ , cloudfront๋ ์ ๊ทผ ๊ฐ๋ฅํจ

6-5. SPA ์๋ก๊ณ ์นจ์ 404 ์๋ฌ ํด๊ฒฐ
cloudfront์ ์ค๋ฅ ํ์ด์ง ์๋ต ์์ฑ * 2
HTTP ์๋ฌ ์ฝ๋: 404, 403
Customize error response: Yesy
Response page path: /index.html
http response code: 200
cloudfront์ ๋ฌดํจํ
๋ฌดํจํ ์์ฑ
๊ฐ์ฒด ๊ฒฝ๋ก ์ถ๊ฐ: /*
Last updated