비즈니스 연속성 및 재해 복구를 위한 장애 조치(failover)
작동 시간을 최대화하려면 Azure Machine Learning을 사용하여 비즈니스 연속성을 유지 관리하고 재해 복구를 준비하도록 미리 계획합니다.
Microsoft는 Azure 서비스를 항상 사용할 수 있도록 하기 위해 노력합니다. 그러나 예기치 않은 서비스 중단이 발생할 수 있습니다. 지역 서비스 중단을 처리하기 위한 재해 복구 계획을 세우는 것이 좋습니다. 이 문서에서는 다음 방법을 설명합니다.
- Azure Machine Learning 및 연결된 리소스에 대한 다중 지역 배포를 계획합니다.
- 로그, Notebook, Docker 이미지 및 기타 메타데이터를 복구할 가능성을 최대화합니다.
- 솔루션의 고가용성을 보장하도록 디자인합니다.
- 다른 지역으로 장애 조치를 시작합니다.
Important
Azure Machine Learning 자체는 자동 장애 조치 또는 재해 복구를 제공하지 않습니다. 실행 기록과 같은 작업 영역 메타데이터의 백업 및 복원은 사용할 수 없습니다.
작업 영역 또는 해당 구성 요소를 실수로 삭제한 경우 이 문서에서는 현재 지원되는 복구 옵션도 제공합니다.
Azure Machine Learning에 대한 Azure 서비스 이해
Azure Machine Learning은 여러 Azure 서비스를 사용합니다. 이러한 서비스 중 일부는 구독에서 프로비저닝됩니다. 사용자는 이 서비스의 고가용성 구성을 수행해야 합니다. 다른 서비스는 Microsoft 구독에서 만들어지고 Microsoft에서 관리됩니다.
Azure 서비스는 다음을 포함합니다.
Azure Machine Learning 인프라: Azure Machine Learning 작업 영역에 대한 Microsoft 관리형 환경입니다.
연결된 리소스: Azure Machine Learning 작업 영역을 만드는 동안 구독에서 프로비저닝된 리소스입니다. 이러한 리소스로는 Azure Storage, Azure Key Vault, Azure Container Registry, Application Insights 등이 있습니다.
- 기본 스토리지에는 모델, 학습 로그 데이터, 데이터 자산에 대한 참조 등의 데이터가 있습니다.
- Key Vault에는 Azure Storage, Container Registry, 데이터 저장소의 자격 증명이 있습니다.
- Container Registry에는 학습 및 추론 환경의 Docker 이미지가 있습니다.
- Application Insights는 Azure Machine Learning 모니터링에 사용됩니다.
컴퓨팅 리소스: 작업 영역 배포 후에 만드는 리소스입니다. 예를 들어, 컴퓨팅 인스턴스 또는 컴퓨팅 클러스터를 만들어 Machine Learning 모델을 학습시킬 수 있습니다.
- 컴퓨팅 인스턴스 및 컴퓨팅 클러스터: Microsoft 관리형 모델 개발 환경입니다.
- 기타 리소스: AKS(Azure Kubernetes Service), Azure Databricks, Azure Container Instances 및 Azure HDInsight와 같이 Azure Machine Learning에 연결할 수 있는 Microsoft 컴퓨팅 리소스입니다. 사용자는 이 리소스의 고가용성 설정을 구성해야 합니다.
기타 데이터 스토리지: Azure Machine Learning은 학습 데이터를 위해 Azure Storage 및 Azure Data Lake Storage와 같은 다른 데이터 스토리지를 탑재할 수 있습니다. 이 데이터 저장소는 구독 내에서 프로비저닝됩니다. 사용자는 고가용성 설정을 구성해야 합니다. 다른 데이터 저장소 옵션을 보려면 데이터 저장소 만들기를 참조하세요.
다음 표에서는 Microsoft 및 사용자가 관리하는 Azure 서비스를 보여 줍니다. 또한 기본적으로 가용성이 높은 서비스를 나타냅니다.
서비스 | 관리자 | 기본적으로 고가용성 |
---|---|---|
Azure Machine Learning 인프라 | Microsoft | |
연결된 리소스 | ||
Azure Storage | 사용자 | |
Key Vault | 사용자 | ✓ |
Container Registry | 사용자 | |
Application Insights | 사용자 | 해당 없음 |
컴퓨팅 리소스 | ||
컴퓨팅 인스턴스 | Microsoft | |
컴퓨팅 클러스터 | Microsoft | |
AKS와 같은 기타 컴퓨팅 리소스 Azure Databricks, Container Instances, HDInsight |
사용자 | |
기타 데이터 저장소, 예: Azure Storage, SQL Database, Azure Database for PostgreSQL, Azure Database for MySQL, Azure Databricks File System |
사용자 |
이 문서의 나머지 부분에서는 이러한 각 서비스의 가용성을 높이기 위해 수행해야 하는 작업을 설명합니다.
다중 지역 배포 계획
다중 지역 배포를 사용하려면 두 개의 Azure 지역에서 Azure Machine Learning 및 기타 리소스(인프라)를 만들어야 합니다. 지역 중단이 발생하는 경우 다른 지역으로 전환할 수 있습니다. 리소스를 배포할 위치를 계획하는 경우 다음을 고려합니다.
지역별 가용성: 가능하다면 반드시 가장 가까운 지역이 아닌 동일한 지리적 영역에 있는 지역을 사용합니다. Azure Machine Learning의 지역별 가용성을 확인하려면 지역별 Azure 제품을 참조하세요.
Azure 쌍을 이루는 지역: 쌍을 이루는 지역은 플랫폼 업데이트를 조정하고 필요한 경우 복구 작업의 우선 순위를 지정합니다. 그러나 모든 지역이 쌍을 이루는 지역을 지원하는 것은 아닙니다. 자세한 내용은 Azure 쌍을 이루는 지역을 참조하세요.
서비스 가용성: 솔루션에서 사용하는 리소스가 핫/핫, 핫/웜 또는 핫/콜드여야 하는지 여부를 결정합니다.
- 핫/핫: 두 지역이 동시에 모두 활성 상태이며 한 지역이 즉시 사용할 준비가 되었습니다.
- 핫/웜: 주 지역이 활성 상태이며 보조 지역에는 중요한 리소스(예: 배포된 모델)를 시작할 준비가 되었습니다. 중요하지 않은 리소스는 보조 지역에서 수동으로 배포해야 합니다.
- 핫/콜드: 주 지역이 활성 상태이며 보조 지역에는 필요한 데이터와 함께 Azure Machine Learning 및 기타 리소스가 배포되어 있습니다. 모델, 모델 배포 또는 파이프라인과 같은 리소스는 수동으로 배포해야 합니다.
팁
비즈니스 요구 사항에 따라 다양한 Azure Machine Learning 리소스를 다르게 처리하도록 결정할 수 있습니다. 예를 들어, 배포된 모델(유추)에 핫/핫을 사용하고 실험(학습)에 핫/콜드를 사용하는 것이 좋습니다.
Azure Machine Learning은 다른 서비스를 기반으로 빌드됩니다. 일부 서비스는 다른 지역에 복제되도록 구성될 수 있습니다. 다른 서비스의 경우 여러 지역에서 수동으로 만들어야 합니다. 다음 표에서는 복제를 수행해야 하는 서비스 목록과 구성의 개요를 제공합니다.
Azure 서비스 | 지역에서 복제 수행 | 구성 |
---|---|---|
Machine Learning 작업 영역 | 사용자 | 선택한 지역에 작업 영역을 만듭니다. |
Machine Learning 컴퓨팅 | 사용자 | 선택한 지역에 컴퓨팅 리소스를 만듭니다. 동적으로 스케일링할 수 있는 컴퓨팅 리소스의 경우 두 지역이 모두 요구 사항에 충분한 컴퓨팅 할당량을 제공하는지 확인합니다. |
Machine Learning 레지스트리 | 사용자 | 여러 지역에 레지스트리를 만듭니다. |
Key Vault | Microsoft | 두 지역에서 모두 Azure Machine Learning 작업 영역과 리소스가 있는 동일한 Key Vault 인스턴스를 사용합니다. Key Vault는 보조 지역으로 자동으로 장애 조치됩니다. 자세한 내용은 Azure Key Vault 가용성 및 중복성을 참조하세요. |
Container Registry | Microsoft | Azure Machine Learning의 쌍을 이루는 지역에 레지스트리를 지역에서 복제하도록 Container Registry 인스턴스를 구성합니다. 두 작업 영역 인스턴스에 모두 동일한 인스턴스를 사용합니다. 자세한 내용은 Azure Container Registry의 지역에서 복제를 참조하세요. |
스토리지 계정 | 사용자 | Azure Machine Learning은 GRS(지역 중복 스토리지), GZRS(지역 영역 중복 스토리지), RA-GRS(읽기 액세스 지역 중복 스토리지) 또는 RA-GZRS(읽기 액세스 지역 영역 중복 스토리지)를 사용하는 기본 스토리지 계정 장애 조치를 지원하지 않습니다. 각 작업 영역의 기본 스토리지에 대해 별도의 스토리지 계정을 만듭니다. 다른 데이터 스토리지에 대해 별도의 스토리지 계정 또는 서비스를 만듭니다. 자세한 내용은 Azure Storage 중복성을 참조하세요. |
Application Insights | 사용자 | 두 지역에서 모두 작업 영역에 대해 Application Insights를 만듭니다. 데이터 보존 기간과 세부 정보를 조정하려면 Application Insights의 데이터 수집, 보존 및 스토리지를 참조하세요. |
보조 지역에서 빠른 복구 및 다시 시작을 사용하려면 다음 개발 사례를 권장합니다.
- Azure Resource Manager 템플릿을 사용합니다. 템플릿은 ‘코드 제공 인프라’이며 이를 사용하여 두 지역에서 모두 서비스를 빠르게 배포할 수 있습니다.
- 두 지역 간에 드리프트를 방지하려면 두 지역에 모두 배포하도록 연속 통합 및 배포 파이프라인을 업데이트합니다.
- 배포를 자동화하는 경우 Azure Kubernetes Service와 같은 작업 영역 연결 컴퓨팅 리소스의 구성을 포함합니다.
- 두 지역에서 모두 사용자의 역할 할당을 만듭니다.
- 두 지역에 대해 모두 Azure Virtual Network와 같은 네트워크 리소스 및 프라이빗 엔드포인트를 만듭니다. 사용자에게 두 네트워크 환경에 대한 액세스 권한이 있는지 확인합니다. 예를 들면 두 가상 네트워크의 VPN 및 DNS 구성이 있습니다.
컴퓨팅 및 데이터 서비스
요구 사항에 따라 Azure Machine Learning에서 사용하는 더 많은 컴퓨팅 또는 데이터 서비스가 있을 수 있습니다. 예를 들어, Azure Kubernetes Services 또는 Azure SQL Database를 사용할 수 있습니다. 다음 정보를 사용하여 고가용성을 제공하도록 이 서비스를 구성하는 방법을 알아봅니다.
컴퓨팅 리소스
- Azure Kubernetes Service: AKS(Azure Kubernetes Service)의 비즈니스 연속성 및 재해 복구 모범 사례와 가용성 영역을 사용하는 AKS(Azure Kubernetes Service) 클러스터 만들기를 참조하세요. Azure Machine Learning 스튜디오, SDK 또는 CLI를 사용하여 AKS 클러스터를 만든 경우 지역 간 고가용성이 지원되지 않습니다.
- Azure Databricks: Azure Databricks 클러스터의 지역 재해 복구를 참조하세요.
- Container Instances: 오케스트레이터는 장애 조치를 수행해야 합니다. Azure Container Instances 및 컨테이너 오케스트레이터를 참조하세요.
- HDInsight: Azure HDInsight에서 지원하는 고가용성 서비스를 참조하세요.
데이터 서비스
- Azure Blob 컨테이너/Azure Files/Data Lake Storage Gen2: Azure Storage 중복성을 참조하세요.
- Data Lake Storage Gen1: Data Lake Storage Gen1의 고가용성 및 재해 복구 지침을 참조하세요.
팁
고유한 고객 관리형 키를 제공하여 Azure Machine Learning 작업 영역을 배포하는 경우 Azure Cosmos DB도 구독 내에서 프로비저닝됩니다. 이 경우 사용자가 고가용성 설정을 구성해야 합니다. Azure Cosmos DB의 고가용성을 참조하세요.
고가용성을 위한 디자인
가용성 영역
특정 Azure 서비스는 가용성 영역을 지원합니다. 가용성 영역을 지원하는 지역의 경우 영역이 다운되면 워크로드가 일시 중지되고 데이터가 저장되어야 합니다. 그러나 영역이 다시 온라인 상태가 될 때까지 데이터를 새로 고칠 수 없습니다.
자세한 내용은 가용성 영역 서비스 지원을 참조 하세요.
여러 지역에 중요한 구성 요소 배포
목표로 하는 비즈니스 연속성 수준을 결정합니다. 수준은 솔루션 구성 요소마다 다를 수 있습니다. 예를 들어, 프로덕션 파이프라인 또는 모델 배포에 핫/핫 구성을 사용하고 실험에 핫/콜드 구성을 사용하는 것이 좋습니다.
격리된 스토리지에서 학습 데이터 관리
작업 영역에서 로그에 사용하는 기본 스토리지에서 데이터 스토리지를 격리된 상태로 유지하면 다음을 수행할 수 있습니다.
- 데이터 저장소와 동일한 스토리지 인스턴스를 주 작업 영역과 보조 작업 영역에 연결합니다.
- 데이터 스토리지 계정에 대해 지역에서 복제를 사용하고 작동 시간을 최대화합니다.
기계 학습 자산을 코드로 관리
참고 항목
실행 기록, 모델 및 환경과 같은 작업 영역 메타데이터의 백업 및 복원은 사용할 수 없습니다. YAML 사양을 사용하여 자산 및 구성을 코드로 지정하면 재해 발생 시 작업 영역에서 자산을 다시 만드는 데 도움이 됩니다.
Azure Machine Learning의 작업은 작업 사양에서 정의됩니다. 이 사양에는 환경, 컴퓨팅을 포함하여 작업 영역 인스턴스 수준에서 관리되는 입력 아티팩트의 종속성이 포함됩니다. 다중 지역 작업 제출 및 배포의 경우 다음 사례를 권장합니다.
Git 리포지토리에서 지원되는 코드베이스를 로컬에서 관리합니다.
- Azure Machine Learning 스튜디오에서 중요한 Notebook을 내보냅니다.
- 스튜디오에서 작성된 파이프라인을 코드로 내보냅니다.
구성을 코드로 관리합니다.
- 작업 영역에 대한 하드 코드된 참조를 방지합니다. 대신, 구성 파일을 사용하여 작업 영역 인스턴스에 대한 참조를 구성하고 MLClient.from_config()를 사용하여 작업 영역을 초기화합니다.
- 사용자 지정 Docker 이미지를 사용하는 경우 Dockerfile을 사용합니다.
장애 조치(failover) 시작
장애 조치 작업 영역에서 작업 계속
주 작업 영역을 사용할 수 없게 되면 보조 작업 영역으로 전환하여 실험 및 개발을 계속할 수 있습니다. Azure Machine Learning은 중단이 발생하는 경우 작업을 보조 작업 영역에 자동으로 제출하지 않습니다. 새 작업 영역 리소스를 가리키도록 코드 구성을 업데이트합니다. 작업 영역 참조 하드 코딩을 방지하는 것이 좋습니다. 대신, 작업 영역 구성 파일을 사용하여 작업 영역을 변경할 때 수동 사용자 단계를 최소화합니다. 새 작업 영역에 대한 연속 통합 및 배포 파이프라인과 같은 자동화도 업데이트해야 합니다.
Azure Machine Learning은 작업 영역 인스턴스 간에 아티팩트 또는 메타데이터를 동기화하거나 복구할 수 없습니다. 애플리케이션 배포 전략에 따라 작업 제출을 계속하려면 장애 조치(failover) 작업 영역에서 데이터 자산과 같은 실험 입력을 다시 만들거나 아티팩트를 이동해야 할 수도 있습니다. 지역에서 복제를 사용하여 연결된 리소스를 공유하도록 주 작업 영역 및 보조 작업 영역 리소스를 구성한 경우 일부 개체는 장애 조치 작업 영역에서 직접 사용할 수 있습니다. 예를 들면 두 작업 영역이 모두 동일한 docker 이미지, 구성된 데이터 저장소, Azure Key Vault 리소스를 공유하는 경우가 있습니다. 다음 다이어그램에서는 두 작업 영역이 동일한 이미지(1), 데이터 저장소(2), Key Vault(3)를 공유하는 구성을 보여 줍니다.
참고 항목
서비스 중단이 발생할 때 실행 중인 모든 작업이 자동으로 보조 작업 영역으로 전환되는 것은 아닙니다. 중단이 해결된 후 작업이 다시 시작되고 주 작업 영역에서 성공적으로 완료되지 않을 수도 있습니다. 대신, 이 작업은 보조 작업 영역 또는 주 작업 영역(중단이 해결된 후)에서 다시 제출되어야 합니다.
작업 영역 간에 아티팩트 이동
복구 방식에 따라 작업을 계속하려면 작업 영역 간에 아티팩트를 복사해야 할 수도 있습니다. 현재 작업 영역 간에는 아티팩트 이식성이 제한됩니다. 가능하면 장애 조치 인스턴스에서 아티팩트를 다시 만들 수 있도록 아티팩트를 코드로 관리하는 것이 좋습니다.
기계 학습용 Azure CLI 확장을 사용하여 작업 영역 간에 다음 아티팩트를 내보내고 가져올 수 있습니다.
팁
- 작업 출력은 작업 영역과 연결된 기본 스토리지 계정에 저장됩니다. 서비스 중단 시 스튜디오 UI에서는 작업 출력에 액세스할 수 없지만 스토리지 계정을 통해 데이터에 직접 액세스할 수 있습니다. Blob에 저장된 데이터를 사용하는 방법에 관한 자세한 내용은 Azure CLI를 사용하여 Blob 생성, 다운로드 및 나열을 참조하세요.
복구 옵션
작업 영역 삭제
실수로 작업 영역을 삭제한 경우 복구할 수 있습니다. 복구 단계는 일시 삭제를 통해 실수로 삭제한 후 작업 영역 데이터 복구를 참조하세요.
작업 영역을 복구할 수 없는 경우에도 다음 단계에 따라 작업 영역에 연결된 Azure Storage 리소스에서 Notebooks를 검색할 수 있습니다.
- Azure Portal에서 삭제된 Azure Machine Learning 작업 영역에 연결된 스토리지 계정으로 이동합니다.
- 왼쪽의 데이터 스토리지 섹션에서 파일 공유를 선택합니다.
- Notebook은 작업 영역 ID를 포함하는 이름의 파일 공유에 있습니다.
다음 단계
Azure Machine Learning을 사용하여 반복 가능한 인프라 배포에 관해 알아보려면 Bicep 템플릿 또는 Terraform 템플릿을 확인하세요.