CloudFront Functions와 Lambda@Edge 간 차이점 - Amazon CloudFront

CloudFront Functions와 Lambda@Edge 간 차이점

CloudFront 함수와 Lambda@Edge 모두 CloudFront 이벤트에 대한 응답으로 코드를 실행할 수 있는 방법을 제공합니다.

CloudFront Functions는 다음과 같은 사용 사례의 단기 실행 경량 함수에 적합합니다.

  • 캐시 키 정규화 – HTTP 요청 속성(헤더, 쿼리 문자열, 쿠키 및 URL 경로)을 변환하여 캐시 적중률을 개선할 수 있도록 최적의 캐시 키를 생성합니다.

  • 헤더 조작 – 요청 또는 응답에서 HTTP 헤더를 삽입, 수정 또는 삭제합니다. 예를 들어 모든 요청에 True-Client-IP 헤더를 추가할 수 있습니다.

  • URL 리디렉션 또는 다시 쓰기 – 요청 정보에 따라 뷰어를 다른 페이지로 리디렉션하거나 한 경로에서 다른 경로로 모든 요청을 다시 씁니다.

  • 요청 권한 부여 – 권한 부여 헤더 또는 다른 요청 메타데이터를 검사하여 JSON 웹 토큰(JWT)과 같은 해시된 권한 부여 토큰을 검증합니다.

CloudFront 함수를 시작하려면 CloudFront Functions를 사용하여 엣지에서 사용자 지정 단원을 참조하세요.

Lambda@Edge는 다음과 같은 사용 사례에 적합합니다.

  • 완료하는 데 몇 밀리초 이상이 걸리는 함수

  • 조정 가능한 CPU 또는 메모리가 필요한 함수

  • 서드 파티 라이브러리(다른 AWS 서비스와의 통합을 위한 AWS SDK 포함)에 의존하는 함수

  • 처리에 외부 서비스를 사용하기 위해 네트워크 액세스가 필요한 함수

  • 파일 시스템 액세스 또는 HTTP 요청 본문에 대한 액세스가 필요한 함수

Lambda@Edge를 시작하려면 Lambda@Edge를 사용하여 엣지에서 사용자 지정 단원을 참조세요.

사용 사례에 맞는 옵션을 적절히 선택할 수 있도록 다음 표를 통해 CloudFront Functions와 Lambda@Edge 간의 차이점을 파악하세요.

CloudFront 함수 Lambda@Edge
프로그래밍 언어 JavaScript(ECMAScript 5.1 호환) Node.js 및 Python
이벤트 소스
  • 최종 사용자 요청

  • 최종 사용자 응답

  • 최종 사용자 요청

  • 최종 사용자 응답

  • 오리진 요청

  • 원본 응답

Amazon CloudFront KeyValueStore 지원

CloudFront KeyValueStore는 JavaScript 런타임 2.0만 지원합니다.

아니요

Scale 초당 10,000,000건 이상의 요청 리전별 초당 최대 10,000건의 요청
함수 지속 시간 서브밀리초

최대 5초(최종 사용자 요청 및 최종 사용자 응답)

최대 30초(오리진 요청 및 오리진 응답)

최대 함수 메모리 크기

2MB

128MB(최종 사용자 요청 및 최종 사용자 응답)

10,240MB(10GB)(오리진 요청 및 오리진 응답)

자세한 내용은 Lambda@Edge에 대한 할당량 단원을 참조하십시오.

함수 코드 및 포함된 라이브러리의 최대 크기 10KB

1MB(최종 사용자 요청 및 최종 사용자 응답)

50MB(오리진 요청 및 오리진 응답)

네트워크 액세스 아니요
파일 시스템 액세스 아니요
요청 본문에 대한 액세스 아니요
위치 정보 및 장치 데이터에 대한 액세스

No(최종 사용자 요청 및 최종 사용자 응답)

Yes(오리진 요청 및 오리진 응답)

CloudFront 내에서 완전히 빌드 및 테스트 가능 아니요
함수 로깅 및 지표
요금 프리 티어 이용 가능, 요청당 청구됨 프리 티어 없음. 요청 및 함수 기간에 따라 요금이 청구됨