본문 바로가기
CSP (Cloud Service Provider)/AWS

Cloudfront 실습(S3연동 - Error 페이지 출력)

by BTC_홍대동무 2023. 5. 30.

베하 안녕하세요 ~~! BTC_현상수배범입니다.

이번 시간에는 CloudFront의 ErrorPages 기능을 이용하여 정기점검 & 장애발생 시 대체 페이지 출력해보도록 하겠습니다~!

 

[아키텍처 구성도]

 

  • example.com/*.jpg 에 대한 컨텐츠 요청은 A 버킷으로 CloudFront가 요청하고 example.com/*.png에 대한 컨텐츠 요청은 B 버킷으로 CloudFront가 요청하고⇒ CloudFront의 Behavior을 적절히 설정해주면 됩니다.
  • 그 외의 요청 (example.com or example.com/ ..)에 대한 요청은 ALB를 거쳐 apache&tomcat 서비스를 구동중인 EC2 서버로 요청하고 싶을 경우가 있을 경우가 있을 경우

 

  • 해당 실습에서는 jpg에 대한 컨텐츠 요청은 생략하여 example.com/*.png에 대한 컨텐츠 요청은 S3 버킷으로 CloudFront가 요청하고 정상일 경우(example.com or example.com/ )에 대한 요청은 ALB를 거쳐 apache&tomcat 서비스를 구동중인 EC2 서버로 요청하는 작업을 진행해보도록 하겠습니다~

 

[실습과정]

 

1. ALB를 원본도메인으로 하는 Origin을 생성해줍니다.

2. 캐시정책같은 경우는 Disabled로 설정해줍니다(캐싱처리를 하게 되면 alb 로드밸런싱 테스트 및 systemctl stop httpd.service를 했을 경우 서비스중단 페이지(/error.png)로 전환이 불가

3. S3버킷을 생성해줍니다. (default 값 -  페이지는 S3에서 불러오기 때문에 CloudFront에 연결하기 위한 S3를 구성)

- ACL 비활성화

- 모든 퍼블릭 엑세스 차단

- 생성

4. CloudFront Origin에 S3 추가
- S3 퍼블릭 엑세스 비활성화 시 아래 이미지처럼 OAI사용하여 S3에 권한 연결

 

5. 이전에 생성했던 S3 버킷으로 이동하여 버킷정책 편집

  • AWS CloudFront와 S3 버킷 간의 프라이빗 콘텐츠를 허용하기 위한 정책 생성 후 에러 페이지로 전환할 객체(error.png) 업로드

6. CloudFront Behavior 설정
- 원본 그룹은 타겟이 될 S3로 지정
- 경로 패턴은 S3에 업로드 한 파일 이름

- 마찬가지로 S3 캐시정책도 Disabled로 설정해서 서비스중단했을 경우 에러페이지가 뜨도록 구성

- 만들어진 원본 및 동작 결과 

7. Cloudfront ErrorPage 탭에서 사용자 정의 오류 응답 생성
- 대체 페이지 출력할 오류코드 선택
- 오류 응답 사용자 정의 '예' 선택 후
   . 응답 페이지 경로 입력(S3 Origin 설정한 경로패턴과 동일하게 설정)
   . 페이지로 반환 될 응답 코드 설정.

8. 서비스 중지 후 페이지 출력 확인

웹페이지 출력 확인
- S3에 업로드 했던 페이지가 출력 되며, 설정했던 HTTP 응답 코드에 따른 Status Code 또한 출력

반대로 WEB1/WEB2 서버 서비스 재시작하여 

정상일 경우(cf.savy.monster-cloudfront 대체 도메인)에 대한 요청인 ALB를 거쳐 apache&tomcat 서비스를 구동중인 EC2 서버로 요청 

 

- 서비스 정상 확인함  

 

 

이렇게 하여  Cloudfront 활용편으로  ErrorPages 기능을 이용하여 정기점검 & 장애발생 시 대체 페이지 출력 구성하는 것을 알아봤습니다! Behavior 구성도 잊지말아요~!

다음에 또 만나요 ~~ 베빠~! 

댓글