작성자: Ankit Shah , Lorin Dawson
이 게시물은 재해 복구 개요, 전략 및 평가와 Databricks 작업 공간을 위한 재해 복구 자동화 및 도구에 이어지는 내용입니다.
재해 복구는 자연재해 또는 인재 발생 후 중요한 기술 인프라 및 시스템의 복구 또는 지속을 가능하게 하는 정책, 도구 및 절차 세트를 의미합니다. AWS, Azure, Google Cloud와 같은 클라우드 서비스 제공업체 및 SaaS 회사는 단일 실패 지점에 대한 안전 장치를 구축하지만, 장애는 발생합니다. 중단의 심각성과 조직에 미치는 영향은 다를 수 있습 니다. 클라우드 네이티브 워크로드의 경우 명확한 재해 복구 패턴이 중요합니다.

계획, DR 솔루션 전략 설정 및 자동화 방법에 대한 1단계부터 4단계까지 이해하려면 이 DR 블로그 시리즈의 이전 게시물을 참조하십시오. 이 게시물의 5단계와 6단계에서는 DR 설정을 모니터링, 실행 및 검증하는 방법을 살펴보겠습니다.
일반적인 Databricks 구현에는 최종 사용자에게 중단과 서비스 지속을 최소화하기 위해 원활하게 복구해야 하는 노트북 소스 코드, 쿼리, 작업 구성 및 클러스터와 같은 여러 중요 자산이 포함됩니다.

참고: Feature Store, MLflow 파이프라인, ML 실험 추적, 모델 관리 및 모델 배포와 같은 특정 서비스는 현재 재해 복구를 위해 실현 가능하지 않은 것으로 간주될 수 없습니다. Structured Streaming 및 Delta Live Tables의 경우, 정확히 한 번 보장을 유지하려면 활성-활성 배포가 필요하지만 파이프라인은 두 리전 간에 최종 일관성을 갖게 됩니다.
추가적인 개략적인 고려 사항은 이 시리즈의 이전 게시물에서 확인할 수 있습니다.
워크로드가 정상 상태가 아님을 가능한 한 빨리 알면 재해를 신속하게 선언하고 사고로부터 복구할 수 있습니다. 이 응답 시간과 적절한 정보가 결합되면 공격적인 복구 목표를 달성하는 데 중요합니다. 현실적이고 달성 가능한 목표를 제공하기 위해 사고 감지, 알림, 에스컬레이션, 검색 및 선언을 계획 및 목표에 포함하는 것이 중요합니다.
제어 영역의 모든 핵심 Databricks 서비스 개요는 Databricks 상태 페이지에서 제공됩니다. 상태 페이지를 보면 특정 서비스의 상태를 쉽게 확인할 수 있습니다. 선택적으로 개별 서비스 구성 요소에 대한 상태 업데이트를 구독할 수도 있으며, 구독한 상태가 변경될 때마다 알림이 전송됩니다.

데이터 영역에 대한 상태 확인은 AWS 상태 대시보드, Azure 상태 페이지 및 GCP 서비스 상태 페이지를 사용하여 모니터링해야 합니다.
AWS와 Azure는 도구가 상태 확인을 수집하고 알림을 보내는 데 사용할 수 있는 API 엔드포인트를 제공합니다.
인프라에서 데이터를 수집하고 분석하는 도구를 사용하면 팀이 시간에 따른 성능을 추적할 수 있습니다. 이를 통해 팀은 다운타임과 서비스 저하를 전반적으로 최소화할 수 있습니다. 또한 시간에 따른 모니터링은 최적화 및 알림에 필요한 기준 성능 기준선을 설정합니다.
DR의 맥락에서 조직은 서비스 제공업체의 알림을 기다릴 수 없을 수 있습니다. RTO/RPO 요구 사항이 서비스 제공업체의 알림을 기다릴 만큼 허용적이더라도 성능 저하에 대해 공급업체 지원팀에 미리 알리면 더 빠른 커뮤니케이션 라인이 열립니다.
DataDog와 Dynatrace 모두 AWS, Azure, GCP 및 Databricks 클러스터에 대한 통합 및 에이전트를 제공하는 인기 있는 모니터링 도구입니다.

