cloudfront_errorpages

AWS CloudFront 오류 페이지 설정 (with EC2, S3)

CloudFront의 오리진(객체의 원본을 저장한 서버)으로 EC2를 사용하면서 HTTP를 통해 서비스하는 도중, EC2 80번 포트 다운 등의 장애 또는 점검 작업 발생 시, ‘점검중’이라는 페이지를 띄우는 웹 서비스가 필요합니다. 

이러한 에러 페이지를 띄우기 위해서는 에러 페이지를 운영하는 EC2 또는 물리 서버의 IP를 네임서버에서 도메인 레코드를 변경해주거나 CloudFront의 오리진을 변경하는 작업이 필요합니다. 

CloudFront의 ErrorPages 서비스를 사용하면 별도의 변경 작업 없이 점검 또는 작업을 시작하거나 언제 발생할지 모르는 장애에 대비해 특정 웹 페이지를 서비스할 수 있습니다.


테스트 조건

CloudFront 구성도

cloudfront_1
CloudFront 구성도

EC2 HTTP(80) 서비스가 정상일 경우

cloudfront_2
 EC2 HTTP(80) 서비스가 정상일 경우

EC2 HTTP(80) 서비스가 다운(Down) 된 경우

cloudfront_3
EC2 HTTP(80) 서비스가 다운(Down) 된 경우

테스트 조건

  1. CloudFront 생성 시 기본 서비스를 처리할 오리진으로 EC2를 설정
  2. EC2 다운 시 보여줄 웹페이지(error.html)를 S3에 업로드한 후, 해당 S3를 CloudFront의 2번째 오리진으로 등록
  3. CloudFront의 Behaviors와 Error Pages 설정
  4. EC2의 정상적인 웹 서비스 페이지를 확인한 후 EC2의 HTTP 서비스를 중지하여 S3의 Error 웹 페이지가 정상 호출되는지 확인
  5. S3에는 error.html 파일 업로드하고 내용은 “This is S3 Error HTML Page”로 설정

S3를 CloudFront의 2번째 오리진으로 등록

CloudFront -> 생성되어 있는 CloudFront 선택 -> Origins and Origin Groups -> Create Origin

  1.    Origin Domain Name: error 페이지를 업로드한 S3의 도메인 입력
  2. Restrict Bucket Access: 특정 CloudFront만 S3에 Access 제한할 수 있도록 Yes 선택
  3. Origin Access Identity: S3에 Access 할 수 있도록 Identity 생성(CloudFront 메뉴의 Origin Access Identity에서 수동 생성 가능)
  4. Grant Read Permissions on Bucket: Identity가 S3 Bucket 정책에 자동으로 등록할 것인지 수동으로 등록할 것인지 선택

CloudFront의 Behaviors에 S3의 error.html 경로 설정

CloudFront -> 설정할 CloudFront 선택 -> Behaviors -> Create Behavior

  1. Path Pattern: error.html을 업로드한 S3의 경로 입력
  2. Origin or Origin Group: S3를 지정하는 Origin 선택

Error Pages 설정 없이 EC2 HTTP 다운(Down) 후 접속 테스트

Error Pages 설정 없이 EC2 HTTP를 다운시킨 후 접속시 502 Error Code가 리턴됨

CloudFront의 Error Pages 설정

CloudFront -> 이용중인 CloudFront 선택 -> Error Pages -> Create Custom Error Response

  1. HTTP Error Code: EC2에서 HTTP 장애 발생시 리턴될 Error Code 선택
  2. Customize Error Response: 별도의 Customize된 Error 페이지가 있을 경우 선택(S3 추천)
  3. Response Page Path: S3에 저장된 Error.html 페이지 경로 설정
  4. HTTP Response Code: EC2 문제로 해당 Error Page 호출시 Client에 응답할 HTTP Code 설정

EC2 다운(Down) 시 S3의 error.html 정상 출력되는지 확인

EC2 HTTP Down

웹 브라우저에서 접속 확인