[AWS] CloudFront #8

­박찬영·2025년 2월 18일

AWS

목록 보기
8/15


📌 CloudFront


CloudFront란?

  • CloudFront : CDN(Content Delivery Network) 역할의 서비스

    • 캐싱을 통해 콘텐츠(이미지, HTML 등)를 전 세계로 빠르게 전송할 수 있게 해줌

    • 전 세계 수많은 Edge Location(캐싱 서버), 글로벌 고속 백본 네트워크 확보

    • DDoS 보호 서비스 (AWS Shield Standard)

  • CloudFront 관련 용어

    • 배포(Distribution) : CloudFront의 기본 단위, 각 배포는 고유의 도메인을 가짐 (Route 53으로 구입한 도메인에 연결 가능)

    • 오리진(Origin) : CloudFront에서 원본 파일을 가져오는 위치(기본 설정 S3, 이외에도 EC2, ELB, 외부 서버 등으로 설정 가능)

  • CloudFront 데이터 전달 과정

    • 요청이 발생한 데이터에 대해 Edge Location의 캐싱 여부 확인

    • 존재한다면 데이터 응답(Cache hit), 캐싱되어 있지 않다면 Origin으로 요청 포워딩(Cache miss)

  • CloudFront 정책

    • 캐시 정책(Cache Control) : 캐싱 방법 및 압축

    • 원본 요청 정책(Origin Request) : Origin으로 어떤 내용(쿠키, 헤더, 쿼리스트링)을 보낼 것인지

    • 응답 헤더 정책 : 응답과 함께 실어 보낼 HTTP Header

  • CloudFront 보안

    • Signed URL : CloudFront의 컨텐츠에 접근할 수 있는 URL 제공 (하나의 컨텐츠 제공)

    • Signed Cookie : 다수의 컨텐츠를 제공하기 위해 사용

    • Origin Access Identity(OAI) : S3의 컨텐츠를 CloudFront를 사용해서만 볼 수 있도록 제한

  • 파일 무효화(invalidation) : TTL이 지나기 전에 강제로 캐시를 삭제하여 수정된 파일이 캐시에 반영될 수 있도록 하기



📌 CloudFront 사용해보기


CloudFront 배포 생성하기

  • S3 버킷에 있는 객체를 가져오려고 할 때 전 세계에 분포한 엣지 로케이션에 객체가 캐싱되어 빠르게 전송 가능

  • 함수 연결 옵션을 통해 캐시 동작이 발생했을 때 CloudFront의 함수나 Lambda@Edge 등의 함수 호출 가능

{
        "Version": "2008-10-17",
        "Id": "PolicyForCloudFrontPrivateContent",
        "Statement": [
            {
                "Sid": "AllowCloudFrontServicePrincipal",
                "Effect": "Allow",
                "Principal": {
                    "Service": "cloudfront.amazonaws.com"
                },
                "Action": "s3:GetObject",
                "Resource": "arn::aws:s3:::<버킷 이름>/*",
                "Condition": {
                    "StringEquals": {
                      "AWS:SourceArn": "arn:aws:cloudfront::<AWS 계정 ID>:distribution/<배포 ID>"
                    }
                }
            }
        ]
      }

  • 객체의 S3 URL로 곧바로 접근할 수 있는 권한이 없음

  • CloudFront의 배포 도메인 이름으로 접속

  • X-Cache가 Miss from cloudfront에서 Hit from cloudfront로 바뀜, CloudFront에 캐싱이 되었다는 의미


CloudFront 배포 삭제하기



📢 세 줄로 정리해보기!

1️⃣ CloudFront는 CDN 역할의 서비스로, 캐싱을 통해 콘텐츠를 빠르게 전송할 수 있게 해준다.

2️⃣ CloudFront의 기본 단위는 배포(Distribution)다.

3️⃣ CloudFront로 S3 Origin에서 원본 파일을 가져오려면 S3 버킷 정책을 수정해야 한다.


참고 자료
소플의 처음 만난 AWS
CloudFront 개념 원리 & 사용 세팅 정리

profile
Develop하는 개발자

0개의 댓글