Azure Compute Gallery에 이미지 저장 및 공유

적용 대상: ✔️ Linux VM ✔️ Windows VM ✔️ 유연한 확장 집합 ✔️ 균일한 확장 집합

이미지는 생성 방식에 따라 완전한 VM(연결된 데이터 디스크 포함)의 복사본일 수도 있고 단순한 OS 디스크의 복사본일 수도 있습니다. 이미지에서 VM을 만드는 경우 이미지의 VHD 복사본을 사용하여 새 VM의 디스크를 만듭니다. 이미지는 스토리지에 유지되며 새 VM을 만들 때 계속 반복해서 사용할 수 있습니다.

유지할 이미지가 굉장히 많고 회사 전체에서 이미지를 사용할 수 있게 만들려면 Azure Compute Gallery를 리포지토리로 사용하면 됩니다.

갤러리를 사용하여 이미지를 저장하는 경우 여러 리소스 종류가 생성됩니다.

리소스 설명
이미지 원본 이는 갤러리에서 이미지 버전을 만드는 데 사용할 수 있는 리소스입니다. 이미지 소스는 일반화 또는 특수화된 기존 Azure VM, 관리형 이미지, 스냅샷, VHD 또는 다른 갤러리의 이미지 버전일 수 있습니다.
갤러리 Azure Marketplace와 마찬가지로 갤러리는 이미지 및 다른 리소스를 관리하고 공유하는 데 사용되는 리포지토리이지만 액세스할 수 있는 사람을 제어할 수 있습니다.
이미지 정의 이미지 정의는 갤러리 내에 생성되고, VM을 만드는 데 사용하기 위해 충족해야 할 요구 사항과 이미지에 대한 정보를 전달합니다. 여기에는 이미지가 Windows인지, Linux인지 여부, 릴리스 정보, 최소 및 최대 메모리 요구 사항이 포함됩니다. 이미지의 형식 정의입니다.
이미지 버전 이미지 버전은 갤러리를 사용하는 경우 VM을 만들 때 사용합니다. 사용 환경에 필요한 만큼 여러 버전의 이미지를 가질 수 있습니다. 관리되는 이미지와 마찬가지로 이미지 버전을 사용하여 VM을 만들 때는 이미지 버전을 사용하여 VM의 새 디스크를 만듭니다. 이미지 버전은 여러 번 사용할 수 있습니다.

갤러리에서 한 이미지의 여러 버전을 보유하는 방법을 보여 주는 그래픽

이미지 정의

이미지 정의는 이미지 버전의 논리적 그룹화입니다. 이미지 정의에는 이미지를 만든 이유에 대한 정보가 포함되며, 이미지 메타데이터(예: 이미지의 OS, 지원 기능 및 이미지를 사용하는 방법에 관한 기타 정보)도 포함되어 있습니다. 이미지 정의는 이미지 만들기와 관련하여 모든 세부 정보에 대한 계획과 비슷합니다. 이미지 정의가 아닌 정의에서 만든 이미지 버전의 VM을 배포합니다.

각 이미지 정의에는 Publisher, Offer, SKU의 세 가지 매개 변수가 있으며 이러한 매개 변수를 조합해서 사용합니다. 세 매개 변수는 특정 이미지 정의를 찾는 데 사용됩니다. 3개 값을 모두 공유하지는 않으면서 1개 또는 2개의 값을 공유하는 이미지 정의를 사용할 수 있습니다. 예를 들어 다음은 3개의 이미지 정의와 해당 값입니다.

이미지 정의 Publisher 제안 Sku
myImage1 Contoso 재무 백 엔드
myImage2 Contoso 재무 프런트 엔드
myImage3 테스트 재무 프런트 엔드

이러한 세 가지 정의는 모두 고유한 값 세트를 갖습니다. 형식은 최신 버전의 Marketplace 이미지를 가져오기 위해 Azure PowerShell에서 Azure Marketplace 이미지의 게시자, 제품 및 SKU를 지정하는 방법과 비슷합니다. 각 이미지 정의에는 이와 같이 고유한 값 세트가 필요합니다.

