S3‐Serving‐vs‐CDN - 100-hours-a-week/KTB4-17th-wiki GitHub Wiki

S3 직접 서빙 vs CDN

  • 버킷 공개 범위: S3 정적 웹사이트 호스팅 엔드포인트를 직접 사용하려면 콘텐츠를 공개적으로 읽을 수 있도록 설정해야 한다. 이 경우 실수로 업로드한 파일이 외부에 노출될 가능성이 있어 보안 정책에 위배될 수 있다.

    CloudFront를 사용하면 S3 버킷을 비공개로 유지하고, OAC(Origin Access Control)를 통해 특정 CloudFront 배포에만 객체 읽기 권한을 부여할 수 있다. 따라서 사용자가 CloudFront를 우회하여 S3 객체에 직접 접근하는 것을 차단할 수 있다.

  • HTTPS 지원: S3 정적 웹사이트 호스팅 엔드포인트는 HTTPS를 지원하지 않는다. CloudFront에서는 ACM에서 발급한 인증서를 연결하여 자체 도메인에 HTTPS를 적용할 수 있다.

  • 전송 성능: S3에서 직접 제공하면 사용자 요청이 매번 S3 버킷이 위치한 리전까지 전달된다. CloudFront를 사용하면 콘텐츠가 사용자와 가까운 엣지 로케이션에 캐싱되므로 네트워크 지연과 S3 원본 요청을 줄일 수 있다.

  • 전송 비용: CloudFront를 사용하면 S3에서 CloudFront로 전송되는 원본 데이터에 별도의 인터넷 데이터 전송 요금이 부과되지 않는다. 캐시에 저장된 콘텐츠는 CloudFront 엣지 로케이션에서 직접 제공되므로 반복 요청에 대한 S3 요청 횟수도 줄일 수 있다.

참고 자료