영향 없이 DR 테스트하기
격리된 네트워크로 테스트 장애 조치를 실행해 복구 계획을 처음부터 끝까지 검증하고, 실제 RTO를 측정하며, 수정이 필요한 차이를 문서화합니다.
영향 없이 DR 테스트하기은(는) CoddyKit의 무료 Cloud & IT Cert Prep 강의입니다. 이것은 4개 중 3번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Cloud & IT Cert Prep 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Cloud & IT Cert Prep 강의에는 총 4개의 강의가 포함되어 있습니다.
DR 테스트가 반드시 필요한 이유
한 번도 테스트하지 않은 재해 복구 계획은 가설에 불과합니다. 실제 경험에 따르면 DR 계획에서는 구성 드리프트, 누락된 자동화, 오래된 runbook, 예상보다 긴 시작 시간과 같은 간극이 자주 발견되며, 이러한 문제는 테스트 환경에서만 드러납니다. 계획이 가장 필요한 순간에 제대로 작동할 것이라는 확신을 얻는 유일한 방법은 정기적인 DR 테스트입니다.
Test 장애 조치 기능
Test 장애 조치는 프로덕션을 중단하지 않고 보조 지역으로의 장애 조치를 시뮬레이션할 수 있는 Azure Site Recovery 기본 기능입니다. Test 장애 조치 중에 ASR은 보조 지역의 격리된 가상 네트워크에 복제된 VM의 복사본을 만듭니다. 프로덕션 VM은 주 지역에서 정상적으로 계속 실행되므로 실제 사용자에게 위험이 없습니다.
# Trigger a test failover for a recovery plan:
az site-recovery recovery-plan test-failover \
--resource-group myRG \
--vault-name myRecoveryVault \
--name myRecoveryPlan \
--failover-direction PrimaryToRecovery \
--network-id '/subscriptions/.../virtualNetworks/testFailoverVNet'테스트 환경 격리
격리된 테스트 VNet은 프로덕션 시스템에 연결되어서는 안 됩니다. 이렇게 하면 테스트 VM이 실수로 프로덕션 데이터베이스에 쓰거나, 실제 고객에게 이메일을 보내거나, 결제 거래를 실행하는 일을 방지할 수 있습니다. 프로덕션 VNet과 피어링하지 않고 인터넷에도 액세스하지 않는 전용 테스트 장애 조치 VNet을 만든 다음 DR 훈련에만 사용합니다.
# Create an isolated test VNet for DR drills:
az network vnet create \
--resource-group drRG \
--name testFailoverVNet \
--address-prefix 10.99.0.0/16 \
--subnet-name testSubnet \
--subnet-prefix 10.99.1.0/24
# NOTE: Do NOT peer this VNet to any production VNetDR 테스트 중 검증할 항목
DR 테스트에서는 다음과 같은 특정 기준을 검증해야 합니다.
- 부팅 시간 — 모든 VM이 예상 시간 내에 시작됩니까?
- 애플리케이션 시작 — 복구된 데이터베이스에 연결했을 때 애플리케이션이 올바르게 초기화됩니까?
- 데이터 무결성 — 복구 지점의 데이터가 일관되고 완전합니까?
- 실제 RTO — 장애 조치 트리거부터 애플리케이션이 요청을 처리할 때까지의 총 경과 시간을 측정합니다.
- Runbook 실행 — 모든 자동화 스크립트가 성공적으로 완료되었습니까?
실제 RTO 측정
테스트 중 Test 장애 조치를 트리거하는 즉시 타이머를 시작합니다. 애플리케이션이 정상 상태임이 확인되면 타이머를 중지합니다(로드 밸런서 상태 프로브가 200 OK를 반환하는 시점). 이것이 실제 RTO입니다. 이를 목표 RTO와 비교합니다. 실제 RTO가 목표를 초과하면 느린 VM 시작, 긴 데이터베이스 초기화, DNS 전파 지연과 같은 병목을 식별하고 해결합니다.
# During DR test, record timestamps:
# T0: Test failover triggered
# T1: All VMs in group 1 (database) running
# T2: All VMs in group 2 (app tier) running
# T3: All VMs in group 3 (web tier) running
# T4: Health probe returns 200 OK on all instances
# Actual RTO = T4 - T0
# Compare to target RTO, document any gaps복구 지점의 데이터 확인
Test 장애 조치가 완료되면 복구된 데이터베이스에 연결하여 데이터를 확인합니다. 복제 중단 전에 커밋된 트랜잭션이 존재하는지, 부분적으로 커밋된 트랜잭션이 올바르게 처리되었는지(롤백 또는 완료) 확인합니다. 특정 시점 복원(PITR)을 지원하는 데이터베이스에서는 특정 timestamp로 복원한 후 예상되는 데이터 상태인지 확인합니다.
# Example data verification after test failover:
# 1. Connect to recovered database
# 2. Run: SELECT COUNT(*) FROM orders WHERE created_at > DATEADD(hour, -1, GETUTCDATE())
# 3. Compare count to production database count for the same window
# 4. Check for any orphaned records or constraint violationsTest 장애 조치 후 정리
테스트가 완료되면 테스트 장애 조치 리소스를 정리해야 합니다. 여기에는 보조 지역의 테스트 VM, 해당 디스크 및 네트워크 인터페이스가 포함됩니다. Azure Site Recovery는 포털에서 'Cleanup test failover' 작업을 제공하며, 이를 통해 모든 테스트 리소스를 자동으로 제거할 수 있습니다. 정리를 잊으면 비용이 낭비되고 보조 지역에 오래된 리소스가 쌓입니다.
# Trigger cleanup after test failover:
az site-recovery recovery-plan test-failover-cleanup \
--resource-group myRG \
--vault-name myRecoveryVault \
--name myRecoveryPlan \
--notes 'Test completed. RTO = 22 minutes. All checks passed.'DR 테스트 결과 문서화
각 DR 테스트 후에는 테스트 날짜와 범위, 달성한 실제 RTO 및 RPO, 통과/실패 상태가 포함된 검증 항목 체크리스트, 발견된 간극이나 실패, 계획된 수정 작업을 담은 테스트 보고서를 작성합니다. 이 보고서는 규정 준수 감사(ISO 27001, SOC 2, HIPAA)와 시간에 따른 DR 성숙도 향상 추적에 유용합니다.
DR 테스트 빈도
업계 모범 사례와 규정 준수 프레임워크에서는 일반적으로 최소 매년 DR 테스트를 요구하지만, 많은 조직에서는 1등급 작업 부하에 대해 분기별 또는 매월 테스트를 수행합니다. 테스트를 더 자주 수행하면 구성 드리프트를 조기에 발견하고 팀의 자신감과 숙련도를 높일 수 있습니다. 잦은 테스트에 드는 노력을 줄이려면 테스트 설정과 검증을 가능한 한 많이 자동화합니다.
복원력 테스트를 위한 Azure Chaos Studio
Azure Chaos Studio는 Azure 리소스에 제어된 장애를 주입하여 애플리케이션 복원력을 테스트할 수 있는 관리형 카오스 엔지니어링 서비스입니다. VM을 종료하거나, 영역에 장애를 일으키거나, CPU를 제한하거나, 네트워크 지연을 주입하여 애플리케이션의 동작을 관찰할 수 있습니다. 일반적인 DR 훈련과 달리 카오스 엔지니어링은 부분 장애 상황에서 애플리케이션이 우아하게 성능을 저하하는지 테스트합니다.
# Chaos Studio experiment: shut down a VM zone
# 1. Create a chaos experiment in the portal
# 2. Select fault: 'VM Shutdown'
# 3. Target: VMs in Zone 1
# 4. Duration: 10 minutes
# 5. Observe: Does Traffic Manager reroute to Zone 2?
# 6. Check: Application health during and after the fault지속적인 DR 개선 주기
DR 테스트는 지속적인 개선 주기의 일부로 수행할 때 가장 큰 가치가 있습니다. 계획 → 실행 → 측정 → 개선 → 반복의 순서로 진행합니다. 각 테스트 후 발견된 간극을 해결하고 runbook과 문서를 업데이트한 다음 다시 테스트합니다. 시간이 지나면서 명시한 RTO/RPO 목표와 실제 달성 값 사이의 차이가 줄어들어 허용 범위 내에서 모든 테스트를 일관되게 통과해야 합니다.
빠른 확인
이 단원에서 다룬 Microsoft Azure Fundamentals (AZ-900) 개념에 대한 이해도를 확인합니다.
단원 요약
이 단원에서는 다음을 배웠습니다. 테스트 장애 조치를 사용하면 격리된 VNet에 VM 복사본을 만들어 프로덕션을 중단하지 않고 DR 이벤트를 시뮬레이션할 수 있습니다. 테스트 중에는 실제 RTO를 측정하고 데이터 무결성을 확인해야 하며, 각 훈련 후에는 테스트 리소스를 정리하고 결과를 문서화해야 합니다. 다음 단원에서는 Azure SQL Database와 같은 PaaS 서비스의 재해 복구를 구체적으로 살펴봅니다.
자주 묻는 질문
“영향 없이 DR 테스트하기” 강의는 무료인가요?
네 — “영향 없이 DR 테스트하기” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Cloud & IT Cert Prep 강의 전체를 잠금 해제할 수 있습니다. Cloud & IT Cert Prep 강의에는 총 4개의 강의가 포함되어 있습니다.
“영향 없이 DR 테스트하기”에서 뭘 배우나요?
격리된 네트워크로 테스트 장애 조치를 실행해 복구 계획을 처음부터 끝까지 검증하고, 실제 RTO를 측정하며, 수정이 필요한 차이를 문서화합니다. 브라우저에서 직접 실행하는 실습 코드로 Cloud & IT Cert Prep을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Cloud & IT Cert Prep을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Cloud & IT Cert Prep은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 3번째 강의입니다.
“영향 없이 DR 테스트하기” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Cloud & IT Cert Prep 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Cloud & IT Cert Prep 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- RTO, RPO 및 복구 계층 정의
- 복구 계획과 자동 장애 조치
- 영향 없이 DR 테스트하기
- PaaS 서비스의 DR