본문 바로가기

⭐ AWS/CloudFront

S3와 Lambda@Edge 그리고 CloudFront를 통해 S3에 저장된 Index.html 파일을 출력하기

728x90
반응형

# S3와 Lambda@Edge 그리고 CloudFront를 통해 S3에 저장된 Index.html 파일을 출력하기

1. 작업 내용

hello world 문구를 index.html 파일에 넣고, 이 파일을 tttesttt라는 S3 버킷에 업로드한 후, Lambda@Edge를 사용하여 CloudFront를 통해 index.html을 출력하기.

2. S3 버킷에 index.html 파일 업로드

<h1>Hello World</h1> 내용을 가진 index.html 파일을 생성한다.
AWS 관리 콘솔로 이동하여 S3 서비스로 이동.
test라는 이름의 S3 버킷을 생성하거나, 이미 존재한다면 해당 버킷에 들어간다.
생성한 index.html 파일을 버킷에 업로드 한다.
버킷의 권한 설정에서 정적 웹 사이트 호스팅을 활성화하고, index.html을 인덱스 문서로 설정한다.

3. Lambda@Edge 함수 생성

AWS Lambda 콘솔로 이동.
새로운 함수를 생성하고, "US East (N. Virginia)" 리전을 선택. Lambda@Edge는 이 리전에서만 생성할 수 있다.
함수에 적절한 이름을 지정하고, 실행 역할을 설정.

Lambda@Edge 함수 에는 해당 역할이 lambda.amazonaws.com과 edgelambda.amazonaws.com 있어야 한다.
함수 코드를 작성한다. 예제람다 코드를 생성한다.
함수를 배포합니다.

4. CloudFront 배포 생성 및 Lambda@Edge 연결

CloudFront 콘솔로 이동.
새로운 배포를 생성한다.
"Origin Domain Name"에 앞서 생성한 S3 버킷의 정적 웹 사이트 호스팅 엔드포인트를 입력.
배포 설정에서 "Behaviors" 탭으로 이동하고, 기본 동작을 편집한다.
"Lambda Function Associations" 섹션에서 "Add Lambda Function"을 선택.
앞서 생성한 Lambda@Edge 함수의 ARN을 입력하고, 이벤트 유형으로 "Origin Request"를 선택.
배포를 저장하고, CloudFront 배포가 활성화될 때까지 기다린다.
이제 CloudFront URL을 통해 접근하면, CloudFront가 S3 버킷에서 index.html 파일을 가져와 사용자에게 Hello World 문구를 보여주게 된다. Lambda@Edge 함수는 이 과정에서 요청을 가로채어 추가적인 처리를 할 수 있다.

 

- 끝 -

728x90
반응형