Azure VM Image Builder는 VM(가상 머신) 이미지를 빌드하고 사용자 지정한 다음, 결과 이미지를 Azure Blob Storage Azure 컴퓨팅 갤러리 또는 VHD(가상 하드 디스크)와 같은 대상에 배포하는 관리되는 서비스입니다. 이 서비스는 수명이 긴 빌드 인프라를 유지 관리할 필요가 없습니다.
Azure를 사용하는 경우 안정성은 공유 책임입니다. Microsoft는 복원력 및 복구를 지원하는 다양한 기능을 제공합니다. 이러한 기능이 사용하는 모든 서비스 내에서 작동하는 방식을 이해하고 비즈니스 목표 및 가동 시간 목표를 충족하는 데 필요한 기능을 선택할 책임이 있습니다.
이 문서에서는 일시적인 오류, 가용성 영역 오류, 지역 전체 오류 및 서비스 유지 관리를 포함하여 다양한 잠재적인 중단 및 문제에 대해 복원력을 Azure VM Image Builder를 만드는 방법을 설명합니다. 또한 백업 및 복원 옵션, 사용자 지정 다중 리소스 솔루션 및 Azure VM Image Builder SLA(서비스 수준 계약)에 대한 주요 정보를 설명합니다.
프로덕션 배포 권장 사항
프로덕션 이미지 빌드 파이프라인을 디자인할 때 다음 권장 사항을 고려합니다.
Bicep 또는 Terraform과 같은 코드로 인프라를 사용하여 이미지 템플릿을 정의하고, 정의를 소스 제어에 저장합니다.
VM 생성, 스케일 아웃 및 이미지 다시 설치 작업 중에 불필요한 지역 간 종속성을 방지하기 위해 Azure Compute Gallery 복제를 통해 워크로드가 실행되는 지역에 완성된 이미지를 배포합니다.
워크로드에 필요한 중복 특성을 포함하는 스토리지에 사용자 지정 스크립트, 패키지 및 기타 빌드 종속성을 저장합니다.
안정성 아키텍처 개요
이 섹션에서는 안정성 관점에서 가장 관련성이 높은 서비스가 작동하는 방식의 몇 가지 중요한 측면을 설명합니다. 이 섹션에서는 배포하고 사용하는 일부 리소스 및 기능을 포함하는 논리 아키텍처를 소개합니다. 또한 서비스의 작동 방식에 대한 세부 정보를 제공하는 물리적 아키텍처에 대해서도 설명합니다.
논리 아키텍처
VM Image Builder를 사용하는 경우 이미지 템플릿을 템플릿의 홈 지역이 되는 단일 Azure 지역에 배포합니다.
템플릿을 만든 후 빌드를 실행 하여 일련의 단계를 실행하여 VM 이미지를 만듭니다. 이러한 단계는 스크립트를 실행하거나 이미지에 포함하려는 패키지를 포함할 수 있습니다.
서비스는 스테이징 리소스 그룹을 만들거나 사용하며 구독에 빌드 인프라를 배포합니다. 빌드 후 서비스는 빌드 VM 및 연결된 네트워킹 리소스를 포함한 임시 리소스를 제거합니다. 스테이징 리소스 그룹 및 해당 스토리지 리소스는 이미지 템플릿 리소스가 존재하는 한 유지됩니다.
VM Image Builder는 완성된 이미지를 지정하는 하나 이상의 대상에 배포합니다 . 일반적인 대상은 다음과 같습니다.
Azure 컴퓨팅 갤러리(이전의 Shared Image Gallery): 컴퓨팅 갤러리는 VM 이미지의 다중 복제를 제공합니다. 예를 들어 한 지역에서 이미지를 빌드하고 결과 Azure 컴퓨팅 갤러리 이미지 버전을 여러 대상 지역에 배포할 수 있습니다.
Azure Blob Storage: 서비스는 VM Image Builder가 배포하는 스토리지 계정 또는 사용자가 지정한 스토리지 계정 및 Blob 컨테이너에 VHD를 저장할 수 있습니다.
서비스 관리 스토리지 계정을 VHD 배포 대상으로 사용하는 경우 서비스는 준비 리소스 그룹에 VHD를 저장합니다. 이미지 템플릿을 삭제하면 서비스에서도 VHD를 삭제합니다. 이미지 템플릿과 독립적으로 VHD를 유지하려면 템플릿을 삭제하기 전에 사용자 지정 스토리지 계정에 배포하거나 다른 위치에 복사합니다.
Azure 컴퓨팅 갤러리 및 Blob Storage VM Image Builder와는 별개의 서비스입니다. 여러 Azure 지역의 대상을 포함하여 여러 대상에 이미지를 배포할 수 있습니다. 이 배포 모델은 이미지를 빌드하는 지역을 해당 이미지를 사용하는 지역과 구분하는 데 도움이 됩니다.
Note
VM Image Builder는 레거시 배포 대상인 관리형 이미지도 지원합니다. 이 문서에서는 관리되는 이미지를 다루지 않습니다. 프로덕션 시나리오의 경우 Azure Compute 갤러리를 사용합니다.
물리적 아키텍처
VM Image Builder 는 격리된 이미지 빌드를 사용하여 핵심 이미지 사용자 지정 및 유효성 검사 프로세스를 실행합니다. 서비스는 구독의 준비 리소스 그룹에 전용 Azure Container Instances 리소스 및 빌드 VM을 배포합니다. Container Instances 리소스는 HashiCorp Packer를 실행하여 이미지를 사용자 지정하고 유효성을 검사하고 VM Image Builder는 빌드를 조정합니다.
이미지 빌드를 실행하려면 리소스 공급자를 Microsoft.ContainerInstance 등록하고 구독에 충분한 Container Instances 할당량이 있는지 확인합니다. 서비스 아키텍처, 지원되는 지역 및 빌드 프로세스에 대한 자세한 내용은 Azure VM Image Builder 개요를 참조하세요.
Azure Compute 갤러리 및 Blob Storage 같은 별도의 Azure 서비스는 완성된 이미지를 저장합니다. 복원력 요구 사항을 충족하도록 각 배포 대상을 구성합니다.
일시적인 오류에 대한 복원력
일시적인 오류는 구성 요소에서 짧고 간헐적인 오류입니다. 클라우드와 같은 분산 환경에서 자주 발생하며 작업의 일반적인 부분입니다. 일시적인 오류는 짧은 시간 후에 스스로 수정됩니다. 애플리케이션은 일반적으로 영향을 받는 요청을 다시 시도하여 일시적인 오류를 처리할 수 있는 것이 중요합니다.
모든 클라우드 호스팅 애플리케이션은 클라우드 호스팅 API, 데이터베이스 및 기타 구성 요소와 통신할 때 Azure 임시 오류 처리 지침을 따라야 합니다. 자세한 내용은 일시적 결함 처리를 위한 권장 사항을 참조하세요.
일반적으로 Azure 포털, Azure CLI, Azure PowerShell 또는 Bicep 같은 코드와 같은 인프라를 사용하여 Azure VM Image Builder와 상호 작용합니다. 빌드 파이프라인은 일시적인 오류를 처리합니다. Azure Resource Manager 일시적인 오류 응답을 반환하는 경우 적절한 백오프를 사용하여 요청을 다시 시도합니다.
빌드가 실패하면 다시 실행하기 전에 해당 lastRunStatus, 사용자 지정 및 유효성 검사 로그 및 배포 실행 출력을 검사합니다. 이러한 세부 정보는 일시적인 오류 조건, 사용자 지정 단계 또는 이미지 배포 작업으로 인해 오류가 발생했는지 여부를 확인하는 데 도움이 됩니다. 자세한 내용은 VM Image Builder 빌드 오류 문제를 참조하세요.
빌드 작업은 스토리지 계정, 패키지 리포지토리, 원본 이미지 위치 및 배포 대상과 같은 외부 시스템에 따라 달라질 수도 있습니다. 임시 네트워크, 플랫폼 또는 종속성 문제 후 재시도를 지원하도록 사용자 지정 단계 및 파이프라인을 디자인합니다.
가용성 영역 오류에 대한 복원력
빌드 작업 및 완료된 이미지는 영역 실패 시 다르게 동작합니다.
빌드: VM Image Builder는 가용성 영역을 지원하지 않으며 이미지 템플릿 또는 빌드 작업에 대한 영역 복원력을 보장하지 않습니다. 영역 오류가 빌드에서 사용하는 리소스에 영향을 주는 경우 빌드가 시작되지 않거나 중단될 수 있습니다. VM Image Builder는 빌드를 다른 영역으로 자동으로 이동하지 않습니다.
영역 중단 중에 이미지 빌드를 실행해야 하는 경우 여러 Azure 지역에서 이미지 템플릿 및 지원 리소스를 배포합니다. 자세한 내용은 복원성을 위한 맞춤형 다중 리전 솔루션을 참조하세요.
이미지: 완료된 이미지는 스토리지가 영역 복원력이 있는 경우 계속 사용할 수 있습니다.
Azure Compute Gallery: Azure Compute Gallery 이미지 버전은 가용성 영역을 지원하는 대상 지역에서 ZRS(영역 중복 스토리지)를 사용할 수 있습니다. 각 대상 지역에 대해 스토리지 계정 복제 유형으로 ZRS를 선택합니다. 기본값은 LRS(로컬 중복 스토리지)이며 영역 오류에 대한 복원력이 없습니다. 자세한 내용은 Azure Compute Gallery 고가용성을 참조하세요.
Azure Blob Storage VHD: 사용자 지정 스토리지 계정을 사용하지 않는 경우 VM Image Builder는 가용성 영역을 지원하는 지역에서 기본적으로 ZRS 스토리지 계정을 만듭니다. 사용자 지정 스토리지 계정을 사용하는 경우 요구 사항을 충족하도록 중복성을 구성할 책임이 있습니다. ZRS를 사용하여 여러 가용성 영역에 VHD의 복사본을 저장합니다. ZRS 작동 방식에 대한 자세한 내용은 Azure Blob Storage 안정성을 참조하세요.
지역 전체 오류에 대한 복원력
빌드 작업 및 완성된 이미지는 지역 전체의 실패 시 다르게 동작합니다.
빌드: Azure VM Image Builder는 단일 지역 서비스이며 기본 제공 다중 리전 장애 조치(failover)를 제공하지 않습니다. 이미지 템플릿을 호스트하는 지역을 사용할 수 없게 되면 해당 지역의 이미지 템플릿 및 빌드 작업도 사용할 수 없습니다. 서비스는 자동으로 다른 지역으로 장애 조치(failover)되지 않습니다.
지역 중단 중에 이미지 빌드를 실행해야 하는 경우 여러 Azure 지역에 이미지 템플릿 및 지원 리소스를 배포합니다. 자세한 내용은 복원성을 위한 맞춤형 다중 리전 솔루션을 참조하세요.
이미지: 완료된 이미지는 스토리지가 지역 전체의 오류에 복원력이 있는 경우 계속 사용할 수 있습니다.
Azure 컴퓨팅 갤러리: 이미지 버전을 여러 지역에 복제하도록 Azure Compute Gallery를 구성할 수 있습니다. 복제는 비동기적이며 해당 지역에 대한 복제가 완료된 후에만 대상 지역에서 이미지 버전을 사용할 수 있습니다.
한 지역에서 중단되는 동안 완료된 복제본은 정상 대상 지역의 VM 배포에 계속 사용할 수 있습니다. 그러나 갤러리 리소스가 포함된 지역을 사용할 수 없는 경우 갤러리 리소스를 만들거나 업데이트할 수 없습니다. 지역 중단 시 이미지 버전을 계속 게시해야 하는 경우 별도의 빌드 지역에 별도의 갤러리를 유지 관리합니다. 자세한 내용은 Azure Compute Gallery 복제 및 모범 사례를 참조하세요.
Azure Blob Storage VHD: 기본 서비스 관리 VHD 대상은 지역 중복성을 제공하지 않습니다. 가용성 영역을 지원하는 지역에서는 지역 전체 오류로부터 보호하지 않는 ZRS를 사용합니다.
쌍을 이루는 지역이 있는 지역에서는 GRS(지역 중복 스토리지) 또는 GZRS(지역 영역 중복 스토리지)를 사용하는 사용자 지정 스토리지 계정에 VHD를 배포할 수 있습니다. 읽기 액세스 GRS(RA-GRS) 및 읽기 액세스 GZRS(RA-GZRS)는 보조 엔드포인트를 통해 읽기 전용 액세스를 제공하지만 장애 조치를 수행하지는 않습니다. 쌍을 이루는 지역에서 일반적인 읽기-쓰기 액세스를 복원하려면 고객 관리 장애 조치를 시작하거나 보조 엔드포인트에서 별도의 스토리지 계정으로 VHD를 복사합니다. 지역 복제는 비동기이므로 계획되지 않은 장애 조치(failover)로 인해 복제되지 않은 데이터가 손실될 수 있습니다. 가능한 경우 장애 조치(failover) 전에 스토리지 계정의 마지막 동기화 시간 속성을 확인합니다.
Blob Storage 장애 조치(failover) 동작에 대한 자세한 내용과 비계절 지역 간에 데이터를 복제하는 대체 방법은 Azure Blob Storage 안정성을 참조하세요.
회복력을 위한 사용자 지정 다중 리전 솔루션
지역 가동 중단 시 이미지를 계속 빌드해야 하는 경우 여러 지역에서 독립 빌드 환경을 배포하고 운영해야 합니다.
VM Image Builder를 지원하는 지역을 선택합니다. 각 빌드 지역에서 관리 ID 및 역할 할당, 네트워킹 구성, 사용자 지정 아티팩트, 원본 이미지 또는 이미지 복제본 및 배포 대상을 포함하여 이미지 템플릿 및 해당 지역별 종속성을 미리 배포합니다.
갤러리의 지역을 사용할 수 없는 동안 이미지를 게시해야 하는 경우 각 빌드 지역에서 독립적인 Compute Gallery 리소스를 사용합니다. 단일 갤러리에서 이미지 버전을 복제해도 갤러리가 완전히 다중 리소스가 되는 것은 아닙니다.
인프라를 코드로 사용하여 이러한 리소스를 정의하고 해당 정의를 진실의 근원으로 처리합니다. 구성이 변경될 때 지역 환경을 동기화된 상태로 유지하고, 각 환경이 이미지를 빌드하고 배포할 수 있도록 정기적으로 테스트합니다.
백업 및 복원
Azure VM Image Builder는 백업 및 복구 프로세스를 대체하지 않습니다. 대부분의 경우 복구에 중요한 아티팩트가 Azure Compute 갤러리 또는 VHD 스토리지에 게시하는 완성된 이미지입니다.
손상 또는 계획되지 않은 확장 중단으로부터 복구를 개선하려면 다음 권장 사항을 따르세요.
보존 요구 사항에 따라 Azure Compute 갤러리 또는 기타 배포 대상에 게시된 이미지를 보존합니다.
VHD를 만들고 기본 VHD 대상을 사용하는 경우 이미지 템플릿을 삭제하기 전에 VHD를 고유한 지속성 스토리지에 복사합니다.
소스 제어를 사용하여 이미지 템플릿 정의를 저장하고 버전을 지정합니다.
소스 제어 또는 다른 유형의 지속성 스토리지를 사용하여 사용자 지정 스크립트 및 패키지를 저장 및 버전 지정합니다.
미리 배포된 각 복구 환경이 이미지를 빌드하고 배포할 수 있도록 정기적으로 유효성을 검사합니다.
서비스 유지 관리에 대한 복원력
Microsoft Azure VM Image Builder에 대한 유지 관리를 관리합니다. VM Image Builder는 런타임에 애플리케이션 트래픽을 제공하지 않으므로 유지 관리는 게시된 이미지에서 이미 만든 VM에 영향을 주지 않습니다. 유지 관리 또는 다른 서비스 이벤트 중에 빌드가 지연되거나 중단된 경우 해당 상태 및 로그를 검사하고 다시 실행합니다.
Azure Service Health 사용하여 빌드 지역에 영향을 줄 수 있는 계획된 유지 관리 및 서비스 인시던트 모니터링
서비스 수준 약정
Azure VM Image Builder는 가용성 SLA(서비스 수준 계약)를 제공하지 않습니다.
배포 대상 또는 스토리지 서비스에 적용되는 모든 SLA는 별도로 적용되며 VM Image Builder 템플릿 또는 빌드 작업에 대한 가용성 약정을 제공하지 않습니다.