본문으로 건너뛰기

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 FunctionsLambda@Edge
런타임 지원JavaScriptNode.js, Python
요청 수수백만 요청/초수천 요청/초
CloudFront 트리거Viewer Request/ResponseViewer Request/Response, Origin Request/Response
최대 실행 시간1ms이하5–10초
최대 메모리2MB128MB ~ 10GB
전체 패키지 크기10KB1MB ~ 50MB
네트워크 및 파일 시스템 액세스아니요
요청 본문 액세스아니요
가격무료 티어 제공, Lambda@Edge의 1/6 가격무료 티어 없음, 요청 및 실행 시간 기준 과금

2.5 선택 가이드

  • CloudFront Functions는 경량의 저지연 작업에 적합하며, 초당 수백만 요청을 처리할 수 있는 고성능 솔루션입니다.
  • Lambda@Edge는 더 복잡하고 리소스 집약적인 작업에 적합하며, 다양한 언어 지원과 네트워크/파일 시스템 액세스 기능을 제공합니다.
  • 두 기능을 적절히 사용하여 AWS CloudFront를 통해 사용자 경험을 극대화하고 비용 효율적으로 운영할 수 있습니다.