1. CloudFront
CloudFront๋CDN(Content Delivery Network, ์ปจํ ์ธ ์ ์ก ๋คํธ์ํฌ)์๋น์ค์ด๋ค.- CDN์ด ํ๋ ์ญํ ์ ์ด๋ฆ ๊ทธ๋๋ก ์ฝํ ์ธ ๋ฅผ ์ ์ธ๊ณ๋ก ๋น ๋ฅด๊ฒ ์ ์กํ ์ ์๊ฒ ํด์ฃผ๋ ๊ฒ
- AWS์์ ์ด CDN์ ์ญํ ์ ํ๋ ์๋น์ค๊ฐ ๋ฐ๋ก
CloudFront
1.1 CloudFront ํน์ง
- ์ฝํ ์ธ ์ ์ก ๋คํธ์ํฌ(CDN)
- ์ฝํ ์ธ (์ด๋ฏธ์ง, HTML)๋ฅผ ์บ์ฑํ์ฌ ์ฑ๋ฅ ๊ฐ์
- ์ ์ธ๊ณ ์๋ง์ Edge Location์ ํตํด ์ฝํ ์ธ ๋ฅผ ๋น ๋ฅด๊ฒ ์ ์ธ๊ณ๋ก ์ ์ก ๊ฐ๋ฅ
- ๊ธ๋ก๋ฒ ๊ณ ์ ๋ฐฑ๋ณธ ๋คํธ์ํฌ ํ๋ณด์์
- AWS ์๋น์ค
<--->CloudFront ๋ฐ์ดํฐ ์ ์ก ๋ฌด๋ฃ - DDoS ๋ฐฉ์ด ๋ฌด๋ฃ ์ ๊ณต(AWS Shield Standard)
1.2 AWS Shield Standard
- AWS์์ ์คํ๋๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ณดํธํ๋ DDoS ๋ณดํธ ์๋น์ค
- CloudFront์์๋ AWS Shield Standard์ ์ํ L3/L4 DDoS ๋ณดํธ๋ ์ถ๊ฐ ๋น์ฉ ์์ด ํฌํจ๋๋ค.
- AWS๋ ์ ์ธ๊ณ์ 400๊ฐ ์ด์์ ์ฃ์ง ๋ก์ผ์ด์
์ด ์กด์ฌํ๋ค๊ณ ๋์ ์๋๋ฐ,
- ์ด ์ฃ์ง ๋ก์ผ์ด์ ์ด ๋ฐ๋ก CloudFront๊ฐ์ CDN ์๋น์ค๋ฅผ ์ ๊ณตํ๊ธฐ ์ํ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉ๋๋ค.
1.3 CloudFront ๊ธฐ๋ณธ ์ฉ์ด
๋ฐฐํฌ(Distribution)- CloudFront์ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ๋จ์๋ฅผ ์๋ฏธ
- ๊ฐ ๋ฐฐํฌ๋ ๊ณ ์ ์ ๋๋ฉ์ธ์ ๊ฐ์ง๊ฒ ๋๋ฉฐ,
- Route 53์ด๋ผ๋ AWS์ DNS ์๋น์ค๋ฅผ ์ฌ์ฉํด์ ์์ ์ด ๊ตฌ์ ํ ๋๋ฉ์ธ์ ์ฐ๊ฒฐํ ์ ์๋ค.
์ค๋ฆฌ์ง(Origin)- ์๋ณธ ํ์ผ์ ๊ฐ์ ธ์ค๋ ์์น๋ฅผ ์๋ฏธ
- ๊ธฐ๋ณธ ์ค์ ์ S3๋ก ๋์ด ์์ผ๋ฉฐ, EC2, ELB, ์ธ๋ถ์๋ฒ ๋ฑ์ผ๋ก ์ปค์คํ ์ค์ ๋ ๊ฐ๋ฅํ๋ค
2. (์ค์ต) S3 ๋ฒํท ์์ฑ
1(ํด๋ผ์ด์ธํธ ์์ฒญ) โฏโฏโฏ> (CloudFront) โฏโฏโฏ> (S3)
CloudFront๋ฅผ ์ฌ์ฉํ๊ธฐ ์ ์ ๋จผ์ S3 ๋ฒํท์ ์์ฑํด์ผ ํ๋ค.
- [S3] โ [๋ฒํท]ํ์ด์ง ์ค๋ฅธ์ชฝ์ ์๋ [bucket ๋ง๋ค๊ธฐ] ๋ฒํผ์ ํด๋ฆญ.
- ๊ทธ๋ฌ๋ฉด ๋ฒํท์ ์์ฑํ๋ ํ๋ฉด์ด ๋์จ๋ค.
๋ฒํท ์ด๋ฆ: sw-bucket-240114-2- cf. ์ฃผ์ํ ์ ์ ๋ฒํท ์ด๋ฆ์ DNS ํ์์ผ๋ก ์ ์ธ๊ณ์์ ์ ์ผํด์ผ ํ๋ค
๊ฐ์ฒด ์์ ๊ถ: ACL ๋นํ์ฑํ๋จ์ ๊ทธ๋๋ก ์ฌ์ฉ์ด ๋ฒํท์ ํผ๋ธ๋ฆญ ์ก์ธ์ค ์ฐจ๋จ ์ค์ - ํผ๋ธ๋ฆญ ์ก์ธ์ค๊ฐ ์ฐจ๋จ๋์ด ์์ผ๋ฉด ์ธ๋ถ์์ ๋ฒํท์ ์๋ ๊ฐ์ฒด์ ์ ๊ทผํ ์ ์๋ค.
- ์ด ์ต์ ์ ์ ํํ ์ํ๋ก ๋ฒํท์ ์์ฑํ๋ค.
- ํ๋ฉด์ ์ ์ผ ํ๋จ์ผ๋ก ๋ด๋ ค์ [๋ฒํท ๋ง๋ค๊ธฐ] ๋ฒํผ์ ํด๋ฆญ
์ฌ๊ธฐ์ ํด๋น ๋ฒํท์ ๋๋ฌ์ ๋ค์ด๊ฐ ๋ณด๋ฉด, ๊ฐ์ข ํญ๊ณผ ๊ฐ์ฒด ๋ชฉ๋ก์ด ๋์จ๋ค.
- ํ์ฌ๋ ์๋ฌด๋ฐ ๊ฐ์ฒด๋ ๋ค์ด ์์ง ์๊ธฐ ๋๋ฌธ์ ๋น์ด ์๋ค.
3. (์ค์ต) S3 ๋ฒํท์ ํ์ผ ์ ๋ก๋
๊ฐ๋จํ ๋ด์ฉ์ hello.txt ํ์ผ์ ์์ฑํ๋ค.
- ์ดํ [S3] โ [๋ฒํท] ํ์ด์ง์์ [์ ๋ก๋] ๋ฒํผ์ ํด๋ฆญ.
- ๊ทธ๋ฌ๋ฉด ํ์ผ ์ ๋ก๋ ํ๋ฉด์ด ๋์ค๋๋ฐ, [ํ์ผ ์ถ๊ฐ] ๋ฒํผ์ ํด๋ฆญ.
- ์์ฑํ ํ์ผ์ ์ ํํด์ [์ด๊ธฐ] ๋ฒํผ์ ํด๋ฆญ.
- ํ๋ฉด ํ๋จ์ ์๋ [์ ๋ก๋] ๋ฒํผ์ ํด๋ฆญํด์ ํ์ผ์ ์ ๋ก๋ํ๋ค.
4. (์ค์ต) CloudFront ๋ฐฐํฌ ์์ฑ
[CloudFront] ํ์ด์ง์์ [Cloud ๋ฐฐํฌ ์์ฑ] ๋ฒํผ์ ํด๋ฆญํ๋ค.
(๋ฐฐํฌ ์์ฑ) ํ์ด์ง
์๋ณธ ๋๋ฉ์ธ: ์์์ ๋ฏธ๋ฆฌ ๋ง๋ค์ด๋ S3 ๋ฒํท์ ์ ํ.์๋ณธ ์ก์ธ์ค: ์๋ณธ ์ก์ธ์ค ์ ์ด ์ค์ (๊ถ์ฅ)์ ์ฒดํฌ- cf. ์๋ณธ์ ์ ๊ทผํ ์ ์๋ ๊ถํ์ ์ค์ ํ๋ ๊ฒ
- ๊ทธ๋ผ ์๋ ์ต์ ์ด ๋ฐ๋๊ณ , [์ ์ด ์ค์ ์์ฑ] ๋ฒํผ์ ํด๋ฆญ.
- ์ ์ด ์ค์ ์ ์์ฑํ ์ ์๋ ๋ค์ด์ผ๋ก๊ทธ๊ฐ ๋์จ๋ค.
- ์ด๋ฆ์ MyOriginAccess๋ผ๊ณ ๋ณ๊ฒฝํ๊ณ , ํ๋จ์ [์์ฑ] ๋ฒํผ ํด๋ฆญ
- Origin access control์ ๋ฐฉ๊ธ ๋ง๋ ์ ์ด ์ค์ ์ ํด๋ฆญํ๋ค.
๊ธฐ๋ณธ ์บ์ ๋์: ๊ธฐ๋ณธ๊ฐ์ ๊ทธ๋๋ก ์ฌ์ฉํจ์ ์ฐ๊ฒฐ ์ต์ : ์ฌ์ฉํ์ง ์๋๋ค.์น ์ ํ๋ฆฌ์ผ์ด์ ๋ฐฉํ๋ฒฝ(WAF): ๋ณด์ ๋ณดํธ ๋นํ์ฑํ ์ฒดํฌ- cf. ์ด ๋ณด์๋ณดํธ ํ์ฑํ๋ฅผ ํ๋ฉด, ์ฌ๋ฌ๊ฐ์ง ์ทจ์ฝ์ ์ผ๋ก๋ถํฐ ์ฑ์ ๋ณดํธํ ์ ์๋๋ฐ
- ์ ๋ฃ ๊ธฐ๋ฅ์ด๊ธฐ ๋๋ฌธ์, ๋นํ์ฑํ๋ฅผ ์ํจ๋ค.
์ค์ : ๋ค๋ฅธ ์ค์ ์ ๊ทธ๋๋ก ์ฌ์ฉ, ๊ธฐ๋ณธ๊ฐ ๋ฃจํธ ๊ฐ์ฒด๋ฅผ ์ค์ ํ๋ค.๊ธฐ๋ณธ๊ฐ ๋ฃจํธ ๊ฐ์ฒด: ๋ฒํท์ ์ต์์ ๊ฒฝ๋ก์ ์ ๋ก๋ํ hello.txt ํ์ผ ์ด๋ฆ์ ์ ๋ ฅ- cf. ์ด๋ ํด๋ผ์ฐ๋ ํ๋ก ํธ ๋ฐฐํฌ์ URL๋ก ์ ์ํ ๊ฒฝ์ฐ, ๋์ค๊ฒ ๋ ๊ฐ์ฒด๋ฅผ ์๋ฏธ
- ์ด์ [๋ฐฐํฌ ์์ฑ] ๋ฒํผ์ ํด๋ฆญํ๋ค.
CloudFront ๋ฐฐํฌ ์์ฑ์ ์๊ฐ์ด ์กฐ๊ธ ๊ฑธ๋ฆฐ๋ค. ์ด์ ์ด ์ํ์์ ํด๋ผ์ฐ๋ ํ๋ก ํธ๊ฐ S3 ๋ฒํท์ผ๋ก๋ถํฐ ๊ฐ์ฒด๋ค์ ์ ๊ทผํ ์ ์๋๋ก S3 ๋ฒํท์ ์ ์ฑ ์ ์ ๋ฐ์ดํธํด์ผ ํ๋ค.
- [์ ์ฑ ๋ณต์ฌ] ๋ฒํผ์ ํด๋ฆญํ์ฌ ์ ์ฑ ์ ๋ณต์ฌํ๊ณ , S3 ๋ฒํท ๊ถํ์ผ๋ก ์ด๋ํ๋ ๋งํฌ๋ฅผ ํด๋ฆญ
- ๋งํฌ๋ฅผ ํด๋ฆญํ๋ฉด S3 ๋ฒํท [๊ถํ] ํญ์ด ๋์จ๋ค.
- ํ๋ฉด์ ์๋๋ก ๋ด๋ฆฌ๋ฉด ๋ฒํท ์ ์ฑ
์ ์ค์ ํ ์ ์๋ ์ต์
์ด ๋์ค๋๋ฐ,
- ์ฌ๊ธฐ์ [ํธ์ง] ๋ฒํผ์ ํด๋ฆญํ๊ณ , ๋ณต์ฌํด๋ ์ ์ฑ ์ ๋ถ์ฌ๋ฃ์ผ๋ฉด ๋๋ค.
- cf. ๋ง์ฝ ๋์ค์ ์ ์ฑ ์ ์ง์ ๋ง๋ค๊ณ ์ถ์ผ๋ฉด, AWS์ ๊ณต์ ๋ฌธ์ ์ค Amazon S3 ์ค๋ฆฌ์ง์ ๋ํ ์ก์ธ์ค ์ ํ ๋ฌธ์๋ฅผ ์ฐธ๊ณ
- ํ๋ฉด ํ๋จ์ ์๋ [๋ณ๊ฒฝ ์ฌํญ ์ ์ฅ] ๋ฒํผ์ ํด๋ฆญ
์๊น ์ ๋ก๋ํ hello.txt ํ์ผ์ ์์ธ ์ ๋ณด์์ ๊ฐ์ฒด URL์ ๋ณต์ฌํด์ ์ ์ํด๋ณด๋ฉด,
- ์ ์ํ๋ฉด, AccessDenied ์๋ฌ ๋ฉ์์ง๊ฐ ๋์จ๋ค.
- ์ด๋ ๊ฒ ๋๋ ์ด์ ๋ ํ์ฌ ์ ์ฑ ์์๋ hello.txt ๊ฐ์ฒด์ S3 URL๋ก ์ ๊ทผํ ์ ์๋ ๊ถํ์ด ์๊ธฐ ๋๋ฌธ์ด๋ค.
์ด๋ฒ์๋ CloudFront๋ฅผ ํตํด์ ์ ์ํด๋ณธ๋ค.
- [CloudFront] โ [๋ฐฐํฌ] ์์ธ ํ์ด์ง์์ ๋ฐฐํฌ ๋๋ฉ์ธ ์ด๋ฆ์ ๋ณต์ฌ.
- ๋ฐฐํฌ ๋๋ฉ์ธ์ ๋ณต์ฌํ ์ดํ์ ๋ธ๋ผ์ฐ์ ์์ ์ ์ํ๋ฉด,
- ๋ฃจํธ ๊ฐ์ฒด๋ก ์ง์ ํ hello.txt๊ฐ ์ ์์ ์ผ๋ก ๋์จ๋ค.
- ๊ทธ ์ํ์์ ๋ธ๋ผ์ฐ์ ๊ฐ๋ฐ์๋๊ตฌ์ Newtwork ํญ์์ ๋ฌธ์๋ฅผ ํด๋ฆญํ์ฑ๋ก ์๋ก๊ณ ์นจ.
- ํด๋ฆญํด์ ์์ธ ์ ๋ณด๋ฅผ ๋ณด๋ฉด
X-Cache : Miss from cloudfront๋ผ๊ณ ๋์ด ์๋ ์๋ต์ ๋ณผ ์์๋ค.
- cf. ์บ์์๋ miss์ hit๋ผ๋ ์ฉ์ด๊ฐ ์๋๋ฐ,
- ์บ์์์ ๊ฐ์ ธ์ฌ ๊ฒฝ์ฐ hit,
- ์บ์์ ์์ ๊ฒฝ์ฐ miss๋ผ๊ณ ํํํ๋ค.
- ๊ทธ๋์ ์ง๊ธ์ CloudFront์ ์บ์ฑ์ด ๋์ง ์์๊ธฐ ๋๋ฌธ์ miss๋ผ๊ณ ๋์ค๋ ๊ฒ.
- ์ด ์ํ์์ ์ธ๋ก๊ณ ์นจ์ ๊ณ์ํ๋ค ๋ณด๋ฉด,
X-Cache : Hit from cloudfront๋ผ๊ณ ๋ฐ๋๋ค.
- ์ด๋ CloudFront๋ฅผ ์ฌ์ฉํ์ฌ ์ฃ์ง ๋ก์ผ์ด์ ์ ํตํด ์บ์ฑ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์จ ๊ฒ์ด๋ค.
5. (์ค์ต) CloudFront ๋ฐฐํฌ ์ญ์
๋ฐฐํฌ๋ฅผ ์ญ์ ํ๊ธฐ ์ํด์๋ ๋จผ์ ๋นํ์ฑํ๋ฅผ ํด์ผ ํ๋ค.
- [CloudFront] โ [๋ฐฐํฌ]๋ฅผ ์ ํํฉ๋๋ค.
- ์ญ์ ํ CloudFront ์ ํํ ์ดํ์ ๋นํ์ฑํ ๋ฒํผ์ ํด๋ฆญ.
- ๊ทธ๋ผ ํ์ธ ๋ค์ด์ผ๋ก๊ทธ๊ฐ ๋จ๊ณ , [๋นํ์ฑํ] ๋ฒํผ์ ํด๋ฆญ.
- cf. ๋นํ์ฑํ๊ฐ ์์๋๋๋ฐ ์ด ์์ ๋ ์ฝ๊ฐ ์๊ฐ์ด ์์๋จ.
- ์ด๋ ์ ๋ ์๊ฐ์ด ์ง๋๋ฉด, [๋นํ์ฑํ]๊ฐ ์๋ฃ๋๊ณ ,
- ์ด ์ํ์์ ๋ค์ ์ญ์ ํ CloudFront ์ ํํ ์ดํ [์ญ์ ] ๋ฒํผ์ ํด๋ฆญ.
- ๋ค์ ํ๋ฒ ๊ทธ๋ผ ๋ฐฐํฌ๋ฅผ ์ ๋ง ์ญ์ ํ ๊ฒ์ธ์ง ๋ฌป๋ ๋ค์ด์ผ๋ก๊ทธ๊ฐ ๋์ค๊ณ ,
- [์ญ์ ] ๋ฒํผ์ ํด๋ฆญํ์ฌ ์ญ์ ํ๋ค.
- ์ด๋ ๊ฒ ํด๋ผ์ฐ๋ ํ๋ก ํธ ๋ฐฐํฌ๊ฐ ์ ์์ ์ผ๋ก ์ญ์ ๋์์ต๋๋ค.