AWS 클라우드프론트로 웹사이트 속도 올리는 방법

웹사이트 로딩 속도는 방문자의 만족도와 SEO 성과를 결정짓는 중요한 요소입니다. 특히 글로벌 사용자나 이미지, 영상 등 정적 콘텐츠가 많은 사이트일수록 속도 최적화가 필수죠.

이럴 때 강력한 해결책이 바로 AWS CloudFront입니다. CloudFront는 AWS가 제공하는 전 세계 분산형 CDN(Content Delivery Network) 서비스로, 정적 리소스를 사용자 가까이에서 빠르게 전송해줍니다. 이 글에서는 AWS CloudFront로 웹사이트 속도를 올리는 방법을 단계별로 설명합니다.


AWS CloudFront란? CDN의 핵심 원리

CloudFront의 개념

CloudFront는 AWS의 글로벌 CDN 서비스입니다. 전 세계 400개 이상의 엣지 로케이션을 통해 사용자의 위치에 가장 가까운 서버에서 데이터를 전달하므로, 웹사이트 로딩 시간을 획기적으로 줄일 수 있습니다.

CloudFront의 주요 기능

  • 콘텐츠 캐싱(HTML, CSS, JS, 이미지, 폰트 등)
  • HTTPS 자동 적용 (ACM과 연동)
  • Gzip/Brotli 압축 전송
  • 캐시 제어(정책 기반 TTL 설정)
  • 오리진 보호 (웹 서버 직접 노출 방지)
  • WAF(Web Application Firewall) 연동 가능

이러한 기능을 활용하면 웹사이트는 더 빠르고 안전하며 확장 가능하게 작동할 수 있습니다.


CloudFront 구성 요소 이해하기

CloudFront를 구성할 때 핵심이 되는 용어는 다음과 같습니다:

  • Origin: 콘텐츠가 저장된 원본 서버 (예: S3 버킷, EC2, ALB)
  • Distribution: CloudFront 배포 단위 (도메인 URL이 생성됨)
  • Edge Location: 사용자와 가까운 데이터 전송 노드
  • Caching Behavior: 어떤 경로의 리소스를 어떻게 처리할지 정의

CloudFront로 웹사이트 속도 올리기 – 실습 가이드

1. S3 또는 EC2에 웹사이트 호스팅

먼저 정적 사이트 또는 워드프레스 사이트가 어느 위치에 있는지 확인합니다.

  • 정적 사이트 → S3 버킷에 호스팅
  • 동적 사이트 → EC2 또는 ALB에 연결

2. CloudFront 배포 생성

  1. AWS 콘솔 > CloudFront 진입
  2. Create Distribution 클릭
  3. Origin Domain 입력
    • S3 버킷: example.s3.amazonaws.com
    • EC2: 퍼블릭 DNS 또는 ALB 주소
  4. Viewer Protocol Policy: Redirect HTTP to HTTPS 권장
  5. Caching: 기본 TTL 설정 (3600초 권장), 필요시 캐시 무효화 설정
  6. Custom Domain(Optional): cdn.example.com 형태로 설정 가능
  7. SSL 인증서 연결 (ACM 인증서 사용)

배포 생성 완료 후, CloudFront에서 제공하는 도메인 이름으로 접근 가능:

d1234abc.cloudfront.net

3. 사용자 도메인과 연결 (선택사항)

Route 53에서 도메인을 보유 중인 경우, 아래와 같이 연결합니다:

  • Route 53 → 레코드 생성
  • cdn.example.comCloudFront 배포 도메인으로 CNAME 연결

CloudFront를 사용하면 웹사이트 속도가 빨라지는 이유

1. 지리적으로 가까운 서버에서 전송

CloudFront는 요청을 사용자의 위치에 가장 가까운 엣지 로케이션에서 처리합니다. 이로 인해 RTT(Round Trip Time)가 크게 줄어들고, 글로벌 사용자가 빠른 속도로 콘텐츠를 받을 수 있습니다.

