Room9

[Cloud Network] Amazon CloudFront 본문

Cloud/Amazon Web Service

[Cloud Network] Amazon CloudFront

Room9_ 2025. 4. 17. 10:15

Overview

Amazon CloudFront는 AWS에서 제공하는 글로벌 콘텐츠 전송 네트워크(CDN, Content Delivery Network) 서비스로, 전 세계 다양한 지역에 위치한 엣지 로케이션을 통해 정적 및 동적 콘텐츠를 사용자에게 빠르고 안정적으로 전달할 수 있도록 설계되었습니다.

 

CloudFront는 짧은 지연 시간(Low latency)과 높은 데이터 전송 속도(High throughput)를 기반으로, 웹사이트, API, 동영상 스트리밍, 소프트웨어 배포 등 다양한 형태의 트래픽을 최적화합니다.

 

특히 이미지, HTML, CSS, JavaScript, JSON, API 응답 등 웹 애플리케이션에서 자주 사용하는 콘텐츠를 캐싱하여 사용자에게 보다 빠르게 제공함으로써 사용자 경험(UX)을 크게 향상할 수 있습니다.

 

또한 AWS WAF 및 AWS Shield와 같은 보안 서비스와의 통합을 통해 DDoS 공격 방어, 접근 제어, TLS 암호화 등 강력한 보안 기능을 제공하며, 자동 장애 조치(Failover), 지리 기반 콘텐츠 제어, 실시간 로깅 분석 기능을 통해 가용성과 유연성 또한 뛰어납니다.

 

CloudFront는 AWS 내 다른 서비스들과 자연스럽게 통합되어, 글로벌 서비스를 운영하거나 대규모 트래픽 처리를 요구하는 시스템에 매우 적합한 CDN 솔루션입니다.

작성일(2025.04.17) 기준 48개국 90개 이상의 도시에서 410개의 엣지 POP을 지원하고 있습니다.


Details

  • Amazon CloudFront Architecture
  • CloudFront 주요 기능
  • CloudFront Distribution 생성
    • Origin Setting
    • Default Cache Behavior Setting
    • Distribution Setting
  • 동작 확인

Amazon CloudFront Architecture

  • User : 도메인 이름을 통하여 콘텐츠를 요청하는 일반 사용자
  • Edge Location : 사용자 요청에 가장 가까운 위치에서 콘텐츠를 제공하는 노드
  • Region Edge Cache : 엣지 로케이션 상위의 중간 캐시 계층
  • Distribution : CloudFront 설정 단위 (오리진·캐시 정책 등 포함)
  • Origin : CloudFront가 콘텐츠를 가져오는 원본 서버

CloudFront 주요 기능

  • 정적 & 동적 콘텐츠 가속 : 이미지, HTML, JS 파일은 물론 API 응답 등 실시간 콘텐츠도 빠르게 전송
  • 보안 기능 통합 : AWS WAF, AWS Shield와 통합되어 DDoS 공격 방어 및 접근 제어 가능
  • HTTPS 및 사용자 지정 도메인 지원 : 무료 SSL 인증서 제공, 맞춤 도메인 연결 가능
  • 오리진 자동 장애 조치 (Failover) : 기본 오리진 장애 시, 자동으로 백업 오리진으로 요청 전환
  • 지리 기반 콘텐츠 제어 : 사용자 위치에 따라 콘텐츠 제공을 제어하거나 맞춤 콘텐츠 제공 가능
  • 실시간 로그 분석 : CloudWatch 및 Kinesis와 연동해 요청 데이터를 실시간 분석 가능

CloudFront Distribution 생성

Origin Setting

CloudFront가 접속할 Origin 정보를 기입합니다.

  • Origin Domain : 오리진에 대한 도메인 이름을 설정합니다.
  • Origin Path : 오리진 도메인 하위의 서브 디렉터리 경로를 설정할 수 있습니다. 즉, 하위 폴더에서 콘텐츠를 제공할 경우에 하위 폴더의 Path를 입력할 수 있습니다.
  • Name : CloudFront에서 오리진을 식별하기 위한 이름
  • Protocol : CloudFront가 오리진 서버와 통신할 때의 프로토콜
    • HTTP Only : HTTP 연결 사용
    • HTTPS Only : HTTPS 연결 사용
    • Match Viewer : 사용자가 요청한 프로토콜에 따라 오리진을 요청 (예: 사용자가 HTTPS로 요청하면 오리전도 HTTPS를 통한 요청)

