1. 구성도
- 평상시: 클라이언트가 ticketing.pw로 접속을 시도하면 CloudFront로 라우팅 되어 서울리전의 ELB을 통해 WEB서버로 접속된다.
- 서울리전 장애 발생시: Route53 HealthCheck이 서울리전의 비정상을 감지하고 Route53의 Failover 정책에 따라 클라이언트가 ticketing.pw로 접속을 시도하면 버지니아의 ELB로 라우팅 되어 WEB서버로 접속된다.
2. Route 53 Hosted Zone 생성
3. 네임 서버 변경 (Hosting.kr에서 도메인 구매 했을 때 기준)
4. 인증서 생성
반드시 버지니아 리전에서 생성해야한다. 버지니아에서 생성한 인증서는 모든 리전에서 사용이 가능하지만 다른 리전에서 생성하면 해당 리전에서만 인증서 사용이 가능하다.
또한, 위에서 진행한 과정인 네임 서버를 반드시 등록한 상태여야 한다.
5. 웹 서버의 정적 파일 업로드를 위한 S3 및 CloudFront Distribution 생성
나머지 모든 설정은 기본값으로 두고 Distribution을 생성한다.
6. 버킷 복제 규칙 생성
서울 리전이 작동하지 않을 때 버지니아 웹서버에서 연속적으로 웹이 동작하기 위해서 서울 리전 S3내의 파일이 항상 버지니아의 S3로 복제된 상태여야 한다.
버지니아의 버킷 및 CloudFront Distribution 생성 방법은 서울리전과 완전히 동일하다.
7. 서울 리전 ELB와 WEB 서버에 사용 될 보안 그룹 생성
8. ami 생성
웹 개발자가 EC2에 웹 서버를 구축해두었다는 시나리오로 이 과정을 진행한다.
9. 시작 템플릿 생성
시작 템플릿을 AutoScaling Group이 참조하여 WEB서버용 EC2를 생성하게 된다.
시작 템플릿을 생성하기전에 웹 개발자가 EC2에 웹서버를 구축하고 해당 EC2를 ami로 만들어둔 상태에서 시작 템플릿을 생성할 수 있다.
10. Target Group 생성
ELB가 트래픽을 보내줄 대상을 지정하기 위한 Target Group을 생성한다.
Target Group을 생성하고 ELB를 생성한다. 이후 AutoScaling Group으로 생성되는 WEB 서버들이 Target group에 속하게 되면 ELB가 해당 WEB서버에게 트래픽을 분산해서 보내게 된다.
11. ELB 생성
Target Group을 생성하고 나면 바로 ELB를 생성한다.
웹 서버가 Private Subnet에 존재하더라도 ELB의 가용영역은 반드시 Public Subnet으로 지정해야 정상적으로 작동하게 된다.
12. AutoScaling Group 생성
13. CloudWatch Alarm 생성
14. 단순 조정 정책 생성
15. AutoScaling Group 예약된 작업 생성
예약된 작업은 특정시간에 사용자가 몰릴것이 예상될 때 사용한다.
16. ELB와 연결할 CloudFront Distribution 생성
여기서 생성될 CloudFront Distribution은 정적 파일 캐싱의 역할이 아닌 동적 컨텐츠 고속 전송 역할이다.
- CloudFront를 사용하여 컨텐츠를 고속으로 전송가능한 이유
CloudFront는 AWS의 Edge location에 위치하여 모든 지역에 골고루 위치하게 된다. 따라서 전 세계의 클라이언트는 CloudFront에 빠르게 접근이 가능하고 또한 CloudFront를 통해 서울의 ELB로 접근하게 되면 AWS의 백본망을 통해 고속으로 접근할 수 있기 때문이다.
위와 같이 설정하고 CloudFront Distribution을 생성한다.
18. Route53 상태검사 생성 및 장애조치 기본 유형 레코드 생성
19. 버지니아리전 ELB 생성
20 Route53 Failover 라우팅 보조 영역 추가
이와 같이 Route53 Failover를 설정했을 때 기본 영역인 서울리전이 Fail상태가 감지되면 보조 유형인 버지니아의 ELB로 라우팅 되어 서비스가 연속적으로 가능해진다. 이를 교차 리전 장애 조치라고 한다.
'AWS' 카테고리의 다른 글
SNS와 Lambda를 이용한 AutoScaling Group 인스턴스 EBS 스냅샷 생성 (0) | 2021.07.04 |
---|---|
AWS Lambda + API GateWay를 활용한 REST API 사용하기 (0) | 2021.07.03 |
AWS Lambda 기초 개념 및 간단 사용 (0) | 2021.07.03 |
AWS CodeCommit 사용해보기 (0) | 2021.07.03 |
AWS VPC 구성 및 VPC peering연결, SSH 터널링 접속 (0) | 2021.06.20 |