CloudFront
글로벌 콘텐츠 전송 네트워크(CDN)
CloudFront 가이드
CloudFront란?
Amazon CloudFront는 전 세계에 분산된 엣지 로케이션을 통해 콘텐츠를 빠르게 전송하는 CDN 서비스입니다. 사용자와 가장 가까운 엣지 로케이션에서 콘텐츠를 제공하여 지연 시간을 최소화하고 전송 속도를 향상시킵니다.
주요 개념
- 배포(Distribution): CloudFront가 콘텐츠를 제공하기 위해 사용하는 구성 단위입니다. 웹 배포와 RTMP 배포 두 가지 유형이 있습니다.
- 오리진(Origin): CloudFront가 콘텐츠를 가져오는 원본 소스입니다. S3 버킷, EC2 인스턴스, ELB, 또는 커스텀 HTTP 서버가 될 수 있습니다.
- 엣지 로케이션(Edge Location): CloudFront가 콘텐츠를 캐시하고 사용자에게 제공하는 전 세계에 분산된 데이터 센터입니다.
- 캐싱: 자주 요청되는 콘텐츠를 엣지 로케이션에 저장하여 응답 속도를 향상시킵니다.
- TTL(Time to Live): 엣지 로케이션에서 객체를 캐시하는 기간입니다.
작동 방식
- 사용자가 웹사이트나 애플리케이션에 콘텐츠를 요청합니다
- DNS가 요청을 가장 가까운 CloudFront 엣지 로케이션으로 라우팅합니다
- 엣지 로케이션이 캐시에서 요청된 파일을 확인합니다
- 캐시에 있으면 즉시 사용자에게 반환합니다
- 캐시에 없으면 오리진 서버에서 파일을 가져와 사용자에게 전달하고 캐시에 저장합니다
주요 기능
- 동적 및 정적 콘텐츠 전송: 모든 유형의 웹 콘텐츠 가속화
- SSL/TLS 지원: HTTPS를 통한 안전한 콘텐츠 전송
- DDoS 공격 방어: AWS Shield와 통합된 보안
- 실시간 모니터링: CloudWatch를 통한 상세한 메트릭 제공
- Lambda@Edge: 엣지 로케이션에서 코드 실행
- 지역 제한: 특정 국가의 사용자 액세스 제어
- 필드 레벨 암호화: 민감한 데이터 보호
캐싱 전략
CloudFront는 다양한 캐싱 옵션을 제공하여 성능을 최적화할 수 있습니다:
- 기본 TTL, 최소 TTL, 최대 TTL 설정
- 쿼리 문자열, 쿠키, 헤더 기반 캐싱
- 캐시 무효화를 통한 콘텐츠 즉시 업데이트
- 압축을 통한 전송 속도 개선
Lambda@Edge
Lambda@Edge를 사용하면 엣지 로케이션에서 코드를 실행하여 사용자에게 더 가까운 위치에서 애플리케이션 로직을 처리할 수 있습니다. 이를 통해 지연 시간을 줄이고 오리진 서버의 부하를 감소시킬 수 있습니다.
사용 사례: A/B 테스팅, 사용자 인증, 이미지 리사이징, SEO 최적화 등
사용 사례
- 웹사이트 및 웹 애플리케이션 가속화
- 비디오 스트리밍 (라이브 및 온디맨드)
- API 가속화
- 소프트웨어 및 게임 패치 배포
- 정적 자산 제공 (이미지, CSS, JavaScript)
- 전자상거래 사이트 성능 개선
성능 최적화 팁
- 적절한 TTL 값 설정으로 캐시 효율성 극대화
- 파일 압축 활성화로 전송 크기 감소
- 여러 오리진 사용으로 부하 분산
- CloudFront 함수나 Lambda@Edge로 동적 콘텐츠 처리
- HTTP/2 및 HTTP/3 활성화로 프로토콜 성능 향상