AWS CloudFront
Content Delivery Network (CDN)
- ์ฝ๊ธฐ ์ฑ๋ฅ์ ํฅ์์ํจ๋ค. ์ปจํ ์ธ ๊ฐ Edge Location์์ ๋ถ๋ฐฐ ๋ฐ ์บ์๊ฐ ๋๊ธฐ ๋๋ฌธ์ด๋ค.
- 216๊ฐ์ ์ฃ์ง ๋ก์ผ์ด์
์ด ์กด์ฌํ๋ฉฐ, ์ง์์ ์ผ๋ก ์ถ๊ฐ๋์ด์ง๊ณ ์๋ค.
- AWS ๋ด์ ๋ฆฌ์ ์ ์ฝ 30๊ฐ ์ ๋์ธ๋ฐ, Region ์๋ณด๋ค ํจ์ฌ ๋ ๋ง์ผ๋ฉฐ ์ ์ธ๊ณ์ ํผ์ ธ์๋ค.
- Netflix ๊ฐ CDN ์ ์ ๊ทน ํ์ฉํ๋๊ฒ์ผ๋ก ์๊ณ ์์
- ์ฃ์ง์์์ ์บ์ฑ ์ด์ธ์ DDoS ๊ณต๊ฒฉ์ผ๋ก๋ถํฐ ๋ณดํธํ๋ ๊ธฐ๋ฅ๋ ์ ๊ณตํ๋ค.
- ์๋น์ค ๊ฑฐ๋ถ๋ฅผ ๋ฐฐํฌํ๋ ์ด๋ฌํ ๊ณต๊ฒฉ์ผ๋ก๋ถํฐ ๋ณดํธ๋ง๊ณผ ์นApp ๋ฐฉํ๋ฒฝ์ ์ ๊ณตํ๋ค.
- ๋ณด์์ด ์ฒ ์ ํ๊ณ , ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ธ๊ณ์ ์ผ๋ก ๋ฐฐํฌํ๊ธฐ์ ์ข์ ํ๋ก ํธ์ด๋ค.
- ์ธ์ฆ์๋ฅผ ๋ก๋ํ์ฌ ์ธ๋ถ HTTPS ์๋ํฌ์ธํธ๋ฅผ ๋ ธ์ถํ๊ณ , ํด๋น ํธ๋ํฝ์ ์ํธํํด์ผ ํ๋ ๊ฒฝ์ฐ ๋ด๋ถ HTTPS ์์ ๋ด๋ถ์ ์ผ๋ก ํต์ ํ๊ฒ๋ ํด์ค๋ค.
์์ ๋ณด์ด๋ ๊ทธ๋ฆผ์ ์ธ๊ณ์ง๋๊ฐ ๋ณด์ธ๋ค. ๋ช ๊ฐ์ ์ฃผํฉ์ Region๊ณผ Edge๊ฐ ์๋ค. ์ง๋ ๋ด์ ๋ณด์ด๋ ์ง์ ์ ๋ชจ๋ Edge๋ก ๋ณด๋ค์ํผ ์ ์ธ๊ณ์ ํผ์ ธ ์๋ค. ์๋ฅผ ๋ค์ด, ํธ์ฃผ์์ S3 ๋ฒํท์ด ์๊ณ ๋ฏธ๊ตญ์ ์ฌ์ฉ์๊ฐ ์ฌ๊ธฐ๋ก ์ก์ธ์คํ๋ ค ํ๋ฉด ๋ฏธ๊ตญ์์ ๊ฐ๊น์ด ์ฃ์ง ๋ก์ผ์ด์ ์ ์ก์ธ์ค๋ฅผ ํ ๋ค, ํด๋น ๋คํธ์ํฌ๊ฐ ์ฌ์ค AWS ๋คํธ์ํฌ๋ฅผ ํตํด S3 ๋ฒํท๊น์ง ์ ์ก์ด ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฝํ ์ธ ๋ ์บ์๋ฉ๋๋ค. ์ฆ, ๋ฏธ๊ตญ์ ์ด๋ฌํ ์ฌ์ฉ์๊ฐ ๋ง์์ง์๋ก ๋์ผํ ์ฝ๊ธฐ๋ฅผ ์ํ๋ ์ฌ๋์ด ๋ง์์ง ๊ฒ์ด๊ณ ๊ทธ๋ ๊ฒ ๋๋ฉด ์ด๋ฐ ์ฌ์ฉ์๋ค์ ํธ์ฃผ๊ฐ ์๋๋ผ ๋ฏธ๊ตญ์์ ์ง์ ์ ๊ณต๋๋ ์ฝํ ์ธ ๋ฅผ ์ป๊ฒ ๋๋ ๊ฒ์ด๋ค.
์ฝํ ์ธ ๊ฐ ๋ฏธ๊ตญ์์ Fetch ๋๊ณ ์ ๊ณต๋๋ฉด ํ์ง์์ ์บ์๋๊ธฐ ๋๋ฌธ์ด๋ค. ์์์์ ์๋ ๋ค๋ฅธ ์ฌ์ฉ์๊ฐ ์์์์์ ๊ฐ๊น์ด ์ฃ์ง ๋ก์ผ์ด์ ์ผ๋ก ํต์ ์ ํ๋ฉด, ์ฃ์ง ๋ก์ผ์ด์ ์ด S3 ๋ฒํท์ผ๋ก ํธ๋ํฝ์ ์ง์ํ์ฌ ์ฝํ ์ธ ๋ฅผ ์ป๊ณ ์ฃ์ง์์ ์บ์ํ ๊ฒ์ด๋ค. ์ฆ, CloudFront๋ ์ด์ฒ๋ผ ๋ค์ํ ์ฃ์ง ๋ก์ผ์ด์ ์ ๊ธฐ๋ฐํด ์ฝ๊ธฐ๋ฅผ ์ ์ธ๊ณ์ ๋ฐฐํฌํ๋ค.
๊ทธ๋ ๊ฒ ๋๋ฉด ๋ฉ์ธ S3 ๋ฒํท์์ ์ง์ฐ ์๊ฐ๊ณผ ๋ก๋๋ฅผ ์ค์ผ ์ ์๋ค.
1. CloudFront - Origin
S3 ๋ฒํท์ ํฌํจํ ๋ค๋ฅธ CloudFront์ Origin์ ์ดํด๋ณด์
- S3 Bucket
- S3 ์์์ ํด๋ผ์ฐ๋ํ๋ก ํธ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ์ ์ธ๊ณ์ ํ์ผ์ ๋ฐฐํฌํ๊ณ ์ฃ์ง์์ ์บ์ํ ๋ ํํ ๋ณด๋ ํจํด
- OAI (Origin Access Identity) ์ผ๋ก CloudFront์ S3 Bucket ์ฌ์ด์ ๋ณด์์ ๊ฐํํด์ค๋ค.
- S3 ๋ฒํท์ด ์ค์ง CloudFront ํ๊ณ ๋ง ํต์ ํ ์ ์๋๋ก ํด์ค๋ค.
- CloudFront ๋ฅผ ์ธ๊ณ ์ด๋์๋ ํ์ผ์ S3์ ์ ๋ก๋ํ ์ ๊ตฌ์ฒ๋ผ ์ฌ์ฉํ ์๋ ์๋ค.
- Custom Origin
- HTTP ์๋ ํฌ์ธํธ๊ฐ ์์ด์ผ ํ๋ค. HTTP ํ๋กํ ์ฝ์ ์ค์ํ๋ ๋ฌด์์ด๋ ๋ ์ ์๋ค.
- Application Load Balancer
- EC2 Instance
- S3 Website (์ ์ S3 ์น์ฌ์ดํธ๋ก ๋ฒํท์ ํ์ฑํํด์ผ ํ๋ฉฐ, ์ด๋ S3๋ฒํท๊ณผ๋ ๋ค๋ฅด๋ค.)
- ์ฐ๋ฆฌ๊ฐ ์ํ๋ ๋ชจ๋ HTTP ๋ฐฑ์๋๊ฐ ๊ฐ๋ฅํ๋ค.
- ์ฌ๋ด์ ์๋ ์ธํ๋ผ์ผ์๋ ์๋ค.
- HTTP ์๋ ํฌ์ธํธ๊ฐ ์์ด์ผ ํ๋ค. HTTP ํ๋กํ ์ฝ์ ์ค์ํ๋ ๋ฌด์์ด๋ ๋ ์ ์๋ค.
2. CloudFront - How to work?
CloudFront์ ์ ๋ฐ์ ์ธ ์๋๋ฐฉ์์ ๋ํด ์์๋ณด์
์ ์ธ๊ณ ์ฌ๋ฌ ๊ณณ์ ์ฃ์ง ๋ก์ผ์ด์ ์ด ์๊ณ , ์ด ์ฃ์ง๋ก์ผ์ด์ ๋ค์ ์ฐ๋ฆฌ๊ฐ ์ ์ํ Origin์ผ๋ก ์ฐ๊ฒฐ๋์ด ์๋ค. S3 Bucket ๋ฑ ์ด๋ค HTTP Endpoint๋ ๋ ์ ์๋ค. ํด๋ผ์ด์ธํธ๊ฐ ์ฐ๋ฆฌ์ CloudFront ๋ถ์ฐ์ผ๋ก ์ ๊ทผ(์ก์ธ์ค)ํ๋ ค ํ๋ ๊ฒฝ์ฐ ํด๋ผ์ด์ธํธ๋ CloudFront์ ์ง์ HTTP ์์ฒญ์ ๋ณด๋ผ๊ฒ์ด๋ค.
HTTP ์์ฒญ์ ์์ ๊ฐ์ ํ์์ธ๋ฐ, URL, QueryString, Header ๋ฑ์ผ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค. ๊ทธ๋ฌ๋ฉด Edge Location์ด ์์ฒญ์ Origin์ผ๋ก ์ ๋ฌํ ๊ฒ์ด๋ค. ์ด ์์ฒญ์๋ queryString๊ณผ header๊ฐ ํฌํจ๋ ๊ฒ์ด๋ฉฐ, ์ด๋ ๊ฒ ๋ชจ๋ ๋ด์ฉ์ด origin์ผ๋ก ์ ๋ฌ์ด ๋๊ฒ ๋๋ค.
๊ทธ๋ฌ๋ฉด ์ค๋ฆฌ์ง์ด ์ฃ์ง๋ก์ผ์ด์ ์ ํ์ ํด ์ฃ์ง ๋ก์ผ์ด์ ์ ์ ์๋ ์บ์ ์ค์ ์ ๋ฐ๋ผ ํ์ ๋ด์ฉ์ ์บ์ํ ๊ฒ์ด๋ค. ๊ทธ๋ฆฌ๊ณ ๋ค์ ๋ฒ์ ํด๋ผ์ด์ธํธ๊ฐ ๋น์ทํ ์์ฒญ์ ํ๋ฉด ์ฃ์ง ๋ก์ผ์ด์ ์ ์์ฒญ์ ์ค๋ฆฌ์ง์ผ๋ก ์ ๋ฌํ๊ธฐ ์ ์ ์ฐ์ ์บ์๋ถํฐ ์ดํด๋ณผ ๊ฒ์ด๋ค. ์ด๋ฐ ์์ ์ด ๋ฐ๋ก CDN์ ๋ชฉ์ ์ด๋ค.
3. CloudFront - S3 as an Origin
Origin์ผ๋ก์์ S3๋ฅผ ์์๋ณด์!
- Cloud๊ฐ ์๊ณ , Origin ์ฆ, S3 Bucket์ด ์๋ค.
- Edge Location์ ๋ก์ค์์ ค๋ ์ค์ ์๋ค๊ณ ํ์.
- ์ด Edge Location์ผ๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ผ๋ ค ํ๋ ๋ช๋ช์ Users์ด ์์ผ๋ฉด ์ฃ์ง๋ก์ผ์ด์ ์ด private AWS Network๋ฅผ ํตํด S3 ๋ฒํท์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์์ ํด๋น ์ฃ์ง ๋ก์ผ์ด์ ์ผ๋ก๋ถํฐ ๊ฒฐ๊ณผ๋ฅผ ์ ๊ณตํ ๊ฒ์ด๋ค.
- ์์ ์, CloudFront์ EdgeLocaiton์ด S3 Bucket์ ์ก์ธ์คํ๋ฉด CloudFront Origin์ ๋ํ IAM์ญํ ์ธ OAI ์ฆ, ์ค๋ฆฌ์ง ์ก์ธ์ค ์ ๋ถ์ ์ฌ์ฉํด์ผ ํ๋ค๋ ๊ฒ์ด๋ค.
- IAM ์ญํ ์ ์ด์ฉํด S3 Bucket์ ์ก์ธ์คํ ๋ค ๋ฒํท ์ ์ฑ ์ด ์ด ์ญํ ์ ์ก์ธ์ค๋ฅผ ํ์ฉํ๋ฉด ํ์ผ์ CloudFront๋ก ์ ๋ฌํ๊ฒ ๋๋ ๊ฒ์ด๋ค.
- ์ด๋ ๋ธ๋ผ์ง์ ์ํ์ธ๋ฃจ๋ ๋ญ๋ฐ์ด๋ ๋ฉ๋ฒ๋ฅธ๊ณผ ๊ฐ์ ๋ค๋ฅธ EdgeLocation์์๋ ์๋ํ๋ค.
- ์ฆ, ์ ์ธ๊ณ์ ๋ชจ๋ EdgeLocation์ด S3 ๋ฒํท์ ์บ์๋ ์ฝํ ์ธ ๋ฅผ ์ ๊ณตํ๋ ๊ฒ์ด๋ค.
- ์ด๋ฐ ๋ฐฉ์์ ํตํด CloudFront๋ CDN์ผ๋ก์ ๊ต์ฅํ ์ ์ฉํ๊ฒ ์ฌ์ฉ๋๋ค.
4. CloudFront - ALB or EC2 as an Origin
Origin์ด ALB ๋๋ EC2 ์ธ ๊ฒฝ์ฐ๋ฅผ ์์๋ณด์!
-
EC2 Instance
-
๋ณด์ ๋ถ๋ถ์ด ์กฐ๊ธ ๋ฌ๋ผ์ง๋ค.
-
EC2 ์ธ์คํด์ค(๋ค)๋ HTTP๋ฅผ ํตํด ๊ณต์ฉ์ก์ธ์ค๊ฐ ๊ฐ๋ฅํ๊ฒ๋ ๊ณต์ฉ์ด์ด์ผ ํ๋ฉฐ, ์ฌ์ฉ์๋ค์ ์ ์ธ๊ณ์ ํผ์ ธ์๋ค.
-
์ด๋ค์ด EdgeLocation์ ์ ๊ทผํ๋ฉด EdgeLocation์ EC2 ์ธ์คํด์ค๋ก ์ก์ธ์คํ ๊ฒ์ด๋ค.
- ๊ทธ๋ผ ์์ ์ฌ์ง์ ๋ณด๋ค์ํผ SG(Security Group)์ ๊ฑฐ์น๊ฒ๋๋ค.
- ๋ฐ๋ผ์ ๋ณด์๊ทธ๋ฃน์ CloudFront EdgeLocation์ IP๋ฅผ EC2 ์ธ์คํด์ค๋ด๋ก ํ์ฉํด์ผ ํ๋ค.
- ์ด๋ฅผ ์ํด์๋ ์ด ์น์ฌ์ดํธ์์ ์ฐพ์ ์ ์๋ EdgeLocation์ ๊ณต์ฉ IP ๋ชฉ๋ก์ด ์์ด์ผ ํ๋ค
- ๋ฐ๋ผ์ ๋ณด์๊ทธ๋ฃน์ CloudFront EdgeLocation์ IP๋ฅผ EC2 ์ธ์คํด์ค๋ด๋ก ํ์ฉํด์ผ ํ๋ค.
- ์ฆ, SG์ด EdgeLocation์ ๋ชจ๋ ๊ณต์ฉIP์ CloudFront๊ฐ EC2 ์ธ์คํด์ค๋ก๋ถํฐ ์ปจํ ์ธ ๋ฅผ ๊ฐ์ ธ๊ฐ ์ ์๊ฒ๋ ํ์ฉํด์ผ ํ๋ค.
-
-
ALB
- ALB ์ ๋ํ ๋ณด์๊ทธ๋ฃน์ด ์๋ค.
- CloudFront๊ฐ ์ก์ธ์คํ ์ ์๊ฒ ALB๋ ๊ณต์ฉ์ด์ด์ผ ํ์ง๋ง, ์ด์ ๋ฐฑ์๋ EC2 ๋ private ์ด์ด๋ ๋๋ค.
- ๋ฐ๋ผ์ EC2 ์ SG ๋ ALB ์ SG ๋ฅผ ํ์ฉํด์ผ ํ๋ค.
- ๊ณต์ฉ ๋ก์ผ์ด์ ์ธ ์ฃ์ง ๋ก์ผ์ด์ ์ ๊ฒฝ์ฐ์๋ ๊ณต์ฉ ๋คํธ์ํฌ๋ฅผ ํตํด ALB์ ์ก์ธ์คํด์ผ ํ๋ค.
- ์ฆ, ์ฐ๋ฆฌ๋ค์ ALB ๋ณด์๊ทธ๋ฃน์ ์ฃ์ง ๋ก์ผ์ด์ ์ ๊ณต์ฉ IP๋ฅผ ํ์ฉํด์ผ ํ๋ค.
- ์ํคํ ์ณ๋ ๋ค๋ฅด์ง๋ง, ๊ฐ๋ ์ ์(EC2)์ ๋์ผํ๋ค.
CloudFront์ ์์ด๋ ๋ค์์ S3๋ ALB๋ EC2๋ฅผ ์ํ ๋คํธ์ํฌ ๋ณด์์ ์ดํดํด์ผ ํ๋ค. CDN ์ผ๋ก์์ CloudFront์๋ ๋ช๋ช์ ํ๋ฅญํ ๊ธฐ๋ฅ๋ค์ด ์๋ค.
- ์ง๋ฆฌ์ ์ ํ
5. CloudFront Geo Restriction
CloudFront CDN ๊ธฐ๋ฅ์ค ํ๋์ธ ์ง๋ฆฌ์ ์ ํ์ ๋ํด ์์๋ณด์
- ๋ถ์ฐ์ผ๋ก์ ์ก์ธ์ค์ ์ ํ์ ๋ ์ ์๋ค.
- ํ์ดํธ๋ฆฌ์คํธ
- ์ด ๋ฆฌ์คํธ์ ์๋ ํ์ฉ๋ ๊ตญ๊ฐ์ ์ฌ์ฉ์๋ค๋ง์ด CloudFront์ ์ ๊ทผ ๊ฐ๋ฅ
- ๋ธ๋๋ฆฌ์คํธ
- ํน์ ๊ตญ๊ฐ ์ฌ์ฉ์๋ค์ด ๋ถ๋ฐฐ์ ์ ๊ทผํ ์ ์๋๋ก ํ๋ค.
- ํ์ดํธ๋ฆฌ์คํธ
- ์ 3์ ํ์ฌ์ ์ง๋ฆฌ์ IP๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ด์ฉํด ๊ตญ๊ฐ๋ค์ ํ์ฉ ์ฌ๋ถ๊ฐ ๊ฒฐ์ ๋๋ค.
- ์์ ๋๋ IP์ ๋ฆฌ์คํธ๋ฅผ ๋น๊ตํ์ฌ ๊ตญ๊ฐ๋ฅผ ์์๋ด๋ ๋ฐฉ์์ด๋ค.
- ์ฌ์ฉ ์์
- ํน์ ์ฝํ ์ธ ์ ์ ๊ทผ์ ์ ํํ๋ ์ ์๊ถ๋ฒ์ด ์์๋ ์ด๋ฐ ์ ํ์ ์ฌ์ฉํ ์ ์๋ค.
- ๊ท์ ๋น๊ตญ์ ์๋ฅผ ๋ค๋ฉด ๋ฏธ๊ตญ์ ์ปจํ
์ธ ์ ํ๋์ค๋ก๋ถํฐ์ ์ก์ธ์ค๋ฅผ ์ ํํ๊ณ ์์์ ์ฆ๋ช
ํ ๋ ์ฌ์ฉ ๊ฐ๋ฅ
- ํ๋์ค์ฌ๋๋ค์ ๋ฏธ๊ตญ์ฝํ ์ธ ๋ชป๋ด (์ ํ๊ฑธ๋ฆผ)
6. CloudFront vs S3 Cross Region Replication
CloudFront ์ S3 ๋ฆฌ์ ๊ฐ ๋ณต์ ์์ ์ฐจ์ด์ ์ ์์๋ณด์!
- CloudFront
- ์ธ๊ณ์ ์ธ ์ฃ์ง ๋คํธ์ํฌ๋ฅผ ์ฌ์ฉํ๋ค.
- TTL์ ๋ง์ถฐ ํ์ผ์ด ์บ์๋๋ค. (TTL์ด ํ๋ฃจ์ผ์๋ ์์)
- ์ ์ธ๊ณ์์ ์ด์ฉ ๊ฐ๋ฅํด์ผ ํ๋ ์ ์ ์ธ ์ฝํ ์ธ ์ ์ ํฉํ๋ค. (๋ทํ๋ฆญ์ค)
- ์ฝํ ์ธ ๊ฐ ์ฝ๊ฐ ์ค๋๋์ด๋ ๊ด์ฐฎ์ ๊ฒฝ์ฐ์ ์ฌ์ฉํ ์ ์๋ค๊ณ ๋ณด๋ฉด ๋๋ค. (์๋ ์ํ?)
- ์ ์ธ๊ณ ๋์
- S3 Cross Region Replication
- ๋ณต์ ๊ฐ ์ผ์ด๋๋๋ก ํ ๊ฐ๊ฐ์ Region์ ์ค์ ๋์ด์ผ ํ๋ค.
- ํ์ผ์ด ๊ฑฐ์ ์ค์๊ฐ์ผ๋ก ์ ๋ฐ์ดํธ ๋๋ค.
- ์ฝ๊ธฐ ์ ์ฉ์ด๊ธฐ ๋๋ฌธ์ ์ฝ๊ธฐ ์ฑ๋ฅ์ด ์ข๋ค.
- ์ ์ ์์ Region์์ ์งง์ ์ง์ฐ ์๊ฐ์ผ๋ก ์ฌ์ฉ์ด ๊ฐ๋ฅํด์ผ ํ๋ ๋์ ์ธ ์ฝํ ์ธ ์ ์ ํฉํ๋ค.
- ์ ํ๋ ๋ฆฌ์ ์ ๋ณต์ ํ๋ ์ฉ๋
๋๊ธ๋จ๊ธฐ๊ธฐ