CloudFrontFunctions
1 CloudFront Functions
- AWS CloudFront Functions는 Amazon CloudFront의 엣지 로케이션에서 실행되는 서버리스 코드를 작성할 수 있게 해주는 기능입니다.
- 이를 통해 전 세계 사용자에게 더 빠르고 안전한 콘텐츠를 제공할 수 있습니다.
1.1 주요 특징
- 저지연 실행
- CloudFront Functions는 CloudFront 엣지 로케이션에서 직접 실행되어 매우 낮은 지연 시간을 제공합니다.
- 사용자와 가까운 위치에서 코드가 실행되기 때문에 응답 시간이 매우 짧아집니다.
- 간단한 코드 작성 및 배포
- JavaScript를 사용하여 간단한 코드를 작성할 수 있습니다.
- 코드 배포가 매우 빠르며, 전 세계 모든 CloudFront 엣지 로케이션에 즉시 배포됩니다.
- 비용 효율성
- CloudFront Functions는 사용한 만큼만 비용을 지불하는 방식으로 매우 비용 효율적입니다.
- 초당 수백만 요청을 처리할 수 있으며, 높은 트래픽 환경에서도 경제적으로 사용할 수 있습니다.
- 다양한 사용 사례
- HTTP 요청 및 응답 헤더 수정.
- URL 리다이렉션 및 리라이트.
- 사용자 인증 및 권한 부여.
- 쿠키 처리 및 사용자 세션 관리.
1.2 CloudFront Functions Use Cases
- 캐시 키 정규화
- 최적의 캐시 키를 생성하기 위해 요청 속성(헤더, 쿠키, 쿼리 문자열, URL)을 변환합니다.
- 헤더 조작
- HTTP 헤더를 요청이나 응답에서 삽입, 수정 또는 삭제합니다.
- URL 리라이트 또는 리디렉션
- 특정 조건에 따라 URL 을 재작성하거나 리디렉션합니다.
- 요청 인증 및 권한 부여
- JWT 등 사용자 생성 토큰을 생성하고 검증하여 요청을 허용 또는 거부합니다.
2 CloudFront Functions와 Lambda@Edge 비교
2.1 Lambda@Edge
- Lambda@Edge는 CloudFront의 엣지 로케이션에서 실행되는 Lambda 함수를 제공합니다.
- 더 복잡한 작업과 긴 실행 시간이 필요한 경우에 적합한 솔루션입니다.
2.2 주요 특징
- 다양한 런타임 지원
- Node.js와 Python으로 함수를 작성할 수 있습니다.
- 다양한 언어와 라이브러리를 활용할 수 있습니다.
- 복잡한 요청/응답 처리
- Viewer Request, Origin Request, Origin Response, Viewer Response 이벤트를 처리할 수 있습니다.
- 더 많은 리소스와 긴 실행 시간이 필요한 작업을 처리할 수 있습니다.
- 네트워크 및 파일 시스템 액세스
- 외부 서비스와의 네트워크 통신이 가능합니다.
- 파일 시스템에 접근하여 데이터를 읽고 쓸 수 있습니다.
2.3 Lambda@Edge Use Cases
- 실시간 이미지 변환
- 사용자 요청에 따라 이미지를 변환하고 최적화할 수 있습니다.
- A/B 테스트
- 사용자 그룹을 나누어 다른 콘텐츠를 제공하여 A/B 테스트를 수행할 수 있습니다.
- 사용자 인증 및 권한 부여
- 복잡한 인증 로직을 구현하여 사용자 요청을 처리할 수 있습니다.
- 데이터 처리 및 변환
- 외부 서비스와 통신하여 데이터를 처리하고 변환할 수 있습니다.
2.4 CloudFront Functions vs. Lambda@Edge
특징 | CloudFront Functions | Lambda@Edge |
---|---|---|
런타임 지원 | JavaScript | Node.js, Python |
요청 수 | 수백만 요청/초 | 수천 요청/초 |
CloudFront 트리거 | Viewer Request/Response | Viewer Request/Response, Origin Request/Response |
최대 실행 시간 | 1ms이하 | 5–10초 |
최대 메모리 | 2MB | 128MB ~ 10GB |
전체 패키지 크기 | 10KB | 1MB ~ 50MB |
네트워크 및 파일 시스템 액세스 | 아니요 | 예 |
요청 본문 액세스 | 아니요 | 예 |
가격 | 무료 티어 제공, Lambda@Edge의 1/6 가격 | 무료 티어 없음, 요청 및 실행 시간 기준 과금 |
2.5 선택 가이드
- CloudFront Functions는 경량의 저지연 작업에 적합하며, 초당 수백만 요청을 처리할 수 있는 고성능 솔루션입니다.
- Lambda@Edge는 더 복잡하고 리소스 집약적인 작업에 적합하며, 다양한 언어 지원과 네트워크/파일 시스템 액세스 기능을 제공합니다.
- 두 기능을 적절히 사용하여 AWS CloudFront를 통해 사용자 경험을 극대화하고 비용 효율적으로 운영할 수 있습니다.