주요 용어
- RTO : Recovery Time Object / 목표 복구 시간 / 서비스를 복구하는데 걸리는 최대 허용 시간
- RPO : Recovery Point Objective / 목표 복구 시점 / 재해 발생 시 피해를 최소화하기 위한 일련의 행위 집합
설명하는 순서대로 비용이 비싸지고 성능(복구 속도)이 좋다.
각 재해 복구 전략별로 사용하는 AWS 리소스들이 있는데 이 부분은 공식문서를 참고하도록 하자.
서로 다른 리전에 데이터를 복제해서 리전 장애에 대응할 수 있고 단일 AZ의 중복성 부족을 커버 할 수 있다.
단, 위 방법을 사용하는 경우 복구를 지정한 지역에서 인프라 구축에 시간이 오래걸리지 않도록 AMI 백업과 코드형 인프라(CloudFormation)을 이용해서 미리 배포를 준비해두어야한다. 그렇지 않으면 복구시간이 증가하여 RTO를 초과할 수 있다.
- S3 교차 리전 복제(CRP)를 사용하면 비동기로 데이터를 지속적으로 복제할 수 있다.
- AWS Backup을 사용하면 리전 간 데이터 백업을 할 수 있다.
- 아쉽게도 아직은 예약, 자동 복원 기능이 없다. 이러한 기능을 이용하려면 SNS, Lambda를 사용해서 구현해야한다.
다른 리전에 워크로드에 필요한 인프라 스트럭쳐를 프로비저닝 해둘수 있다. 프로비저닝 된 리소스들은 전원이 꺼져있는 상태(ex. ASG의 ec2 가 0대 떠있는)로 있지만 테스트를 실행하거나 실재로 재난이 발생해서 복구작업이 실행되면 그 때 동작을 시작한다.
이 방법이 백업과 복원 방법과 다른 부분은 핵심 인프라 스트럭쳐가 사용가능한 상태로 동작하고 있기 때문에 빠르게 재난 복구 작업을 진행할 수 있다.
파일럿 라이트를 사용하면 구성한 인프라 스트럭쳐가 메인 리전과 백업으로 사용하는 리전이 동시에 반영 될 수 있도록 IaC를 사용하는 것이 좋다. 또한 보안을 위해 리전별로 서로 다른 계정을 사용하는 것이 좋다.(재해에는 자격증명이 훼손되는 경우도 있기 때문)
- failover 방법
- 첫번째 방법은 Route 53을 이용하여 트래픽 제어 한다. 처음 Active 한 리전에서 트래픽을 전혀 소화해 내지 못하는 경우 복구 리전으로 트래픽을 전송하는 방법이다. Route 53의 헬스 체크를 이용해서 DNS failover 를 통해 헬스 체크가 정상인 쪽으로 트래픽은 전송한다.
- 두 번째 옵션은 AWS Global Accelerator를 시영한다. AnyCast IP를 사용하여 하나 이상의 AWS 리전에 있는 여러 엔드포인트와 연결된 적절한 엔드포인트로 라우팅한다. 끝점 모니터링 방식을 사용하여 상태 확인을 사용하여 애플리케이션의 상태를 자동으로 확인하고 사용자 트래픽을 정상적인 애플리케이션 엔드포인트로만 라우팅한다. Global Accelerator는 광범위한 AWS 에지 네트워크를 사용하여 가능한 한 빨리 AWS 네트워크 백본에 트래픽을 배치하기 때문에 애플리케이션 엔드포인트에 더 짧은 지연 시간을 제공한다. Global Accelerator는 또한 DNS 시스템(예: Route 53)에서 발생할 수 있는 캐싱 문제를 방지한다.
스케일 다운된 상태로 인프라 구성요소들의 크기는 작지만 완벽하게 동작하는 환경이 다른 리전에 존재하는 방식이다.
파일럿 라이트 보다 더 빠른 재해 복구 속도를 제공한다.
여러개의 리전에 동일한 환경의 프로덕션 인프라 환경을 구축해놓고 지역별 트래픽을 처리할 수 있게하는 구조이다.