

# 함수를 사용하여 엣지에서 사용자 지정
<a name="edge-functions"></a>

Amazon CloudFront를 사용하면 자체 코드를 작성하여 CloudFront 배포에서 HTTP 요청 및 응답을 처리하는 방법을 사용자 지정할 수 있습니다. 코드는 최종 사용자(사용자) 가까이에서 실행되어 지연 시간을 최소화하고 서버나 기타 인프라를 관리할 필요가 없습니다. 코드를 작성하여 CloudFront를 통해 흐르는 요청 및 응답을 조작하고, 기본 인증 및 권한 부여를 수행하고, 엣지에서 HTTP 응답을 생성하는 등의 작업을 수행할 수 있습니다.

CloudFront 배포에 작성하고 연결하는 코드를 *엣지 함수*라고 합니다. CloudFront는 엣지 함수를 작성하고 관리하는 두 가지 방법을 제공합니다.

**CloudFront 함수**  
지연 시간에 민감한 대규모 CDN 사용자 지정을 위해 JavaScript로 경량 함수를 작성할 수 있습니다. CloudFront 함수 런타임 환경은 밀리초 미만의 시작 시간을 제공하고 초당 수백만 건의 요청을 처리할 수 있도록 즉시 확장되며 매우 안전합니다. CloudFront 함수는 CloudFront의 기본 기능입니다. 즉, CloudFront 내에서 완전히 코드를 빌드, 테스트 및 배포할 수 있습니다.

**Lambda@Edge**  
Lambda@Edge는 더 가까운 전체 애플리케이션 로직 및 복잡한 함수에 대한 강력하면서도 유연한 서버리스 컴퓨팅을 뷰어에게 제공하는 [AWS Lambda](https://aws.amazon.com/lambda/)의 확장으로, 매우 안전합니다. Lambda@Edge 함수는 Node.js 또는 Python 런타임 환경에서 실행됩니다. 단일 AWS 리전에 함수를 게시하고, 함수를 CloudFront 배포에 연결하면 Lambda@Edge에서 자동으로 전 세계에 코드를 복제합니다.

CloudFront에서 AWS WAF를 실행하는 경우, CloudFront 함수 및 Lambda@Edge 모두에 AWS WAF 삽입 헤더를 사용할 수 있습니다. 이는 최종 사용자 및 오리진 요청과 응답에 사용할 수 있습니다.

**Topics**
+ [CloudFront Functions와 Lambda@Edge 간 차이점](edge-functions-choosing.md)
+ [CloudFront Functions를 사용하여 엣지에서 사용자 지정](cloudfront-functions.md)
+ [CloudFront 연결 함수를 사용하여 사용자 지정](customize-connections-validation-with-connection-functions.md)
+ [Lambda@Edge를 사용하여 엣지에서 사용자 지정](lambda-at-the-edge.md)
+ [엣지 함수에 대한 제한 사항](edge-functions-restrictions.md)