CloudFront와 Lambda@Edge를 사용하는 흐름은 다음과 같습니다:
1. 사용자 요청
사용자가 웹 브라우저를 통해 CloudFront에 설정된 도메인 이름으로 콘텐츠를 요청.
예를 들어, 사용자가 https://example.com/index.html을 요청.
2. CloudFront 요청 처리
CloudFront는 사용자의 요청을 받고, 가장 가까운 엣지 위치로 요청을 라우팅한다.
이때, CloudFront는 요청을 처리하기 위해 여러 단계를 거치게 된다.
3. Lambda@Edge 트리거
CloudFront는 설정에 따라 Lambda@Edge 함수를 트리거할 수 있다.
Lambda@Edge 함수는 CloudFront의 다양한 단계에서 실행될 수 있으며, 주로 다음 네 가지 유형의 이벤트에 대해 실행된다.
- Viewer Request: CloudFront가 사용자의 요청을 받고, 오리진으로 전달하기 전에 실행된다.
- Origin Request: CloudFront가 캐시에서 콘텐츠를 찾지 못하고, 오리진 서버로 요청을 전달하기 전에 실행된다.
- Origin Response: 오리진 서버로부터 응답을 받은 후, 사용자에게 응답을 전달하기 전에 실행된다.
- Viewer Response: CloudFront가 오리진 또는 캐시에서 콘텐츠를 가져온 후, 사용자에게 응답을 전달하기 전에 실행된다.
4. Lambda@Edge 실행
Lambda@Edge 함수는 요청 또는 응답을 수정할 수 있다. 예를 들어, 요청 URL을 변경하거나, 쿠키를 추가/수정하거나, 응답 헤더를 변경할 수 있다.
5. 오리진 서버 요청
필요한 경우, CloudFront는 오리진 서버 (예: S3 버킷, EC2 인스턴스, 또는 다른 HTTP 서버)에 요청을 전달한다.
Lambda@Edge 함수를 통해 요청이 수정되었다면, 수정된 요청이 오리진 서버로 전달된다.
6. 콘텐츠 캐싱 및 응답
오리진 서버로부터 응답을 받으면, CloudFront는 해당 응답을 캐시할 수 있으며, Lambda@Edge 함수를 통해 응답이 수정될 수 있다. 그 후, 최종 응답이 사용자에게 전달된다.
7. 사용자에게 콘텐츠 전달
CloudFront는 최종적으로 사용자에게 콘텐츠를 전달한다. 이 과정에서 Lambda@Edge를 통해 요청 또는 응답이 변경되었을 수 있다.
이 흐름을 통해, CloudFront와 Lambda@Edge는 사용자에게 더 빠르고 개인화된 콘텐츠를 제공할 수 있으며, 보안을 강화하고, 오리진 서버의 부하를 줄일 수 있다.
- 끝 -
'⭐ AWS > CloudFront' 카테고리의 다른 글
S3와 Lambda@Edge 그리고 CloudFront를 통해 S3에 저장된 Index.html 파일을 출력하기 (0) | 2024.07.08 |
---|---|
CloudFront 에서 국내와 해외 인증 절차 구성 with S3, CloudFront Function, Lambda@Edge (0) | 2024.04.12 |
CloudFront Function 구현 (0) | 2024.04.12 |
CloudFront와 S3 연동 (0) | 2024.01.05 |