주의
이 문서는 EOL(수명 종료) 상태인 Linux 배포판인 CentOS를 참조합니다. 이에 따라 사용 및 플랜을 고려하세요. 자세한 내용은 CentOS 수명 종료 지침을 참조하세요.
Azure Compute Gallery(이전의 Shared Image Gallery)는 조직 전체에서 사용자 지정 이미지 공유를 단순화합니다. 사용자 지정 이미지는 Marketplace 이미지와 같지만 직접 만듭니다. VM, VHD, 스냅샷, 관리되는 이미지 또는 다른 이미지 버전에서 이미지를 만들 수 있습니다.
Azure Compute Gallery를 사용하면 사용자 지정 VM 이미지를 조직의 다른 사용자, 지역 내 또는 여러 지역, Microsoft Entra 테넌트 내에서 또는 커뮤니티 갤러리를 사용하여 공개적으로 공유할 수 있습니다. 공유할 이미지, 이미지를 제공할 지역, 이미지를 공유할 사람을 선택하세요. 이미지를 논리적으로 그룹화할 수 있도록 여러 갤러리를 만들 수 있습니다. ARM64, 가속 네트워킹 및 TrustedVM 등과 같은 많은 새로운 기능은 Azure Compute Gallery를 통해서만 지원되며 리형 이미지에는 사용할 수 없습니다.
Azure Compute Gallery 기능에는 여러 가지 리소스가 있습니다.
리소스 |
설명 |
이미지 원본 |
이는 갤러리에서 이미지 버전을 만드는 데 사용할 수 있는 리소스입니다. 이미지 소스는 일반화 또는 특수화된 기존 Azure VM, 관리형 이미지, 스냅샷 또는 다른 갤러리의 이미지 버전일 수 있습니다. |
갤러리 |
Azure Marketplace와 마찬가지로 갤러리는 이미지 및 VM 애플리케이션을 관리하고 공유하는 데 사용되는 리포지토리이지만 액세스할 수 있는 사람을 제어할 수 있습니다. |
이미지 정의 |
이미지 정의는 갤러리 내에 생성되고, 내부적으로 사용하기 위해 충족해야 할 요구 사항과 이미지에 대한 정보를 전달합니다. 여기에는 이미지가 Windows인지, Linux인지 여부, 릴리스 정보, 최소 및 최대 메모리 요구 사항이 포함됩니다. 이미지의 형식 정의입니다. |
이미지 버전 |
이미지 버전은 갤러리를 사용하는 경우 VM을 만들 때 사용합니다. 사용 환경에 필요한 만큼 여러 버전의 이미지를 가질 수 있습니다. 관리되는 이미지와 마찬가지로 이미지 버전을 사용하여 VM을 만들 때는 이미지 버전을 사용하여 VM의 새 디스크를 만듭니다. 이미지 버전은 여러 번 사용할 수 있습니다. |
시작하기 전에
이 문서를 완료하려면 기존 Azure Compute Gallery와 Azure에서 사용할 수 있는 이미지 원본이 있어야 합니다. 이미지 원본은 다음과 같습니다.
- 구독의 VM. 특수 및 일반 VM 모두에서 이미지를 캡처할 수 있습니다.
- 관리되는 이미지,
- 관리되는 OS 및 데이터 디스크.
- 스토리지 계정의 VHD로 사용되는 OS 및 데이터 디스크.
- 동일한 갤러리 또는 동일한 구독의 다른 갤러리에 있는 다른 이미지 버전.
이미지에 데이터 디스크가 포함될 경우 데이터 디스크 크기는 1TB를 초과할 수 없습니다.
이미지 정의 이름은 대문자 또는 소문자, 숫자, 점, 대시 및 마침표로 구성될 수 있습니다. 이미지 정의에 대해 지정할 수 있는 값에 대한 자세한 내용은 이미지 정의를 참조하세요.
이미지 버전에 허용되는 문자는 숫자와 마침표입니다. 숫자는 32비트 정수 범위 내에 포함되어야 합니다. 형식: MajorVersion.MinorVersion.Patch.
이 문서를 진행하며 필요한 경우 리소스 이름을 바꿉니다.
일반화된 이미지의 경우 이미지를 캡처하기 전에 OS별 지침을 참조하세요.
커뮤니티 갤러리를 사용하여 이미지를 공유하는 경우 동일한 지역에서 갤러리, 이미지 정의 및 이미지 버전을 만들어야 합니다.
사용자가 커뮤니티 갤러리 이미지를 검색하면 최신 버전의 이미지만 표시됩니다.
Important
게시, 제안 및 SKU에 제공한 정보와 같은 이미지 정의의 정보는 공개적으로 사용 가능합니다.
이미지 만들기
이미지 정의 및 이미지 버전을 만들려면 아래 옵션을 선택합니다.
포털의 VM에서 이미지를 만들려면 VM 이미지 캡처를 참조하세요.
VM이 아닌 원본을 사용하여 이미지를 만들려면 다음 단계를 따릅니다.
Azure Portal로 이동한 다음 Azure Compute Gallery를 검색하여 선택합니다.
목록에서 사용하려는 갤러리를 선택합니다.
갤러리 페이지의 페이지 상단에서 추가를 선택한 다음 드롭다운에서 VM 이미지 정의를 선택합니다.
Azure Compute Gallery에 새 이미지 정의 추가 페이지의 기본 탭에서 지역을 선택합니다.
이미지 정의 이름에 myImageDefinition과 같은 이름을 입력합니다.
운영 체제에서 원본에 따라 올바른 옵션을 선택합니다.
VM 생성의 경우 원본에 따라 옵션을 선택합니다. 대부분의 경우에는 1세대를 선택하면 됩니다. 자세한 내용은 Gen2 VM에 대한 지원을 참조하세요.
운영 체제 상태에서 원본에 따라 옵션을 선택합니다. 자세한 내용은 일반화 및 특수화를 참조하세요.
게시자에 myPublisher와 같은 고유한 이름을 입력합니다.
제품에 myOffer와 같은 고유한 이름을 입력합니다.
SKU에 mySKU와 같은 고유한 이름을 입력합니다.
페이지의 아래쪽에서 검토 + 생성를 선택합니다.
이미지 정의가 유효성 검사를 통과한 후 만들기를 선택합니다.
배포가 완료되면 리소스로 이동을 선택합니다.
이미지 정의 페이지의 시작 탭에서 버전 만들기를 선택합니다.
지역에서 이미지를 만들 지역을 선택합니다. 어떤 경우에는 원본이 이미지가 만들어진 동일한 영역에 있어야 합니다. 나중에 드롭다운 목록에 원본이 표시되지 않으면 이미지의 지역을 변경해 보세요. 나중에 언제든지 이미지를 다른 지역에 복제할 수 있습니다.
버전 번호에 대해 1.0.0과 같은 번호를 입력합니다. 이미지 버전 이름은 정수를 사용하여 정.부.패치 형식을 따라야 합니다.
원본의 드롭다운에서 원본에 사용 중인 파일 형식을 선택합니다. 각 원본 유형에 대한 구체적인 정보는 아래 표를 참조하세요.
원본 |
기타 필드 |
디스크 또는 스냅샷 |
- OS 디스크에 대해 드롭다운에서 디스크 또는 스냅샷을 선택합니다. - 데이터 디스크를 추가하려면 LUN 번호를 입력한 다음, 드롭다운에서 데이터 디스크를 선택합니다. |
이미지 버전 |
- 드롭다운에서 원본 갤러리를 선택합니다. - 드롭다운에서 올바른 이미지 정의를 선택합니다. - 드롭다운에서 사용하려는 기존 이미지 버전을 선택합니다. |
관리형 이미지 |
드롭다운에서 원본 이미지를 선택합니다. 관리형 이미지는 인스턴스 세부 정보에서 선택한 것과 동일한 지역에 있어야 합니다. |
스토리지 계정의 VHD |
찾아보기를 선택하여 VHD에 대한 스토리지 계정을 선택합니다. |
버전 번호 대신 latest
를 사용하여 VM을 만들 때 이 버전을 사용하지 않으려면 최신 항목에서 제외에서 기본값인 아니요를 그대로 둡니다.
수명 종료 날짜의 경우 달력에서 이 버전의 사용이 중단되어야 하는 날짜를 선택합니다.
복제 탭의 드롭다운에서 스토리지 유형을 선택합니다.
기본 복제본 수를 설정합니다. 추가하는 각 지역에 대해 이를 재정의할 수 있습니다.
원본 지역에 복제해야 하므로 목록의 첫 번째 복제본이 이미지를 만든 지역에 있게 됩니다. 드롭다운에서 영역을 선택하고 필요에 따라 복제본 수를 조정하여 복제본을 더 추가할 수 있습니다.
완료되면 검토 + 만들기를 선택합니다. Azure가 구성의 유효성을 검사합니다.
이미지 버전이 유효성 검사를 통과하면 만들기를 선택합니다.
배포가 완료되면 리소스로 이동을 선택합니다.
이미지를 모든 대상 영역에 복제하는 데 시간이 걸릴 수 있습니다.
포털에서 기존 VM을 이미지로 캡처할 수도 있습니다. 자세한 내용은 포털에서 VM 이미지 만들기를 참조하세요.
이미지 정의는 이미지에 대한 논리적 그룹화를 만듭니다. 내부에서 생성된 이미지 버전에 대한 정보를 관리하는 데 사용됩니다.
az sig image-definition create를 사용하여 갤러리에서 이미지 정의를 만듭니다. 이미지 정의가 올바른 형식인지 확인합니다. VM을 일반화한 경우(Linux의 경우 waagent -deprovision
, Windows의 경우 Sysprep 사용) --os-state generalized
를 사용하여 범용 이미지 정의를 만들어야 합니다. 기존 사용자 계정을 제거하지 않고 VM을 사용하려는 경우 --os-state specialized
를 사용하여 특수화된 이미지 정의를 만듭니다.
이미지 정의에 지정할 수 있는 매개 변수에 대한 자세한 내용은 이미지 정의를 참조하세요.
다음 예제에서는 이미지 정의의 이름이 myImageDefinition이며 특수 Linux OS 이미지에 대한 것입니다. Windows OS를 사용하여 이미지에 대한 정의를 만들려면 --os-type Windows
를 사용합니다.
az sig image-definition create \
--resource-group myGalleryRG \
--gallery-name myGallery \
--gallery-image-definition myImageDefinition \
--publisher myPublisher \
--offer myOffer \
--sku mySKU \
--os-type Linux \
--os-state specialized
참고 항목
타사 마켓플레이스 이미지에서 파생된 이미지를 포함할 이미지 정의의 경우 계획 정보는 타사 이미지의 계획 정보와 정확히 일치해야 합니다. 이미지 정의를 만들 때 --plan-name
, --plan-product
, --plan-publisher
를 추가하여 이미지 정의에 플랜 정보를 포함합니다.
이미지 버전 만들기
az sig image version create를 사용하여 이미지 버전을 만듭니다.
이미지 만들기 구문은 원본으로 사용하는 항목에 따라 변경됩니다. OS 원본이 하나만 있는 한 원본 형식을 혼합할 수 있습니다. 각 데이터 디스크에 대해 다른 원본을 가질 수도 있습니다.
원본 |
매개 변수 집합 |
OS 디스크: |
|
VM ID를 사용하는 VM |
--managed-image <Resource ID of the VM> |
관리되는 이미지 또는 다른 이미지 버전 |
--managed-image <Resource ID of the managed image or image version |
스냅샷 또는 관리 디스크 |
--os-snapshot <Resource ID of the snapshot or managed disk> |
스토리지 계정의 VHD |
--os-vhd-uri <URI> --os-vhd-storage-account <storage account name> . |
데이터 디스크: |
|
스냅샷 또는 관리 디스크 |
--data-snapshots <Resource ID of the snapshot or managed disk> --data-snapshot-luns <LUN number> |
스토리지 계정의 VHD |
--data-vhds-sa <storageaccountname> --data-vhds-uris <URI> --data-vhds-luns <LUN number> |
이미지에 대해 다른 원본을 지정하는 방법에 대한 자세한 예는 az sig image-version create examples를 참조하세요.
아래 예에서는 VM에서 이미지를 만들고 있습니다. 이미지 버전이 1.0.0이며, 영역 중복 스토리지를 사용하여 두 복제본을 미국 중서부 지역에, 하나의 복제본을 각각 미국 중남부 지역 및 미국 동부 2 지역에 만듭니다. 복제 지역에는 원본 VM이 있는 지역이 포함되어야 합니다.
이미지를 만들기 전에 VM을 중지/할당 해제하는 것이 가장 좋습니다.
이 예에서 --virtual-machine
값을 VM의 ID로 바꿉니다.
az sig image-version create \
--resource-group myGalleryRG \
--gallery-name myGallery \
--gallery-image-definition myImageDefinition \
--gallery-image-version 1.0.0 \
--target-regions "westcentralus" "southcentralus=1" "eastus=1=standard_zrs" \
--replica-count 2 \
--virtual-machine "/subscriptions/<Subscription ID>/resourceGroups/MyResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM"
참고 항목
동일한 관리형 이미지를 사용하여 다른 이미지 버전을 만들려면 먼저 해당 이미지 버전이 완전히 빌드되어 복제될 때까지 기다려야 합니다.
또한 이미지 버전을 만들 때 --storage-account-type premium_lrs
를 추가하여 Premium Storage에 이미지를 저장하거나, --storage-account-type standard_zrs
를 추가하여 영역 중복 스토리지에 이미지를 저장할 수도 있습니다.
이미지 정의는 이미지에 대한 논리적 그룹화를 만듭니다. 이미지 정의를 만들 때 모든 정보가 올바른지 확인합니다. 원본 VM을 일반화한 경우 -OsState generalized
를 사용하여 이미지 정의를 만들어야 합니다. 원본을 일반화하지 않은 경우 -OsState specialized
를 사용하여 이미지 정의를 만듭니다.
이미지 정의에 대해 지정할 수 있는 값에 대한 자세한 내용은 이미지 정의를 참조하세요.
New-AzGalleryImageDefinition을 사용하여 이미지 정의를 만듭니다.
다음 예제에서는 이미지 정의의 이름이 myImageDefinition이며 Windows를 실행하는 특수 VM에 대한 것입니다. Linux를 사용하여 이미지에 대한 정의를 만들려면 -OsType Linux
를 사용합니다.
$imageDefinition = New-AzGalleryImageDefinition `
-GalleryName $gallery.Name `
-ResourceGroupName $gallery.ResourceGroupName `
-Location $gallery.Location `
-Name 'myImageDefinition' `
-OsState specialized `
-OsType Windows `
-Publisher 'myPublisher' `
-Offer 'myOffer' `
-Sku 'mySKU'
참고 항목
타사 이미지에서 파생된 이미지를 포함할 이미지 정의의 경우 계획 정보는 타사 이미지의 계획 정보와 정확히 일치해야 합니다. 이미지 정의를 만들 때 -PurchasePlanName
, -PurchasePlanProduct
, -PurchasePlanPublisher
를 추가하여 이미지 정의에 플랜 정보를 포함합니다.
이미지 버전 만들기
New-AzGalleryImageVersion을 사용하여 이미지 버전을 만듭니다.
이미지 만들기 구문은 원본으로 사용하는 항목에 따라 변경됩니다.
원본 |
매개 변수 집합 |
OS 디스크 |
|
VM ID를 사용하는 VM |
-SourceImageId <Resource ID of the VM> |
관리되는 이미지 또는 다른 이미지 버전 |
-SourceImageId <Resource ID of the managed image or image version |
스냅샷 또는 관리 디스크 |
-OSDiskImage <Resource ID of the snapshot or managed disk> |
데이터 디스크 |
|
스냅샷 또는 관리 디스크 |
-DataDiskImage @{Source = @{Id=<source_id>}; Lun=<LUN>; SizeInGB = <Size in GB>; HostCaching = <Caching> } |
아래 예에서는 VM에서 이미지 버전을 만들고 있습니다. Stop-AzVM을 사용하여 이미지를 만들기 전에 VM을 중지/할당 취소하는 것이 좋습니다.
이 예제에서 이미지 버전은 1.0.0이며, 미국 중서부 및 미국 중남부 데이터 센터 둘 다에 복제됩니다. 복제를 위해 대상 지역을 선택할 때 '원본' 지역을 복제 대상으로 포함해야 한다는 점을 주의합니다.
$region1 = @{Name='South Central US';ReplicaCount=1}
$region2 = @{Name='East US';ReplicaCount=2}
$targetRegions = @($region1,$region2)
$job = $imageVersion = New-AzGalleryImageVersion `
-GalleryImageDefinitionName $imageDefinition.Name`
-GalleryImageVersionName '1.0.0' `
-GalleryName $gallery.Name `
-ResourceGroupName $gallery.ResourceGroupName `
-Location $gallery.Location `
-TargetRegion $targetRegions `
-SourceImageId $sourceVm.Id.ToString() `
-PublishingProfileEndOfLifeDate '2020-12-01' `
-asJob
이미지를 모든 대상 지역에 복제하는 데는 다소 시간이 소요되므로 진행 상태를 추적할 수 있게 작업을 만들었습니다. 작업의 진행률을 보려면 $job.State
를 입력합니다.
$job.State
참고 항목
동일한 관리형 이미지를 사용하여 다른 이미지 버전을 만들려면 먼저 해당 이미지 버전이 완전히 빌드되어 복제될 때까지 기다려야 합니다.
또한 이미지 버전을 만들 때 -StorageAccountType Premium_LRS
를 추가하여 Premium Storage에 이미지를 저장하거나, -StorageAccountType Standard_ZRS
를 추가하여 영역 중복 스토리지에 이미지를 저장할 수도 있습니다.
REST API를 사용하여 이미지 정의 만들기
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/images/{galleryDefinitionName}?api-version=2019-12-01
{
"location": "eastus",
"properties": {
"hyperVGeneration": "V1",
"identifier": {
"offer": "myOffer",
"publisher": "myPublisher",
"sku": "mySKU"
},
"osState": "Specialized",
"osType": "Linux",
},
}
REST API를 사용하여 이미지 버전을 만듭니다. 이 예에서는 VM에서 이미지 버전을 만듭니다. 다른 원본을 사용하려면 원본의 리소스 ID를 전달합니다(예: OS 디스크 스냅샷의 ID 전달).
# @name imageVersion
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/images/{galleryDefinitionName}/versions/{galleryImageVersionName}?api-version=2019-12-01
{
"location": "{region}",
"properties": {
"publishingProfile": {
"endOfLifeDate": "2024-12-02T00:00:00+00:00",
"replicaCount": 1,
"storageAccountType": "Standard_ZRS",
"targetRegions": [
{
"name": "eastus",
"regionalReplicaCount": 2,
"storageAccountType": "Standard_LRS",
},
{
"name": "westus2",
}
]
},
"storageProfile": {
"source": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}"
}
}
}
}
다른 테넌트에서 원본 이미지를 사용하여 한 테넌트에서 이미지 만들기
원본 이미지가 있는 구독에서 사용자에게 읽기 권한자 권한을 부여합니다. 사용자에게 원본 이미지에 대한 읽기 권한자 권한이 있으면 두 계정(원본 및 대상) 모두로 로그인합니다.
원본 이미지의 tenantID
, 새 이미지가 저장될 구독(대상) subscriptionID
및 원본 이미지의 resourceID
가 필요합니다. 또한 원본 이미지의 지역 또는 복제본 및 대상 지역이 동일한지 확인해야 합니다.
# Set some variables
tenantID="<tenant ID for the source image>"
subID="<subscription ID where the image will be creted>"
sourceImageID="<resource ID of the source image>"
# Login to the subscription where the new image will be created
az login
# Log in to the tenant where the source image is available
az login --tenant $tenantID
# Log back in to the subscription where the image will be created and ensure subscription context is set
az login
az account set --subscription $subID
# Create the image
az sig image-version create `
--gallery-image-definition myImageDef `
--gallery-image-version 1.0.0 `
--gallery-name myGallery `
--resource-group myResourceGroup `
--image-version $sourceImageID
--location myLocation
# Set variables
$targetSubID = "<subscription ID for the target>"
$sourceTenantID = "<tenant ID where for the source image>"
$sourceImageID = "<resource ID of the source image>"
# Login to the tenant where the source image is published
Connect-AzAccount -Tenant $sourceTenantID -UseDeviceAuthentication
# Login to the subscription where the new image will be created and set the context
Connect-AzAccount -UseDeviceAuthentication -Subscription $targetSubID
Set-AzContext -Subscription $targetSubID
# Create the image version from another image version in a different tenant
New-AzGalleryImageVersion `
-ResourceGroupName myResourceGroup -GalleryName myGallery `
-GalleryImageDefinitionName myImageDef `
-Location "West US 2" `
-Name 1.0.0 `
-SourceImageId $sourceImageID
다음 단계
구매 계획 정보를 제공하는 방법에 대한 자세한 내용은 이미지를 만들 때 Azure Marketplace 구매 계획 정보 제공을 참조하세요.