0Pricing
AWS Solutions Architect · 강의

CloudFront 배포 및 오리진

CloudFront 배포를 생성하고 S3 및 사용자 지정 HTTP 오리진을 구성하며, S3 보안을 위한 오리진 액세스 제어를 이해합니다.

CloudFront 배포 및 오리진은(는) CoddyKit의 무료 AWS Solutions Architect 강의입니다. 이것은 4개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 AWS Solutions Architect 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. AWS Solutions Architect 강의에는 총 4개의 강의가 포함되어 있습니다.

Amazon CloudFront란 무엇인가요

Amazon CloudFront는 90개 이상의 국가, 400개 이상의 도시에 분산된 엣지 로케이션에서 콘텐츠를 캐시하고 제공하는 AWS의 전역 콘텐츠 전송 네트워크(CDN)입니다. 사용자가 콘텐츠를 요청하면 CloudFront는 가장 가까운 엣지 로케이션에서 콘텐츠를 제공하므로 오리진 서버에서 가져오는 것보다 지연 시간이 크게 줄어듭니다.

CloudFront는 정적 파일뿐 아니라 동적 콘텐츠, API 및 동영상 스트리밍도 가속합니다. S3, ALB, Lambda@Edge, WAF 및 Shield와 같은 다른 AWS 서비스와 통합되므로 최신 AWS 아키텍처의 표준 배포 계층으로 사용됩니다.

CloudFront 배포

CloudFront 배포는 기본 구성 단위입니다. 배포에는 하나 이상의 오리진(콘텐츠가 저장된 위치), 캐시 동작(서로 다른 URL 경로를 캐시하는 방식), 보안 설정 및 요금 등급이 정의됩니다. 배포의 도메인 이름(예: d1234abcdef.cloudfront.net) 또는 CNAME이나 ALIAS 레코드를 사용하는 사용자 지정 도메인(예: cdn.example.com)을 통해 콘텐츠에 액세스합니다.

생성 후 배포가 모든 엣지 로케이션에 전역으로 배포되기까지 10~15분이 걸립니다. 기존 배포의 변경 사항도 전파되는 데 몇 분이 걸립니다. 과거에는 배포 유형이 두 가지였지만 현재는 모든 배포에서 통합 구성 인터페이스를 사용합니다.

# Create a CloudFront distribution backed by S3
aws cloudfront create-distribution \
  --distribution-config '{
    "Origins": {
      "Quantity": 1,
      "Items": [{
        "Id": "S3Origin",
        "DomainName": "my-bucket.s3.amazonaws.com",
        "S3OriginConfig": {"OriginAccessIdentity": ""}
      }]
    },
    "DefaultCacheBehavior": {
      "TargetOriginId": "S3Origin",
      "ViewerProtocolPolicy": "redirect-to-https",
      "CachePolicyId": "658327ea-f89d-4fab-a63d-7e88639e58f6"
    },
    "Enabled": true,
    "Comment": "My S3 distribution",
    "CallerReference": "2026-06-20-unique"
  }'

CloudFront 오리진으로서의 S3

S3 버킷을 CloudFront 오리진으로 사용하는 것은 가장 일반적인 패턴 중 하나입니다. CloudFront는 S3에서 객체를 가져와 엣지 로케이션에 캐시하고, 이후 요청은 S3에 다시 접근하지 않고 캐시에서 제공합니다. 이를 통해 S3 요청 비용을 줄이고 전 세계 사용자의 지연 시간을 개선하며 S3의 대역폭 부담을 줄일 수 있습니다.

S3 기반 사이트를 제공하기 위해 버킷을 퍼블릭으로 만들 필요는 없습니다. 대신 Origin Access Control (OAC)을 사용하십시오. 이는 Origin Access Identity (OAI)를 대체하는 최신 방식입니다. OAC는 CloudFront 배포에만 버킷을 읽을 수 있는 권한을 부여하므로 S3를 프라이빗으로 유지하면서 CloudFront를 통해 콘텐츠를 퍼블릭하게 제공할 수 있습니다.

# S3 bucket policy granting OAC access to CloudFront
{
  'Version': '2012-10-17',
  'Statement': [{
    'Effect': 'Allow',
    'Principal': {
      'Service': 'cloudfront.amazonaws.com'
    },
    'Action': 's3:GetObject',
    'Resource': 'arn:aws:s3:::my-bucket/*',
    'Condition': {
      'StringEquals': {
        'AWS:SourceArn': 'arn:aws:cloudfront::123456789:distribution/EDFDVBD6EXAMPLE'
      }
    }
  }]
}

사용자 지정 HTTP/HTTPS 오리진

