Amazon CloudFront 주요 기능
글로벌 엣지 네트워크
짧은 지연 시간과 높은 처리량을 지원하는 안정적인 네트워크 연결
네트워크 연결 및 백본
Amazon CloudFront는 전 세계 1~3 등급 이동 통신사와 피어링됩니다. 모든 주요 액세스 네트워크에 올바르게 연결되어 최적의 성능을 제공하고, 테라비트 단위의 수백 개 배포된 용량을 지원합니다. CloudFront 엣지 로케이션은 완전 이중화된 AWS 네트워크 백본을 통해 AWS 리전에 원활하게 연결됩니다. 이 백본은 전 세계에 걸쳐 있는 다수의 400GbE 병렬 파이버로 구성되며 수만 개의 네트워크와 인터페이스로 접속하여 오리진 가져오기 성능을 개선하고 동적 콘텐츠의 속도를 높여줍니다.
Amazon CloudFront는 세 가지 유형의 인프라를 통해 최종 사용자에게 고성능으로 안전하게 콘텐츠를 전송합니다.
- CloudFront 리전 엣지 캐시(REC)는 AWS 리전 내에서 애플리케이션의 웹 서버와 CloudFront 접속 지점(POP) 및 임베디드 접속 지점 사이에 위치합니다. CloudFront는 전 세계적으로 13개의 REC를 보유합니다.
- CloudFront 접속 지점은 AWS 네트워크 내에 위치하며 인터넷 서비스 제공업체(ISP) 네트워크와 피어링됩니다. CloudFront는 50개 이상의 국가에 걸친 100개 이상의 도시에서 600개 이상의 POP를 보유하고 있습니다.
- CloudFront 임베디드 접속 지점은 최종 사용자에게 가장 가까운 인터넷 서비스 제공업체(ISP)의 네트워크 내에 위치합니다. CloudFront POP 외에도 북미, 유럽 및 아시아의 200개 이상의 도시에 600개 이상의 임베디드 POP가 있습니다.
보안
가용성
Origin Shield
웹 애플리케이션은 활동이 가장 많은 기간에 종종 트래픽 급증 문제를 겪기도 합니다. Amazon CloudFront를 사용하면 애플리케이션 오리진 요청 볼륨이 자동으로 줄어듭니다. 콘텐츠는 CloudFront 엣지 및 리전별 캐시에 저장되며, 필요한 경우에만 오리진에서 가져올 수 있습니다. Origin Shield에서 중앙화된 캐싱 계층을 활성화하면 애플리케이션 오리진에서의 로드도 줄일 수 있습니다. Origin Shield는 캐시 적중 비율을 최적화하고 리전에서 요청을 축소하여 객체당 하나의 오리진 요청 수준으로 줄일 수 있습니다. 이와 같이 오리진의 트래픽이 줄어들면 애플리케이션의 가용성을 향상시키는 데 도움이 됩니다.
오리진에 대해 중복성 활성화
CloudFront는 백엔드 아키텍처 중복성에 대한 여러 오리진을 지원합니다. CloudFront의 기본 오리진 장애 조치 기능은 기본 오리진을 사용할 수 없을 경우 백업 오리진에서 콘텐츠를 자동으로 지원합니다. 오리진 장애 조치가 설정된 오리진은 EC2 인스턴스, Amazon S3 버킷 또는 미디어 서비스 등과 같은 AWS 오리진 또는 온프레미스 HTTP 서버 등과 같은 AWS 외 오리진의 조합이 될 수 있습니다. 또한 고급 오리진 장애 조치 기능을 CloudFront 및 Lambda@Edge에서 구현할 수도 있습니다.
엣지 컴퓨팅
CloudFront Functions
Amazon CloudFront는 CloudFront 함수 및 AWS Lambda@Edge를 통해 프로그래밍 가능한 보안 엣지 CDN 컴퓨팅 기능을 제공합니다. CloudFront 함수는 HTTP 헤더 조작, URL 다시 쓰기/리디렉션, 캐시 키 정규화와 같이 높은 확장성과 지연 시간에 민감한 작업에 적합합니다. 이러한 유형의 단기 실행 경량 작업은 종종 예측할 수 없으며 사용량이 급증하는 트래픽을 지원합니다. 예를 들어, CloudFront 함수를 사용하여 수신 요청의 Accept-Language 헤더에 따라 사이트의 언어 특정 버전으로 요청을 리디렉션할 수 있습니다. 이러한 함수는 모든 CloudFront 엣지 로케이션에서 실행되므로, 일반적으로 1밀리초 미만으로 지연 시간 오버헤드를 최소화하며 초당 수백만 건의 요청으로 즉시 확장할 수 있습니다. 또한 지연 시간이 짧은 글로벌 키 값 데이터 스토어인 CloudFront KeyValueStore를 활용하여 CloudFront Functions 내에서 조회 데이터를 저장하고 검색할 수 있습니다. CloudFront KeyValueStore를 사용하면 독립적인 데이터 업데이트를 허용하여 CloudFront Functions를 보다 쉽게 사용자 지정할 수 있습니다.
Lambda@Edge
AWS Lambda@Edge는 다양한 컴퓨팅 요구 사항과 사용자 지정을 지원하는 범용 서버리스 컴퓨팅 기능입니다. Lambda@Edge는 컴퓨팅 집약적 작업에 가장 적합합니다. 완료하는 데 시간이 더 오래 걸리거나(밀리초에서 초 단위까지), 외부 타사 라이브러리에 종속성이 존재하거나, 다른 AWS 서비스(예: S3, DynamoDB)와 통합이 필요하거나 데이터 처리를 위해 네트워크 호출이 필요한 컴퓨팅이 이에 해당될 수 있습니다. 널리 사용되는 몇 가지 고급 사용 사례로는, HLS 스트리밍 매니페스트 조작, 타사 권한 부여 및 봇 탐지 서비스와의 통합, 엣지에서 단일 페이지 앱(SPA)의 서버 측 렌더링(SSR) 등이 포함됩니다.
실시간 지표 및 로깅
실시간 지표
Amazon CloudFront는 Amazon CloudWatch에 통합되어 있으며, 배포당 6개의 운영 지표를 자동으로 게시합니다. 이러한 지표는 CloudFront 콘솔에서 그래프 세트로 표시됩니다. 또한, API를 통해 또는 콘솔에서 몇 번 클릭하면 세분화된 지표도 사용할 수 있습니다.
표준 및 실시간 로깅
CloudFront는 배포에서 제공되는 요청을 로깅하는 두 가지 방법(표준 로그 및 실시간 로그)을 제공합니다. 표준 로그는 사용자가 선택한 Amazon S3 버킷으로 제공됩니다(이때 로그 레코드는 최종 사용자 요청 후 몇 분 안에 제공됨). 이 기능을 활성화하면 CloudFront는 사용자가 지정한 Amazon S3 버킷에 W3C 확장 형식의 자세한 로그 정보를 자동으로 게시합니다. CloudFront 실시간 로그는 Amazon Kinesis Data Streams에서 사용자가 선택한 데이터 스트림으로 제공됩니다(이때 로그 레코드는 최종 사용자 요청 후 몇 초 안에 제공됨). 실시간 로그에 대한 샘플링 비율(즉, 실시간 로그 레코드를 수신하려는 요청의 백분율)을 선택할 수 있습니다.