이번 장은 CloudFront를 다룬다.
CloudFront는 AWS의 CDN(Content Delivery Network)이다.
전 세계 사용자에게 콘텐츠를 빠르게 전달하는 것이 목적이다.
이 장의 목표는 다음과 같다.
- CDN이 왜 필요한지 이해한다.
- 엣지 로케이션과 캐싱을 안다.
- CloudFront로 보안과 성능을 함께 얻는다.
1. CDN이 필요한 이유
서버가 서울에 있고 사용자가 미국에 있다면, 요청이 태평양을 왕복해야 한다.
거리가 멀수록 지연이 커진다.
CDN은 전 세계에 흩어진 캐시 서버(엣지)에 콘텐츠를 복제해 둔다.
사용자는 가장 가까운 엣지에서 콘텐츠를 받으므로 훨씬 빠르다.
2. 엣지 로케이션과 캐싱
엣지 로케이션(Edge Location)은 CloudFront의 캐시 서버가 있는 지점이다.
전 세계 수백 곳에 있으며, 리전보다 훨씬 촘촘하다.
동작은 이렇다.
- 사용자가 콘텐츠를 요청한다.
- 가까운 엣지에 캐시가 있으면(cache hit) 즉시 준다.
- 없으면(cache miss) 원본(오리진)에서 가져와 캐시하고 전달한다.
이후 같은 요청은 엣지가 바로 응답하므로 오리진 부하가 크게 줄어든다.
3. 오리진과 OAC
오리진(Origin)은 원본 콘텐츠가 있는 곳이다. S3 버킷이나 ALB가 흔하다.
S3를 오리진으로 쓸 때는 OAC(Origin Access Control)를 쓴다.
- S3 버킷을 직접 공개하지 않는다.
- 오직 CloudFront만 S3에 접근하도록 제한한다.
- 사용자는 CloudFront를 통해서만 콘텐츠를 받는다.
5장에서 본 "S3 + CloudFront" 조합이 바로 이것이다.
4. 보안과 성능 기능
CloudFront는 단순 캐시를 넘어선다.
- HTTPS: 무료 인증서(ACM)로 암호화 전송.
- WAF 연동: 웹 공격을 엣지에서 차단.
- Shield: DDoS 방어.
- Lambda@Edge / CloudFront Functions: 엣지에서 요청을 가공(리다이렉트, 헤더 조작 등).
정적 파일뿐 아니라 동적 API도 CloudFront 뒤에 두면 지연과 보안이 개선된다.
정리
- CloudFront는 엣지에 콘텐츠를 캐시해 전 세계에 빠르게 전달한다.
- cache hit면 엣지가 즉시 응답해 오리진 부하가 준다.
- S3 오리진은 OAC로 CloudFront만 접근하게 막는다.
- HTTPS·WAF·Shield·엣지 함수로 보안과 성능을 함께 얻는다.
다음 장에서는 VPC를 넘어선 네트워킹 심화 주제를 다룬다.
댓글 0
댓글은 운영자만 작성할 수 있어요.