CloudFront는 사용자 지정 오리진도 지원합니다. 여기에는 인터넷에서 접근할 수 있는 모든 HTTP 또는 HTTPS 서버가 해당하며, EC2 인스턴스, Application Load Balancer, API Gateway 엔드포인트 및 온프레미스 서버가 포함됩니다. 사용자 지정 오리진을 사용하면 정적 파일뿐 아니라 동적 애플리케이션과 API도 CloudFront로 캐시하고 가속할 수 있습니다.

ALB를 사용자 지정 오리진으로 사용할 때는 보안 그룹에서 ALB가 CloudFront IP 범위의 연결만 허용하도록 구성하십시오. 이렇게 하면 모든 외부 트래픽이 CloudFront를 거치게 되어 엣지에서 WAF 규칙과 TLS 종료를 사용할 수 있으며, ALB는 AWS 내부에 유지됩니다.

Origin Access Control (OAC)과 OAI 비교

Origin Access Identity (OAI)는 S3 버킷 액세스를 CloudFront로 제한하기 위한 최초의 방식이었습니다. S3 버킷 정책에서 권한을 부여하는 특수한 CloudFront 사용자 자격 증명입니다. OAI는 여전히 작동하지만 레거시 방식으로 간주됩니다.

Origin Access Control (OAC)은 이를 대체하는 최신 방식입니다. OAC는 모든 S3 버킷 유형(AWS 중국 Region의 S3 및 SSE-KMS로 암호화된 버킷 포함)을 지원하고, IAM 서비스 주체를 사용하여 더 세밀하게 제어하며, SigV4를 사용해 S3 요청에 자동으로 서명합니다. 새 배포에서는 항상 OAI 대신 OAC를 사용하십시오.

Viewer Protocol Policy

Viewer Protocol Policy는 사용자(뷰어)와 엣지 로케이션 간의 연결을 CloudFront가 처리하는 방식을 제어합니다.

  • HTTP 및 HTTPS: 둘 다 허용합니다. 민감한 콘텐츠에는 권장하지 않습니다
  • HTTP를 HTTPS로 리디렉션: HTTP 요청을 HTTPS로 투명하게 리디렉션합니다. 가장 일반적인 설정입니다
  • HTTPS 전용: HTTP 연결을 완전히 거부합니다. 엄격한 TLS 적용에 사용합니다

이와 별도로 Origin Protocol Policy는 CloudFront가 오리진과 통신하는 방식을 제어합니다. HTTP 전용, HTTPS 전용 또는 뷰어와 일치 중에서 선택할 수 있습니다. OAC를 사용하는 S3 오리진의 경우 CloudFront는 항상 HTTPS를 사용합니다.

사용자 지정 도메인 및 SSL/TLS 인증서

cdn.example.com 대신 CloudFront 도메인에서 콘텐츠를 제공하려면 배포에 대체 도메인 이름(CNAME)을 구성하고 AWS Certificate Manager(ACM)의 SSL/TLS 인증서를 연결해야 합니다. 배포가 트래픽을 제공하는 위치와 관계없이 ACM 인증서는 us-east-1 리전에 있어야 합니다. CloudFront는 us-east-1에서 관리되는 글로벌 서비스이기 때문입니다.

Route 53 레코드는 CloudFront 배포 도메인 이름을 가리키는 ALIAS 레코드로 생성합니다. CloudFront는 일치하는 SNI 요청에 인증서를 자동으로 제공합니다.

# Request a certificate in us-east-1 for CloudFront
aws acm request-certificate \
  --domain-name cdn.example.com \
  --validation-method DNS \
  --region us-east-1

요금 클래스

CloudFront의 요금 클래스는 배포에 사용할 엣지 로케이션을 제어합니다. 요금 클래스가 높을수록 비용이 더 높은 엣지 로케이션이 포함됩니다(일반적으로 대역폭 비용이 더 높은 리전).

  • 요금 클래스 100: 북아메리카와 유럽만 포함(최저 비용)
  • 요금 클래스 200: 북아메리카, 유럽, 아시아, 중동, 아프리카
  • 요금 클래스 All: 전 세계 모든 엣지 로케이션(최고 성능, 최고 비용)

내부 도구나 대상 사용자가 북아메리카와 유럽으로 제한된 경우에는 요금 클래스 100을 사용합니다. 전 세계 소비자를 대상으로 하는 애플리케이션에는 요금 클래스 All을 사용합니다.

오리진 그룹 및 장애 조치

