재해 복구란?
재해는 애플리케이션이 디자인의 고가용성 부분을 통해 완화할 수 있는 것보다 영향이 더 크고 오래 지속되는 단일 주요 이벤트입니다. DR(재해 복구)은 가동 중지 시간 및 데이터 손실을 초래하는 자연 재해 또는 실패한 배포와 같은 영향이 큰 이벤트로부터 복구하는 것입니다. 원인에 관계없이 최상의 재해 해결책은 잘 정의되고 테스트된 DR 계획과 DR을 적극적으로 지원하는 애플리케이션 디자인입니다.
복구 목표
전체 DR 계획은 애플리케이션이 구현하는 각 프로세스에 대해 다음과 같은 중요 비즈니스 요구 사항을 지정해야 합니다.
RPO(복구 지점 목표): 허용되는 최대 데이터 손실 기간입니다. RPO는 “30분 데이터” 또는 “4시간 데이터”와 같은 볼륨이 아닌 시간 단위로 측정됩니다. RPO는 데이터 도난이 아니라 데이터 손실에서 제한 및 복구하는 것입니다.
RTO(복구 시간 목표): 허용되는 가동 중지 시간의 최대 기간으로, “가동 중지 시간”은 사양에 따라 정의됩니다. 예를 들어 재해의 허용되는 가동 중지 시간 기간이 8시간이면 RTO는 8시간입니다.
애플리케이션이 구현하는 각 주요 프로세스 또는 워크로드에는 재해 시나리오 위험 및 잠재적 복구 전략을 검토하여 별도의 RPO 및 RTO 값이 있어야 합니다. RPO 및 RTO를 지정하는 프로세스는 고유한 비즈니스 문제(비용, 영향, 데이터 손실 등)의 결과로 애플리케이션에 대한 DR 요구 사항을 효과적으로 만듭니다.
재해 복구를 위한 디자인
재해 복구는 자동 기능이 아니지만 설계, 빌드 및 테스트해야 합니다. 견고한 DR 전략을 지원하려면 처음부터 DR을 염두에 두고 애플리케이션을 빌드해야 합니다. Azure는 앱을 만들 때 DR을 지원하는 데 도움이 되는 서비스, 기능 및 지침을 제공합니다. DR을 지원하기 위해 수행해야 하는 작업을 이해하려면 먼저 복원력에 대한 공유 책임 모델을 이해해야 합니다. 자세한 내용은 복원력에 대한 공동 책임을 참조 하세요.
데이터 복구
재해 중에는 백업 및 복제라는 두 가지 주요 데이터 복원 방법이 있습니다.
백업은 특정 시점으로 데이터를 복원합니다. 백업을 사용하면 데이터를 백업하고 Microsoft Azure 클라우드로 복구하는 간단하고 안전하며 비용 효율적인 솔루션을 제공할 수 있습니다. Azure Backup을 사용하여 복구에 사용할 수 있는 수명이 긴 읽기 전용 데이터 스냅샷을 만듭니다.
데이터 복제는 데이터 손실을 최소화하면서 여러 데이터 저장소 복제본에 실시간 또는 거의 실시간으로 라이브 데이터 복사본을 만듭니다. 복제의 목표는 애플리케이션 응답성은 유지하면서도 가능한 한 짧은 대기 시간으로 복제본을 동기 상태로 유지하는 것입니다. 대부분의 전체 기능을 갖춘 데이터베이스 시스템과 기타 데이터 스토리지 제품 및 서비스에는 기능 및 성능 요구 사항 때문에 긴밀하게 통합된 기능으로 어떤 종류의 복제가 포함됩니다. 예를 들어 GRS(지역 중복 스토리지)가 있습니다.
다양한 복제 디자인에서는 데이터 일관성, 성능 및 비용에 서로 다른 우선 순위를 둡니다.
활성 복제에서는 동시에 여러 복제본에 대한 업데이트가 필요하며 처리량을 대가로 일관성을 보장합니다.
수동 복제는 백그라운드에서 동기화를 수행하여 애플리케이션 성능에 제약 조건으로 복제를 제거하지만 RPO는 증가합니다.
활성-활성 또는 다중 마스터 복제를 사용하면 여러 복제본을 동시에 사용할 수 있으므로 데이터 일관성을 복잡하게 만들지 않고 부하 분산을 사용할 수 있습니다.
활성-수동 복제는 장애 조치 중에만 라이브 사용을 위해 복제본을 예약합니다.
참고 항목
대부분의 완전한 기능을 갖춘 데이터베이스 시스템 및 기타 데이터 스토리지 제품 및 서비스에는 기능 및 성능 요구 사항으로 인해 GRS(지역 중복 스토리지)와 같은 일종의 복제가 포함됩니다.
복원력 있는 애플리케이션 빌드
또한 재해 시나리오에서는 일반적으로 네트워크 연결 문제, 데이터 센터 가동 중단, 손상된 VM(가상 머신) 또는 손상된 소프트웨어 배포 등으로 인해 가동 중지 시간이 발생합니다. 대부분의 경우 애플리케이션 복구에는 별도의 작업 중인 배포로의 장애 조치(failover)가 포함됩니다. 따라서 대규모 재해가 발생할 경우 다른 Azure 지역의 프로세스를 복구해야 할 수 있습니다. 추가 고려 사항에는 복구 위치, 복제된 환경 수 및 이러한 환경을 유지하는 방법이 포함될 수 있습니다.
애플리케이션 디자인에 따라 Azure Site Recovery와 같은 여러 가지 전략 및 Azure 기능을 사용하여 재해 발생 후 프로세스 복구에 대한 애플리케이션의 지원을 개선할 수 있습니다.
서비스별 재해 복구 기능
Azure App Service와 같은 Azure PaaS(Platform as a Service) 제품에서 실행되는 대부분의 서비스는 DR을 지원하는 기능과 지침을 제공합니다. 일부 시나리오의 경우 서버별 기능을 사용하여 빠른 복구를 지원할 수 있습니다. 예를 들어 Azure SQL Server는 다른 지역에서 서비스를 신속하게 복원하기 위해 지역 복제를 지원합니다. Azure App Service에는 백업 및 복원 기능이 있고, 설명서에는 보조 지역으로 트래픽 전달을 지원하기 위해 Azure Traffic Manager를 사용하는 방법에 대한 지침이 포함되어 있습니다.