가장 엄격한 RTO 요구 사항의 경우 Databricks 서비스 및 워크로드가 직접 인터페이스하는 다른 서비스(예: 클라우드 제공업체의 객체 저장소 및 VM 서비스)의 상태 확인을 기반으로 자동화된 장애 조치를 구현할 수 있습니다.
사용자 경험을 나타내고 핵심 성과 지표(KPI)를 기반으로 하는 상태 확인을 설계합니다. 얕은 하트비트 확인은 클러스터가 실행 중인지 즉, 시스템이 작동하는지 여부를 평가할 수 있습니다. 반면, 개별 노드의 CPU, 디스크 사용량 및 활성 단계 또는 캐시된 파티션 전반의 Spark 메트릭과 같은 시스템 메트릭에 대한 심층 상태 확인은 얕은 하트비트 확인을 넘어 성능의 상당한 저하를 결정합니다. 워크로드의 기능 및 기준 성능에 따라 여러 신호를 기반으로 하는 심층 상태 확인을 사용합니다.
건강 검진을 통해 장애 조치(failover)를 완전히 자동화하는 경우 주의하십시오. 잘못된 긍정(false positive)이 발생하거나 경보가 울리더라도 비즈니스가 영향을 흡수할 수 있다면 장애 조치가 필요하지 않습니다. 잘못된 장애 조치는 가용성 위험과 데이터 손상 위험을 초래하며 시간적으로 비용이 많이 드는 작업입니다. 경보가 울릴 경우, 현장 담당 사고 관리자와 같이 사람이 개입하여 결정을 내리는 것이 좋습니다. 불필요한 장애 조치는 치명적일 수 있으며, 추가 검토를 통해 장애 조치가 필요한지 여부를 판단하는 데 도움이 됩니다.
재해 복구(Disaster Recovery) 솔루션에는 크게 두 가지 실행 시나리오가 있습니다. 첫 번째 시나리오에서는 DR 사이트를 임시로 간주합니다. 기본 사이트의 서비스가 복원되면, 솔루션은 DR 사이트에서 영구적인 기본 사이트로 장애 조치를 조정해야 합니다. 이 시나리오에서는 DR 사이트가 활성 상태일 때 새 아티팩트 생성을 제한해야 합니다. 이는 임시적이며 장애 복구(failback)를 복잡하게 만들기 때문입니다. 반대로 두 번째 시나리오에서는 DR 사이트가 새로운 기본 사이트로 승격되어 사용자가 서비스를 복원할 때까지 기다릴 필요 없이 더 빨리 작업을 재개할 수 있습니다. 또한 이 시나리오에서는 장애 복구가 필요하지 않지만, 이전 기본 사이트를 새로운 DR 사이트로 준비해야 합니다.
어떤 시나리오든 DR 솔루션 범위 내의 각 리전은 필요한 모든 서비스를 지원해야 하며, 대상 작업 공간이 양호한 운영 상태인지 검증하는 프로세스가 안전 장치로 존재해야 합니다. 검증에는 시뮬레이션된 인증, 자동화된 쿼리, API 호출 및 ACL 검사가 포함될 수 있습니다.
DR 사이트로 장애 조치를 트리거할 때, 시스템을 정상적으로 종료할 수 있다고 가정할 수 없습니다. 솔루션은 기본 사이트에서 실행 중인 서비스를 종료하려고 시도하고, 각 서비스의 종료 상태를 기록한 다음, 정의된 시간 간격으로 적절한 상태 없이 서비스를 계속 종료하려고 시도해야 합니다. 이렇게 하면 기본 사이트와 DR 사이트에서 동시에 데이터가 처리될 위험을 줄여 데이터 손상을 최소화하고 서비스가 복원된 후 장애 복구 프로세스를 용이하게 합니다.
장애 복구 중 기본 사이트로 복귀하는 것은 제어하기가 더 쉬우며 유지 관리 기간 동안 수행할 수 있습니다. 장애 복구는 네 가지 주요 예외를 제외하고 장애 조치와 매우 유사한 계획을 따릅니다:
재해 복구 설정이 제대로 작동하는지 확인하기 위해 실제 조건에서 정기적으로 테스트하십시오. 필요할 때 사용할 수 없는 재해 복구 솔루션을 유지하는 것은 의미가 거의 없습니다. 일부 조직은 몇 달마다 리전 간 장애 조치 및 장애 복구를 수행하여 DR 인프라를 테스트합니다. 정기적으로 DR 사이트로 장애 조치를 수행하면 RPO 및 RTO 측면에서 복구 요구 사항을 충족하는지 확인하기 위해 가정을 검증하고 프로세스를 테스트할 수 있습니다. 또한 조직의 비상 정책 및 절차가 최신 상태인지 확인합니다. 일반적인 프로세스 및 구성에 필요한 조직 변경 사항을 테스트하십시오. 재해 복구 계획은 배포 파이프라인에 영향을 미치므로 팀이 동기화해야 하는 사항을 인지하고 있는지 확인하십시오.
(이 글은 AI의 도움을 받아 번역되었습니다. 원문이 궁금하시다면 여기를 클릭해 주세요)
블로그를 구독하고 최신 게시물을 이메일로 받아보세요.