Azure Databricks 는 Microsoft Azure에 최적화된 공동 Apache Spark 기반 데이터 및 AI 플랫폼입니다. 빅 데이터 및 AI 워크로드를 위한 통합 환경을 제공하고 Databricks와 Azure를 결합하여 데이터 엔지니어링, 데이터 과학 및 기계 학습을 간소화합니다.
Azure를 사용하는 경우 안정성은 공유 책임입니다. Microsoft는 복원력 및 복구를 지원하는 다양한 기능을 제공합니다. 이러한 기능이 사용하는 모든 서비스 내에서 작동하는 방식을 이해하고 비즈니스 목표 및 가동 시간 목표를 충족하는 데 필요한 기능을 선택할 책임이 있습니다.
이 문서에서는 Azure Databricks가 다양한 잠재적 중단 및 문제에 대한 복원력을 유지하는 방법과 요구 사항에 맞게 복원력을 구성하는 방법을 설명합니다. 이 지침에서는 일시적인 오류, 가용성 영역 중단, 지역 중단 및 서비스 유지 관리에 대해 설명합니다. 또한 이 문서에서는 백업을 사용하여 다른 문제를 복구하는 방법을 설명하고 Azure Databricks SLA(서비스 수준 계약)에 대한 주요 정보를 강조 표시합니다.
프로덕션 배포 권장 사항
솔루션의 안정성 요구 사항을 지원하기 위해 Azure Databricks를 배포하는 방법과 안정성이 아키텍처의 다른 측면에 미치는 영향을 알아보려면 Azure Databricks에 대한 아키텍처 모범 사례를 참조하세요.
안정성 아키텍처 개요
Azure Databricks에서 각 기본 구성 요소의 안정성을 이해해야 합니다.
컨트롤 플레 인은 작업 영역 메타데이터, 사용자 액세스, 작업 예약 및 클러스터 관리를 관리하는 상태 비저장 서비스의 컬렉션입니다. 이러한 서비스는 지원되는 지역의 가용성 영역에서 복제되는 데이터베이스에 의해 지원됩니다.
DBFS(Databricks 파일 시스템) 루트 는 클라우드 계정에서 Azure Databricks 작업 영역을 만들 때 Azure Databricks가 자동으로 프로비전하는 스토리지 계정입니다. DBFS 루트에 데이터를 저장하지 않고 가능한 경우 이 스토리지 계정을 사용하지 않도록 설정하는 것이 좋습니다.
Unity Catalog 스토리지 에는 클라우드 계정에 Unity 카탈로그 데이터를 저장하는 하나 이상의 스토리지 계정이 포함되어 있습니다. 자세한 내용은 Unity 카탈로그 개요를 참조하세요.
컴퓨팅 평면은 VM(가상 머신) 클러스터를 사용하여 데이터 처리 워크로드를 실행합니다. 컴퓨팅 평면은 일시적인 오류를 처리하고 사용자 개입 없이 실패한 노드를 자동으로 대체합니다. 여러 유형의 컴퓨팅 리소스 중에서 선택할 수 있습니다. 자세한 내용은 Compute를 참조하세요.
작업 영역 가용성은 컨트롤 플레인의 가용성에 따라 달라지지만 컴퓨팅 클러스터는 컨트롤 플레인 중단 중에도 작업을 계속 처리할 수 있습니다.
일시적인 오류에 대한 복원력
일시적인 오류는 구성 요소에서 짧고 간헐적인 오류입니다. 클라우드와 같은 분산 환경에서 자주 발생하며 작업의 일반적인 부분입니다. 일시적인 오류는 짧은 시간 후에 스스로 수정됩니다. 애플리케이션은 일반적으로 영향을 받는 요청을 다시 시도하여 일시적인 오류를 처리할 수 있는 것이 중요합니다.
모든 클라우드 호스팅 애플리케이션은 클라우드 호스팅 API, 데이터베이스 및 기타 구성 요소와 통신할 때 Azure 임시 오류 처리 지침을 따라야 합니다. 자세한 내용은 임시 오류 처리를 위한 권장 사항을 참조하세요.
임시 오류 복구에 도움이 되도록 Lakeflow 작업 내 태스크에 대한 재시도를 제어할 수 있습니다.
Azure Databricks에서 실행되는 애플리케이션의 경우 스토리지, Azure SQL Database 또는 Azure Event Hubs와 같은 외부 서비스 또는 Azure 서비스에 연결할 때 지수 백오프를 사용하여 재시도 논리를 구현합니다. Databricks Runtime에는 많은 Azure 서비스에 대한 기본 제공 복원력이 포함되어 있지만 애플리케이션 코드는 서비스별 일시적인 오류를 처리해야 합니다.
가용성 영역 오류에 대한 복원력
가용성 영역은 Azure 지역 내에서 물리적으로 별도의 데이터 센터 그룹입니다. 한 영역이 실패하면 서비스가 나머지 영역 중 하나로 전환될 수 있습니다.
Azure Databricks는 각 구성 요소에 대한 영역 중복성을 지원합니다.
컨트롤 플레인: 가용성 영역을 지원하는 지역에서 컨트롤 플레인은 여러 가용성 영역에서 실행됩니다. 컨트롤 플레인은 최소한의 영향과 사용자 개입 없이 영역 오류를 자동으로 처리합니다.
컨트롤 플레인 작업 영역 데이터는 데이터베이스에 저장됩니다. 가용성 영역을 지원하는 지역에서 데이터베이스는 해당 지역의 여러 영역에 걸쳐 복제됩니다. Databricks 런타임 이미지를 제공하는 스토리지 계정도 지역 내에서 중복됩니다. 모든 지역에는 기본 스토리지 계정이 다운되었을 때 사용되는 보조 스토리지 계정이 있습니다.
DBFS 루트: 가용성 영역을 지원하는 지역에서는 ZRS(영역 중복 스토리지)를 사용하도록 DBFS 루트에 대한 스토리지 계정을 구성할 수 있습니다. 가용성 영역을 지원하는 쌍을 이루는 지역에서는 필요에 따라 GZRS(지역 영역 중복 스토리지)를 사용할 수 있습니다.
컴퓨팅 평면: Databricks는 컴퓨팅 리소스에 대한 자동 영역 배포 를 지원합니다. 즉, 리소스가 여러 가용성 영역에 분산됩니다. 이 배포는 프로덕션 워크로드가 영역 중단에 대한 복원력을 달성하는 데 도움이 됩니다.
서버리스 컴퓨팅을 사용하는 경우 컴퓨팅에 대한 영역을 명시적으로 선택하지 않습니다. Databricks는 영역 중단으로 인해 손실될 수 있는 VM의 영역 선택 및 VM 교체를 관리합니다.
요구 사항
Azure Databricks에서 가용성 영역 지원을 사용하려면 다음 요구 사항이 필요합니다.
지역 지원: Azure Databricks 가용성 영역 지원은 Azure Databricks를 지원하고 가용성 영역을 제공하는 모든 Azure 지역에서 사용할 수 있습니다. Azure Databricks를 지원하는 지역 목록은 지역별 사용 가능한 제품을 참조하세요. 가용성 영역을 지원하는 지역의 전체 목록은 가용성 영역을 지원하는 Azure 지역을 참조하세요.
스토리지 복제: ZRS 또는 GZRS(사용 가능한 경우)를 사용하도록 작업 영역 스토리지 계정을 구성합니다.
컴퓨팅 용량: 대상 지역의 여러 영역에 충분한 컴퓨팅 용량이 있는지 확인합니다. Azure Databricks는 영역 간에 클러스터 노드를 자동으로 분산하지만 선택한 인스턴스 유형을 모든 대상 영역에서 사용할 수 있는지 확인해야 합니다.
고려 사항
Azure Databricks는 가용성 영역에 클러스터 노드를 자동으로 분산합니다. 배포는 각 영역에서 사용 가능한 용량에 따라 달라집니다. 수요가 많은 기간 동안 클러스터의 노드는 더 적은 영역에 집중될 수 있습니다. 서버리스 컴퓨팅을 사용하는 경우 Azure Databricks는 영역 중단으로 인해 손실될 수 있는 VM의 영역 선택 및 VM 교체를 관리합니다.
비용
영역 배포는 가용성 영역 배치에 관계없이 동일한 수의 VM에 대한 비용을 지불하기 때문에 컴퓨팅 비용에 영향을 주지 않습니다. 자세한 내용은 Azure Databricks 컴퓨팅 가격 책정을 참조하세요.
관리되는 스토리지 계정 또는 DBFS 루트의 기본 중복성은 GRS(지역 중복 스토리지)입니다. ZRS 또는 GZRS로 변경하면 스토리지 비용에 영향을 줄 수 있습니다. 자세한 내용은 Azure Blob Storage 가격 책정을 참조하세요.
가용성 영역 지원 구성
컨트롤 플레인: 컨트롤 플레인은 가용성 영역이 있는 지역에서 영역 중복을 자동으로 지원합니다. 아무것도 구성할 필요가 없습니다.
DBFS 루트: 새 작업 영역을 만들거나 기존 작업 영역을 수정할 때 DBFS 루트 스토리지에 대한 영역 중복성을 구성할 수 있습니다.
영역 중복 DBFS 루트 스토리지를 사용하여 새 작업 영역을 만듭니 다. 새 Azure Databricks 작업 영역을 만들 때 필요에 따라 기본 GRS 대신 ZRS 또는 GZRS를 사용하도록 연결된 스토리지 계정을 구성할 수 있습니다. 자세한 내용은 작업 영역 스토리지 중복 옵션 변경을 참조하세요.
DBFS 루트 스토리지에서 영역 중복을 사용하도록 설정합니다 . 기존 작업 영역의 경우 작업 영역 스토리지 계정의 중복 구성을 ZRS 또는 GZRS로 변경할 수 있습니다. 영역 중복을 사용하도록 설정하는 방법에 대한 자세한 내용은 스토리지 계정에 대한 복제 설정 변경을 참조하세요.
컴퓨팅 평면: 클러스터 노드는 가용성 영역에 자동으로 분산됩니다. 영역 배포에는 고객 구성이 필요하지 않습니다.
모든 영역이 정상인 경우의 동작
이 섹션에서는 가용성 영역 지원을 사용하여 작업 영역을 구성하고 모든 가용성 영역이 작동할 때 예상되는 작업에 대해 설명합니다.
영역 간 데이터 복제: DBFS 루트가 ZRS 또는 GZRS 계정을 사용하는 경우 작업 영역 스토리지에 대한 데이터 복제는 영역 간에 동기적으로 발생합니다. 이 방법은 성능에 미치는 영향을 최소화하면서 강력한 일관성을 보장합니다.
영역 간의 트래픽 라우팅: Azure Databricks는 클러스터를 만드는 동안 영역 간에 클러스터 노드를 자동으로 분산합니다. 서비스는 최적의 성능을 위해 데이터 지역성을 유지하면서 영역 간에 컴퓨팅 부하를 분산합니다.
영역 오류 중 동작
이 섹션에서는 가용성 영역 지원을 사용하여 작업 영역을 구성하고 가용성 영역 중단이 발생할 때 예상되는 작업에 대해 설명합니다.
검색 및 응답: Microsoft는 자동으로 영역 오류를 감지하고 응답 절차를 시작합니다. 영역 수준 장애 조치에 대해서는 별도의 조치를 취할 필요가 없습니다.
통지: 영역이 다운된 경우 Microsoft는 자동으로 알리지 않습니다. 그러나 Azure Databricks 상태 페이지를 사용하여 모든 핵심 Azure Databricks 서비스의 개요를 볼 수 있습니다. 개별 서비스 구성 요소의 상태 업데이트를 구독하고, 구독 중인 서비스의 상태가 변경될 때 경고를 받을 수 있습니다.
활성 요청: 클러스터를 실행하면 영향을 받는 영역의 노드가 손실될 수 있습니다. 클러스터 관리자는 나머지 영역에서 교체 노드를 자동으로 요청합니다. 드라이버 노드가 손실되면 클러스터와 작업이 완전히 다시 시작됩니다.
예상 데이터 손실:
컨트롤 플레인: 영역 중단 시 데이터가 손실되지 않을 것으로 예상합니다.
DBFS 루트: 작업 영역 데이터는 ZRS 또는 GZRS 스토리지 구성을 사용하는 경우 계속 사용할 수 있습니다.
컴퓨팅 평면: VM에 캐시된 데이터는 임시 데이터입니다. 영역 실패 시 VM에서 손실된 모든 데이터는 스토리지에서 복구됩니다. 드라이버 노드가 손실되면 작업이 다시 시작되고 결과를 다시 계산합니다.
예상 가동 중지 시간
컨트롤 플레인: Databricks 컨트롤 플레인은 약 15분 이내에 정상 영역으로 자동 장애 조치(failover)를 수행합니다.
DBFS 루트: ZRS 또는 GZRS를 사용하는 스토리지 계정에는 가동 중지 시간이 필요하지 않습니다.
컴퓨팅 평면: VM이 영향을 받는 가용성 영역에 있기 때문에 노드가 손실되는 경우 Azure 클러스터 관리자는 Azure 컴퓨팅 공급자로부터 대체 노드를 요청합니다. 나머지 정상 영역에 요청을 처리할 수 있는 충분한 용량이 있는 경우 컴퓨팅 공급자는 정상 영역에서 노드를 끌어와 손실된 노드를 대체합니다. 이 프로세스는 몇 분 정도 걸릴 수 있습니다.
영역 오류로 인해 드라이버 노드가 손실되면 전체 클러스터가 다시 시작되므로 작업자 노드 손실에 비해 복구 시간이 길어질 수 있습니다. 작업 예약 및 모니터링 전략에서 이 동작을 계획합니다.
서버리스 또는 인스턴스 풀을 사용하여 이 시간을 줄일 수 있습니다.
트래픽 경로 변경:
컨트롤 플레인: Databricks 컨트롤 플레인은 약 15분 이내에 정상 영역으로 자동 장애 조치를 수행합니다.
DBFS 루트: Azure Storage는 정상 영역의 스토리지 클러스터로 요청을 자동으로 리디렉션합니다.
컴퓨팅 평면: 클러스터 관리자는 자동으로 정상 영역의 노드로 전환됩니다.
영역 복구
실패한 가용성 영역이 복구되면 Azure Databricks는 모든 영역에서 정상 작업을 자동으로 다시 시작합니다. 클러스터 관리자는 후속 노드를 만드는 동안 노드 배포의 균형을 조정할 수 있지만 기존 노드는 종료될 때까지 현재 영역에서 계속 실행됩니다.
장애 복구(failback) 작업에 대해 아무 작업도 수행할 필요가 없습니다. 새 클러스터 배포에 대한 표준 영역 배포가 다시 시작됩니다.
영역 오류 테스트
Azure Databricks는 Microsoft가 영역 장애 조치(failover)를 자동으로 처리하고 일반 영역 다운 테스트를 수행하는 관리형 서비스입니다. 서비스 자체에 대한 영역 오류 시나리오를 테스트할 필요가 없습니다.
Azure Databricks에서 실행되는 애플리케이션의 경우 드라이버 노드 오류를 시뮬레이션하고 클러스터 다시 시작 동작을 모니터링하여 작업 복원력을 테스트합니다. 데이터 처리 작업이 클러스터 다시 시작을 처리하고 적절한 검사점에서 다시 시작할 수 있는지 확인합니다.
지역 전체 오류에 대한 복원력
Azure Databricks는 단일 지역 서비스입니다. 지역을 사용할 수 없는 경우 작업 영역도 사용할 수 없습니다. 다중 지역 배포가 필요한 경우 Azure Databricks 재해 복구를 참조하세요.
복원력을 위한 사용자 지정 다중 지역 솔루션
Azure Databricks는 기본 제공 다중 지역 기능을 제공하지 않습니다. 분석 워크로드의 포괄적인 다중 지역 보호를 위해서는 고유한 접근 방식을 구현해야 합니다.
일반적인 다중 지역 솔루션에는 둘 이상의 작업 영역이 포함됩니다. 활성-수동 및 활성-활성 아키텍처를 비롯한 여러 전략 중에서 선택할 수 있습니다.
아키텍처를 선택하려면 다음 요소를 고려합니다.
- 비즈니스에 대한 워크로드의 중요도
- 잠재적 중단 기간(시간 또는 하루 종일)
- 작업 영역이 완전히 작동하도록 하는 데 필요한 작업
- 기본 지역으로 복원하거나 장애 조치 복귀하는 데 필요한 작업량
다중 지역 보호가 필요한 워크로드의 경우 Azure Databricks 재해 복구를 참조하세요.
백업 및 복구
Azure Databricks는 서비스의 관리되는 작업의 일부로 데이터베이스를 자동으로 백업합니다. 이 프로세스에는 Notebook 콘텐츠, 작업 정의, 클러스터 구성 및 액세스 제어 설정이 포함됩니다.
비고
영역 오류가 발생하면 Azure Databricks는 데이터 손실이 발생하지 않을 것으로 예상합니다.
Unity 카탈로그 스토리지에 데이터를 저장하는 것이 좋습니다. 스토리지 복제 또는 델타 복제를 통해 데이터를 복제할 수 있습니다.
작업 영역 수준 백업 및 복원 기능은 직접 사용할 수 없습니다. 동기화 프로세스에서 구성, 사용자 및 액세스 제어를 복원하는 작업 영역 레크리에이션 절차를 계획합니다.
서비스 유지 관리에 대한 복원력
Azure Databricks는 자동 플랫폼 유지 관리를 수행하여 보안 업데이트를 적용하고, 새 기능을 배포하고, 서비스 안정성을 개선합니다. 클러스터에 대한 유지 관리 기간을 구성하여 유지 관리가 프로덕션 워크로드에 영향을 줄 가능성을 줄일 수 있습니다. 자세한 내용은 자동 클러스터 업데이트참조하세요.
서비스 수준 약정
Azure 서비스의 SLA(서비스 수준 계약)는 각 서비스의 예상 가용성과 해당 가용성 예상 결과치를 달성하기 위해 솔루션이 충족해야 하는 조건을 설명합니다. 자세한 내용은 온라인 서비스 SLA를 참조하세요.