2. 캐시된 콘텐츠로 응답 시간 최소화

CloudFront는 자주 요청되는 콘텐츠를 캐싱해두고 재요청 시 원본 서버에 접근하지 않고도 빠르게 응답합니다. 특히 이미지, JS, CSS 파일처럼 자주 변하지 않는 콘텐츠는 캐시 전략을 통해 효율적으로 관리할 수 있습니다.

3. 서버 부하 감소

캐싱된 요청은 원본 서버에 도달하지 않으므로, 웹 서버나 DB에 대한 부하가 감소하게 됩니다. 이는 서버 리소스 절약과 동시에 확장성 확보에 도움을 줍니다.


웹사이트 유형별 최적 설정 팁

워드프레스 사이트라면?

  • Origin: EC2 or ALB
  • HTML은 캐시하지 않도록 설정 (동적 페이지는 실시간 응답 필요)
  • 이미지, JS, CSS는 캐시 TTL을 길게 설정 (7일~30일 이상)
  • CloudFront + WAF 조합으로 보안 강화 가능

정적 웹사이트(S3 사용 시)?

  • S3 정적 호스팅 활성화
  • CloudFront Origin 설정 시 S3 웹 사이트 엔드포인트 사용
  • Index/404 문서 설정 필수
  • 캐시 TTL 길게 설정해 글로벌 사용자 속도 향상

Q&A

Q1. CloudFront는 무료로 사용할 수 있나요?

예, AWS 프리 티어에 포함되어 있습니다. 매달 1TB의 데이터 전송, 2,000,000개의 HTTP/HTTPS 요청이 무료로 제공됩니다. 소규모 프로젝트나 테스트용 사이트는 무료로 충분히 사용 가능하며, 이후 요금도 비교적 저렴합니다. 단, 요금은 리전과 데이터 전송량에 따라 차등 적용되니 요금 계산기를 참고하세요.


Q2. 기존 웹사이트에 CloudFront를 적용하면 SEO에 문제 없을까요?

전혀 없습니다. 오히려 CloudFront는 HTTPS 적용과 빠른 응답속도 덕분에 SEO에 긍정적인 효과를 줍니다. 다만 기존 URL이 변경되지 않도록 주의해야 하며, 캐시 설정으로 인해 페이지 업데이트가 즉시 반영되지 않는 문제는 Invalidation 기능으로 해결할 수 있습니다.


Q3. 캐시 설정은 어떻게 해야 할까요?

CloudFront에서는 TTL(Time To Live) 값을 통해 캐시 수명을 조정할 수 있습니다. 자주 변경되는 콘텐츠는 짧게(300초), 이미지나 JS처럼 잘 안 바뀌는 파일은 길게(604800초 = 7일 이상) 설정하는 것이 좋습니다. 캐시 무효화는 필요 시 지정된 경로(예: /index.html)를 삭제 요청하면 CloudFront가 원본 서버에서 새로 받아오게 됩니다.


Q4. CloudFront 사용 시 워드프레스 관리자 화면이 느려질 수 있나요?

네, 캐시가 관리자 화면에 영향을 주는 경우가 있습니다. 이를 방지하려면 /wp-admin/*, /wp-login.php 경로는 CloudFront 캐시에서 제외하고, 직접 오리진으로 요청이 가도록 설정해야 합니다. 이 부분은 Behaviors 탭에서 캐시 정책과 경로별 설정을 따로 지정해 해결할 수 있습니다.


Q5. 이미지 최적화와 함께 사용하면 더 효과적일까요?

그렇습니다. CloudFront는 이미지 CDN으로도 훌륭하지만, 이미지 크기 자체가 크면 근본적인 속도 향상에는 한계가 있습니다. 따라서 WebP 포맷 활용, 이미지 리사이징, Lazy Load 적용 등 이미지 자체 최적화와 함께 사용할 경우 최고의 성능을 낼 수 있습니다. S3 + Lambda@Edge로 자동 WebP 변환 기능도 구현 가능합니다.