다음 매개 변수는 포함할 수 있는 이미지 버전 유형을 결정합니다.

  • 운영 체제 상태 - OS 상태를 일반화 또는 특수화로 설정할 수 있습니다. 이 필드는 필수 필드입니다.
  • 운영 체제 - Windows 또는 Linux입니다. 이 필드는 필수 필드입니다.
  • Hyper-V 생성 - 이미지가 1세대 또는 2세대 Hyper-V VHD 중 무엇으로 만들었는지 여부를 지정합니다. 기본값은 1세대입니다.

이미지 정의에는 동일한 기능, 계획, OS 상태, OS 유형 등을 지원하는 이미지를 그룹화할 수 있도록 이미지에 대한 메타데이터가 포함되어 있습니다. 다음은 리소스를 보다 쉽게 추적할 수 있도록 이미지 정의에 대해 설정할 수 있는 다른 매개 변수입니다.

  • 설명 - 설명을 사용하여 이미지 정의가 존재하는 이유를 자세히 알려줍니다. 예를 들어 애플리케이션이 미리 설치된 프런트 엔드 서버의 이미지 정의가 있을 수 있습니다.

  • EULA - 이미지 정의와 관련된 최종 사용자 사용권 계약을 가리키는 데 사용할 수 있습니다.

  • 개인정보처리방침 및 릴리스 정보 - 릴리스 정보와 개인정보처리방침을 Azure 스토리지에 저장하고 이미지 정의 과정에서 액세스할 수 있도록 URI를 제공합니다.

  • 수명 종료 날짜 - 이미지 정의의 모든 이미지 버전에 대해 이미지가 사용되지 않아야 하는 기본 날짜를 설정합니다. 수명 종료 날짜는 정보 제공용입니다. 사용자는 수명 종료 날짜가 지난 이미지와 버전에서 VM을 계속 만들 수 있습니다.

  • 태그 - 이미지 정의를 만들 때 태그를 추가할 수 있습니다. 태그에 대한 자세한 내용은 태그를 사용하여 리소스 구성을 참조하세요.

  • 최소/최대 vCPU 및 메모리 권장 사항 - 이미지에 대한 vCPU 및 메모리 권장 사항이 있는 경우 해당 정보를 이미지 정의에 연결할 수 있습니다.

  • 허용되지 않는 디스크 유형 - VM의 스토리지 요구 사항에 대한 정보를 제공할 수 있습니다. 예를 들어 이미지가 표준 HDD 디스크에 적합하지 않은 경우 허용되지 않는 유형 목록에 추가합니다.

  • Marketplace 이미지(-PurchasePlanPublisher, -PurchasePlanName-PurchasePlanProduct)에 대한 구매 계획 정보입니다. 구매 계획 정보에 대한 자세한 내용은 Azure Marketplace에서 이미지 찾기이미지를 만들 때 Azure Marketplace 구매 계획 정보 제공을 참조하세요.

  • 아키텍처

  • 기능을 사용하면 갤러리 유형에 따라 이미지에서 지원되는 추가 기능 및 SecurityType을 지정할 수 있습니다.

    기능 허용되는 값 정의 다음에서 지원:
    IsHibernateSupported True, False 최대 절전 모드를 지원하는 VM을 만듭니다. 프라이빗, 직접 공유, 커뮤니티
    IsAcceleratedNetworkSupported True, False 가속화된 네트워킹이 사용하도록 설정된 VM을 만듭니다. 이미지 정의에서 True로 설정하면 가속화된 네트워킹을 지원하지 않는 VM 캡처가 지원되지 않습니다. 프라이빗, 직접 공유, 커뮤니티
    DiskControllerType ["SCSI", "NVMe"], ["SCSI"] SCSI 또는 NVMe 디스크 유형을 사용하도록 설정합니다. NVMe VM 및 디스크는 지원 NVMe라는 태그가 지정된 이미지 정의에서만 캡처할 수 있습니다. 프라이빗, 직접 공유, 커뮤니티

    features 매개 변수를 사용하여 SecurityType을 지정하면 VM에서 사용하도록 설정된 보안 기능이 제한됩니다. 일부 유형은 이러한 항목이 저장된 갤러리의 유형에 따라 제한됩니다.

    SecurityType 정의 다음에서 지원:
    ConfidentialVMSupported VMGS Blob을 포함하지 않는 일반 Gen2 이미지입니다. 이 이미지 유형에서 Gen2 VM 또는 Confidential VM을 만들 수 있습니다. 프라이빗, 직접 공유, 커뮤니티
    기밀 VM 이 이미지 유형에서 Confidential VM만 만들 수 있습니다. 프라이빗
    TrustedLaunchSupported VMGS Blob을 포함하지 않는 일반 Gen2 이미지입니다. 이 이미지 유형에서 Gen2 VM 또는 TrustedLaunch VM을 만들 수 있습니다. 프라이빗, 직접 공유, 커뮤니티
    TrustedLaunch 이 이미지 유형에서 TrustedLaunch VM만 만들 수 있습니다. 프라이빗
    TrustedLaunchAndConfidentialVmSupported VMGS Blob을 포함하지 않는 일반 Gen2 이미지입니다. 이 이미지 유형에서 Gen2 VM, TrustedLaunch VM 또는 ConfidentialVM을 만들 수 있습니다. 프라이빗, 직접 공유, 커뮤니티

    자세한 내용은 이미지 정의 기능 및 SecurityType을 추가하기 위한 CLI 예제 또는 PowerShell 예제를 참조하세요.

    **ConfidentialVM은 사용 가능한 지역에서만 지원됩니다. 여기에서 지원되는 지역을 찾을 수 있습니다.