Default Cache Behavior Setting

클라이언트 요청에 대해 CloudFront가 콘텐츠를 어떻게 전달하고, 캐싱할지 정의하는 기본 동작 정책을 설정합니다. 프로토콜 정책, HTTP 메서드, 캐시 기준, TTL, 압축 여부 등 다양한 요청 처리 방식을 지정할 수 있습니다.

  • Path pattern : 오리진에서 가져올 콘텐츠에 대한 패턴을 지정합니다. 기본값은 *로 설정되어 있습니다.
  • Compress objects automatically : 브라우저가 지원할 경우 자동으로 Gzip / Brotil 압축을 적용
  • Viewer Protocol Policy : 사용자의 요청에 어떤 프로토콜을 허용할지 선택
    • HTTP and HTTPS : HTTP / HTTPS 요청 모두를 허용합니다 (HTTP / HTTPS 둘 다 허용)
    • Redirect HTTP to HTTPS : HTTP 요청이 들어오면 자동으로 HTTPS로 리디렉션 합니다.
    • HTTPS Only : HTTPS 요청만 허용합니다.
  • Allowed HTTP methods
    • GET , HEAD : GET(콘텐츠) 요청과 HEAD(헤더 정보) 요청 메서드만 허용
    • GET , HEAD , OPTIONS : OPTIONS 메서드도 허용합니다.
      • OPTIONS 메서드는 HTTP/HTTPS 요청에서 사용되는 메서드로, CORS 처리를 위한 사전 요청에 사용되는 메서드입니다. 쉽게 말해 서버에 어떤 HTTP 메서드를 사용할 수 있는지 질의하는 요청
    • GET , HEAD , OPTIONS , PUT , POST , PATCH , DELETE : 모든 HTTP 메서드를 허용합니다.
      • API 서버나 동적 콘텐츠를 제공하는 경우 이 옵션을 사용할 수 있습니다.
      • 데이터 수정이 가능한 요청을 허용합니다.
    • 정적 콘텐츠만 제공하는 경우 GET, HEAD 메서드만 허용하는 것이 일반적이며, 동적 콘텐츠나 API 서버를 운영하는 경우, 더 많은 HTTP 메서드를 허용하여 다양한 요청을 처리할 수 있습니다.
  • Restrict viewer access : 뷰어 액세스를 제한할 수 있습니다. 이 옵션을 활성화하면 사용자가 콘텐츠에 접근하기 위해 CloudFront 서명된 URL 또는 서명된 쿠키를 사용하여 액세스 해야 합니다.
  • Cache Key and origin Requests
    • Cache Policy : 캐시 키를 제어하는 정책입니다. (헤더, 쿼리, 쿠키)
    • Origin Request Policy : 이 정책은 전달받은 요소를 오리진에 전달할지 정책을 생성합니다.
  • Response headers policy : CloudFront가 사용자에게 응답할 때 어떤 HTTP 응답 헤더를 포함할지 설정하는 기능

Distribution Setting

  • Price class : 배포 지역 설정
  • Alternate domain name (CNAME) : CloudFront에서 제공하는 기본 도메인 대신, 사용자가 소유한 도메인으로 콘텐츠를 제공할 수 있음
  • Custom SSL Certificate : SSL 인증서
  • HTTP Version : HTTP 지원 버전
  • Default Root Object : 최상위 주소로 접근 시 보여줄 오브젝트 설정
  • IPv6 : IPv6 지원 여부
  • Logging : 로그 설정


동작 확인

브라우저를 통해 CloudFront의 Domain Name / 오브젝트 명으로 접속하게 되면 정상 작동됨을 확인할 수 있습니다.

X-Cache 값을 보면 Hit from cloudfront로 캐시 되어 전달되고 있음을 확인할 수 있습니다.

이처럼 AWS CloudFront는 정적·동적 콘텐츠를 빠르고 안전하게 전송할 수 있도록 다양한 기능을 제공하며, 보안, 성능, 확장성 측면에서 매우 유용한 CDN 서비스입니다. CloudFront를 활용하면 글로벌 사용자에게 안정적인 콘텐츠 제공이 가능하므로, 웹 애플리케이션의 응답 속도 향상과 서비스 품질 개선에 큰 도움이 됩니다.


Reference

https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-creating-console.html

Comments