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 |
이벤트 소스 |
|
|
예 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 내에서 완전히 빌드 및 테스트 가능 | 예 | 아니요 |
함수 로깅 및 지표 | 예 | 예 |
요금 | 프리 티어 이용 가능, 요청당 청구됨 | 프리 티어 없음. 요청 및 함수 기간에 따라 요금이 청구됨 |