이미지 버전

VM을 만드는 데 사용하는 것은 이미지 버전입니다. 사용 환경에 필요한 만큼 여러 버전의 이미지를 가질 수 있습니다. 이미지 버전을 사용하여 VM을 만들 때는 이미지 버전을 사용하여 VM의 새 디스크를 만듭니다. 이미지 버전은 여러 번 사용할 수 있습니다.

이미지 버전의 속성은 다음과 같습니다.

  • 버전 번호. 이는 이미지 버전의 이름으로 사용됩니다. 항상 MajorVersion.MinorVersion.Patch 형식입니다. VM을 만들 때 최신을 사용하도록 지정하면 가장 높은 MajorVersion, 다음으로 MinorVersion, 다음으로 패치를 기준으로 최신 이미지가 선택됩니다.
  • 출처. 원본은 VM, 관리 디스크, 스냅샷, 관리형 이미지 또는 다른 이미지 버전일 수 있습니다.
  • 수명 주기 끝. 이미지 버전의 수명 종료 날짜를 나타냅니다. 수명 종료 날짜는 정보 제공용입니다. 사용자는 수명 종료 날짜가 지난 버전에서 VM을 계속 만들 수 있습니다.

일반화 이미지와 특수화 이미지

Azure Compute Gallery는 두 가지 운영 체제 상태를 지원합니다. 일반적으로 이미지를 만드는 데 사용되는 VM을 일반화한 후 이미지를 가져와야 합니다. 일반화는 VM에서 머신 및 사용자 관련 정보를 제거하는 프로세스입니다. Linux의 경우 waagent-deprovision 또는 -deprovision+user 매개 변수를 사용할 수 있습니다. Windows의 경우 Sysprep 도구가 사용됩니다.

특수화 VM은 머신 관련 정보와 계정을 제거하는 프로세스를 거치지 않았습니다. 또한 특수화 이미지로 만든 VM에는 osProfile이 연결되지 않습니다. 즉, 특수화 이미지는 이점도 있지만 몇 가지 제한이 있습니다.

  • 특수화 이미지로 만든 VM과 확장 집합은 더 빠르게 작동할 수 있습니다. 이러한 이미지는 이미 첫 번째 부팅을 거친 원본으로 만들기 때문에 이러한 이미지로 만든 VM은 더 빠르게 부팅됩니다.
  • VM에 로그인하는 데 사용할 수 있는 계정은 해당 VM이 생성된 특수화 이미지를 사용하여 만드는 VM에서도 사용할 수 있습니다.
  • VM은 이미지를 가져온 VM의 컴퓨터 이름을 사용합니다. 충돌을 방지하려면 컴퓨터 이름을 변경해야 합니다.
  • osProfilesecrets를 사용하여 중요한 정보를 VM에 전달하는 방식을 결정합니다. 이로 인해 KeyVault, WinRM 및 osProfilesecrets를 사용하는 기타 기능을 사용할 때 문제가 발생할 수 있습니다. 경우에 따라 MSI(관리되는 서비스 ID)를 사용하여 이러한 제한을 해결할 수도 있습니다.

