DevOps/AWS

Pattern4. 가용성을 중시한 인트라 웹

prden 2023. 2. 13. 22:24

재해 시에도 시스템이 정상작동하게끔 구성할 경우

1. 데이터 센터 다중화

 - 복수의 가용성 영역(AZ)에 걸쳐 인프라를 구성한다. 

2. 장애 자동 복구

 - 감시 서비스인 클라우드 워치로 장애를 조기에 탐지하고 자동적으로 복구한다. 

3. 리전의 다중화

 DNS 서비스인 라우트 53이 가진 기능인 DNS 장애 복구 기능을 사용하여 장애 발싱 시에 백업 사이트로 자동 전환한다. 

1. 장애 발생을 전제로 설계하기 

배워서 바로쓰는 14가지 AWS 구축 패턴 P62

2. AZ 다중화가 기본이다. 

AWS에서 가용성을 높이는 가장 기본적이면서 효과가 큰 방법은 복수의 AZ에 걸쳐 리소스를 배치하는 것이다. AZ는 AWS의 데이터 센터에 해당하며 하나의 리전에 최소 2개 이상 리전이 준비되어 있다.

RDS와 EC2는 멀티-AZ기능을 활용해 다른 AZ에 중복된다. 장애 복구 시에는 AP 서버에서 DB 서버로의 연결이 끊어진다. 재연결을 자동화하지 않으면 수동으로 재연결을 해야만 하고 그만큼 다운타임이 길어진다. 따라서 애플리케이션에서의 재연결을 자동화해야 한다. 

 

3. 백업 사이트로 자동 전환하기

자동 전환 방식으로는 라우트 53의 DNS 장애 조치(failover) 기능을 사용한다. 이 기능을 사용하면 라우트 53이 기본 사이트의 ELB 상태를 감시하고 ELB에 연결된 EC2 인스턴스와 애플리케이션이 모두 다운되었다고 판단하면 라우트 53은 자동으로 백업 사이트의 ELB로 연결을 재설정한다. 

EC2의 스토리지인 EBS를 복제하는 방법

 1) 정기적으로 스냅샷을 찍어서 스냅숏을 백업 사이트로 복사하기 (copy-snapshot 명령을 AWS CLI가 설치된 운영 관리 서버에서 정기적으로 반복 실행되게 하면 좋다.)

 2) EC2에서 실행되는 데이터 동기화 도구를 이용하여 디스크의 내용을 실시간으로 동기화한다. 

'읽기 전용 복제본 ' -> 마스터 로 승격시키는 방법은 RDS의 API로 제공된다. 구체적으로 원본 마스터에서 복제를 중지하고 독립된 DB로서 작동을 시작하게 된다. 이것을 백업 사이트에서 장애 조치 시에 사용하면 백업 사이트의 데이터베이스가 프라이머리로 기능하며 읽기/쓰기가 가능해진다. 

마스터로 승격하는 작업은 라우트 53 DNS장애 조치 기능과 연동되지 않고 이벤트 트리거 기능인 클라우드 워치 이벤트를 사용하여 람다를 이용해 읽기 전용 복제본을 마스터로 승격시키는 API를 호출하도록 구축해야 한다.

 S3은 리전 간 복제 기능을 이용해서 백업 사이트와 데이터를 동기화할 수 있다. 

 

4. 데이터 백업으로 다중화 비용 아끼기

배워서 바로쓰는 14가지 AWS 구축 패턴 P69

EC2 인스턴스의 바탕이 되는 아마존 머신 이미지(AMI)를 백업 사이트로 복사해두고 EBS, RDS, S3의 데이터를 백업 사이트에 보관해야 한다. 매인 사이트 전체에 영향을 주는 장애가 발생한 경우 AMI에서 EC2 인스턴스를 생성하고 EBS와 RDS는 스냅숏으로 부터 데이터를 복원한다. ELB나 클라우드 워치를 메인 사이트와 같은 설정으로 작성하면 메인 사이트와 동일한 구성의 백업 사이트를 작성할 수 있다.

 

 

#참고 : 배워서 바로 쓰는 14가지 AWS 구축 패턴

 

 

 

'DevOps > AWS' 카테고리의 다른 글

AWS EBS vs. EFS vs. S3  (0) 2023.02.17
ELB(일래스틱 로드 밸런서)  (0) 2023.02.13
ElastiCache (Memcached, Redis)  (0) 2023.02.09
AWS VPC - IntenetGateway - Subnet - Router - RoutingTable  (0) 2023.02.04
EC2에 파일 업로드, War, Jar 배포  (0) 2022.12.26