베하 안녕하세요 ~~! 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 구성도 잊지말아요~!
다음에 또 만나요 ~~ 베빠~!
'CSP (Cloud Service Provider) > AWS' 카테고리의 다른 글
Sticky Session과 Session Clustering (0) | 2023.06.02 |
---|---|
AWS Redis 란? (0) | 2023.06.02 |
[AWS] RDS 읽기 전용 복제본 생성 시 오류 발생 유무 (0) | 2023.05.30 |
[AWS] Athena (0) | 2023.05.28 |
cloudwatch logs를 s3로 전송하는 방법 (0) | 2023.05.26 |
댓글