리소스 업데이트

갤러리 리소스를 만든 후 변경할 수 있습니다. 다음과 같은 제한이 있습니다.

Azure Compute Gallery:

  • 설명

이미지 정의:

  • 권장 vCPU
  • 권장 메모리
  • 설명
  • 수명 주기 끝
  • ReleaseNotes

이미지 버전:

  • 지역 복제본 수
  • 대상 지역
  • 최신 항목에서 제외
  • 수명 주기 끝

공유

공유하려는 사용자에 따라 Azure Compute Gallery의 이미지를 공유하는 세 가지 주요 방법이 있습니다.

다음을 사용하여 공유: 사람 Groups 서비스 주체 특정 구독(또는) 테넌트 내의 모든 사용자 Azure의 모든 사용자와 공개적으로 공유
RBAC 공유 없음 아니요
RBAC + 직접 공유 갤러리 아니요
RBAC + 커뮤니티 갤러리 없음

ACG 이미지를 만드는 데 필요한 RBAC 권한은 다음과 같습니다.

ACG 이미지는 가상 머신, 디스크/스냅샷 및 VHD를 비롯한 다양한 원본의 사용자가 만들 수 있습니다. 이 섹션에서는 Azure Compute 갤러리 이미지를 만드는 데 필요한 다양한 사용자 권한을 간략하게 설명합니다. 필요한 권한이 없는 식별자는 ACG 이미지를 만들 수 없습니다.

  • 사용자는 ACG 이미지 버전을 만들려면 Virtual Machine에 대한 쓰기 권한이 필요합니다.
  • Azure SDK의 경우 properties.storageProfile.source.virtualMachineId를 사용합니다. 이 속성에는 API 버전 2023-07-03 또는 .NET SDK 버전 1.4.0 이상이 필요합니다.
소스 형식 필요한 권한
가상 머신 쓰기
디스크/스냅샷 쓰기
VHD 쓰기(listKeys)
관리되는 이미지 읽기
갤러리 이미지 읽기

RBAC 권한 부여에 대한 Azure 기본 제공 역할에 대한 추가 정보는 설명서를 참조하세요.

단순 복제

이미지 버전을 만들 때 개발 및 테스트를 위해 복제 모드를 단순하게 설정할 수 있습니다. 단순 복제는 이미지 복사를 건너뛰므로 이미지 버전이 빠르게 준비됩니다. 그러나 이는 해당 이미지 버전에서 많은 수의 VM을 배포할 수 없다는 의미이기도 합니다. 이는 이전 관리 이미지가 작동하는 방식과 유사합니다.

단순 복제는 자주 배포되지 않는 큰 이미지(최대 32TB)가 있는 경우에도 유용할 수 있습니다. 원본 이미지가 복사되지 않기 때문에 더 큰 디스크를 사용할 수 있습니다. 그러나 동시에 많은 수의 VM을 배포하는 데 사용할 수도 없습니다.

단순 복제용 이미지를 설정하려면 Azure CLI와 함께 --replication-mode Shallow를 사용합니다.

SDK 지원

다음 SDK를 사용하면 Azure Compute Gallery를 만들 수 있습니다.

템플릿

템플릿을 사용하여 Azure Compute Gallery 리소스를 만들 수 있습니다. 사용할 수 있는 몇 가지 빠른 시작 템플릿은 다음과 같습니다.

자주 묻는 질문

Azure Portal에서 액세스할 수 있는 구독 간에 Azure Compute Gallery 리소스를 모두 나열하려면 아래 단계를 따르세요.

  1. Azure Portal을 엽니다.
  2. 페이지를 아래로 스크롤하고 모든 리소스를 선택합니다.
  3. 모든 리소스를 나열하려는 모든 구독을 선택합니다.
  4. Azure Compute Gallery 형식의 리소스를 찾습니다.

사용 권한이 있는 구독 간에 Azure Compute Gallery 리소스를 나열하려면 Azure CLI에서 다음 명령을 사용하세요.

   az account list -otsv --query "[].id" | xargs -n 1 az sig list --subscription