오리진 그룹을 사용하면 CloudFront 오리진 장애 조치를 활성화할 수 있습니다. 그룹에 기본 오리진과 보조 오리진을 정의합니다. 기본 오리진이 특정 HTTP 오류 코드(예: 500, 502, 503, 504)를 반환하면 CloudFront가 보조 오리진으로 요청을 자동 재시도합니다.

오리진 장애 조치는 재해 복구에 유용합니다. us-east-1에 기본 S3 버킷을 유지하고 us-west-2에 복제된 백업을 보조 오리진으로 둡니다. S3 장애가 발생해도 DNS를 변경하지 않고 CloudFront가 투명하게 장애 조치를 수행합니다. 이 패턴은 S3 리전 간 복제를 보완합니다.

CloudFront 액세스 로그

CloudFront는 액세스 로그를 S3 버킷으로 전송하여 모든 뷰어 요청의 세부 정보(타임스탬프, 엣지 로케이션, 상태 코드, 전송된 바이트, 캐시 적중/미적중, 사용자 에이전트 등)를 기록할 수 있습니다. 로그는 몇 분마다 일괄적으로 전송됩니다.

액세스 로그를 사용하여 트래픽 패턴을 분석하고, 인기 집중 콘텐츠를 식별하고, 보안과 관련된 필드(IP, 리퍼러, 사용자 에이전트)를 감사하고, 캐시 적중률을 측정할 수 있습니다. x-edge-result-type 필드는 엣지에서 요청이 적중, 미적중 또는 RefreshHit이었는지 알려 줍니다.

# Enable access logging on a distribution
aws cloudfront update-distribution \
  --id EDFDVBD6EXAMPLE \
  --distribution-config '{
    ...existing config...
    "Logging": {
      "Enabled": true,
      "Bucket": "my-logs-bucket.s3.amazonaws.com",
      "Prefix": "cloudfront-logs/",
      "IncludeCookies": false
    }
  }' \
  --if-match ETVPDKIKX0DER

엣지 로케이션과 리전별 엣지 캐시 비교

CloudFront에는 두 계층의 캐싱 인프라가 있습니다.

  • 엣지 로케이션: 최종 사용자와 가까운 전 세계 수백 개의 PoPs로, 지연 시간을 최소화하여 캐시된 콘텐츠를 제공합니다.
  • 리전별 엣지 캐시(REC): 엣지 로케이션과 오리진 사이에 있는 13개의 더 크고 수명이 긴 캐시로, 소규모 엣지 로케이션 캐시에 유지될 만큼 인기가 높지 않은 콘텐츠를 제공합니다.

요청이 엣지 로케이션 캐시에서 미적중하면 CloudFront는 오리진까지 이동하기 전에 REC를 확인합니다. REC는 투명하게 작동하므로 직접 구성할 필요가 없지만, 롱테일 콘텐츠의 캐시 적중률을 크게 높이고 오리진 부하를 줄입니다.

빠른 확인

이 레슨에서 다룬 AWS 솔루션스 아키텍트(SAA-C03) 개념에 대한 이해도를 테스트해 보세요.

레슨 요약

이 레슨에서는 다음을 배웠습니다. CloudFront 배포는 전 세계 엣지 로케이션에서 콘텐츠를 캐시합니다. OAC는 CloudFront의 액세스를 허용하면서 S3 버킷을 비공개로 유지합니다. 또한 사용자 지정 오리진은 ALB, API Gateway 및 모든 HTTP 서버를 지원합니다. CloudFront용 ACM 인증서는 us-east-1에서 프로비저닝해야 합니다. 다음에는 캐시 동작과 TTL 설정을 살펴봅니다.

자주 묻는 질문

“CloudFront 배포 및 오리진” 강의는 무료인가요?

네 — “CloudFront 배포 및 오리진” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 AWS Solutions Architect 강의 전체를 잠금 해제할 수 있습니다. AWS Solutions Architect 강의에는 총 4개의 강의가 포함되어 있습니다.

“CloudFront 배포 및 오리진”에서 뭘 배우나요?

CloudFront 배포를 생성하고 S3 및 사용자 지정 HTTP 오리진을 구성하며, S3 보안을 위한 오리진 액세스 제어를 이해합니다. 브라우저에서 직접 실행하는 실습 코드로 AWS Solutions Architect을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

AWS Solutions Architect을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 AWS Solutions Architect은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 1번째 강의입니다.

“CloudFront 배포 및 오리진” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 AWS Solutions Architect 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 AWS Solutions Architect 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. CloudFront 배포 및 오리진
  2. 캐시 동작 및 TTL 설정
  3. 서명된 URL, 서명된 쿠키 및 지리적 제한
  4. WAF 및 Lambda@Edge를 사용하는 CloudFront
← AWS Solutions Architect(으)로 돌아가기