사용자 지정 이미지를 사용하여 사용자 지정 이미지 풀 만들기

Batch 풀의 VM(가상 머신)에 대한 사용자 지정 이미지 풀을 만들려면 관리형 이미지를 사용하여 Azure Compute Gallery 이미지를 만들면 됩니다. 관리형 이미지만 사용하는 것도 지원되지만 2019-08-01 이하의 API 버전에 대해서만 지원됩니다.

Warning

관리되는 이미지를 사용하여 Batch 풀을 만드는 지원은 2026년 3월 31일 이후에 사용 중지됩니다. Batch에서 사용자 지정 이미지 풀을 만드는 데 사용할 Azure Compute Gallery에서 사용자 지정 이미지 호스트팅으로 마이그레이션하세요. 자세한 내용은 마이그레이션 가이드를 참조하세요.

이 토픽에서는 관리된 이미지만 사용하여 사용자 지정 이미지 풀을 만드는 방법을 설명합니다.

필수 조건

  • 관리되는 이미지 리소스. 사용자 지정 이미지를 사용하여 가상 머신 풀을 만들려면 Batch 계정과 동일한 Azure 구독 및 지역에 관리되는 이미지 리소스가 있거나 해당 리소스를 만들어야 합니다. 이미지는 VM OS(운영 체제) 디스크 및 연결된 데이터 디스크(선택 사항)의 스냅샷에서 만들어야 합니다.

    • 작성하는 각 풀에 대해 고유한 사용자 지정 이미지를 사용합니다.
    • Batch API를 사용하여 이미지로 풀을 만들려면 이미지의 리소스 ID를 지정합니다. 리소스 ID의 형식은 다음과 같습니다. /subscriptions/xxxx-xxxxxx-xxxxx-xxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/myImage
    • 관리되는 이미지 리소스는 강화에 사용할 수 있도록 풀 수명 동안 유지되어야 하며, 풀을 삭제한 후에 제거할 수 있습니다.
  • Microsoft Entra 인증 Batch 클라이언트 API는 Microsoft Entra 인증을 사용해야 합니다. Microsoft Entra ID에 대한 Azure Batch 지원은 Active Directory를 사용하여 Batch 서비스 솔루션 인증에 설명되어 있습니다.

관리형 이미지 준비

Azure의 다음에서 관리형 이미지를 준비할 수 있습니다.

  • Azure VM의 OS 및 데이터 디스크의 스냅샷
  • 관리 디스크를 사용하는 일반화된 Azure VM
  • 클라우드로 업로드된 일반화된 온-프레미스 VHD

관리형 이미지를 사용하여 안정적으로 Batch 풀 크기를 조정하려는 경우 VM 디스크의 스냅샷을 사용하는 첫 번째 방법 사용하여 관리형 이미지를 만드는 것이 좋습니다. 다음 단계는 VM을 준비하고, 스냅샷을 만들고, 스냅샷에서 관리형 이미지를 만드는 방법을 보여줍니다.

VM 준비

이미지용으로 새 VM을 만드는 경우 Batch에서 지원하는 자사 Azure Marketplace 이미지를 관리형 이미지의 기본 이미지로 사용합니다. 자사 이미지만 기본 이미지로 사용할 수 있습니다. Azure Batch에서 지원하는 Azure Marketplace 이미지 참조의 전체 목록을 보려면 지원되는 이미지 목록을 참조 하세요.

참고 항목

추가 라이선스 및 구매 약관이 있는 타사 이미지는 기본 이미지로 사용할 수 없습니다. 이러한 Marketplace 이미지에 대한 자세한 내용은 Linux 또는 Windows VM에 대한 지침을 참조하세요.

타사 이미지를 사용하려면 Azure Compute 갤러리를 사용할 수 있습니다. 자세한 내용은 Azure Compute 갤러리를 사용하여 사용자 지정 이미지 풀 을 만듭니다.

  • 관리 디스크로 VM이 생성되었는지 확인합니다. VM을 만들 때 기본 스토리지 설정입니다.
  • 사용자 지정 스크립트 확장 등의 Azure 확장을 VM에 설치해서는 안 됩니다. 이미지에 미리 설치된 확장이 포함되어 있으면 Batch 풀을 배포할 때 Azure에서 문제가 발생할 수 있습니다.
  • 연결된 데이터 디스크를 사용하는 경우 VM 내에서 디스크를 탑재하고 포맷하여 사용해야 합니다.
  • 제공하는 기본 OS 이미지가 기본 임시 드라이브를 사용하도록 해야 합니다. Batch 노드 에이전트는 현재 기본 임시 드라이브를 예상합니다.
  • OS 디스크가 암호화되지 않았는지 확인합니다.
  • VM이 실행되면 RDP(Windows용) 또는 SSH(Linux용)를 통해 연결합니다. 필요한 소프트웨어를 설치하거나 원하는 데이터를 복사합니다.

VM 스냅샷 만들기

스냅샷은 VHD의 전체 읽기 전용 복사본입니다. VM OS 또는 데이터 디스크의 스냅샷을 만들려면 Azure Portal 또는 명령줄 도구를 사용할 수 있습니다. 스냅샷을 만드는 방법과 옵션은 VM용 지침을 참조하세요.

스냅샷 하나 이상에서 이미지 만들기

스냅샷에서 관리되는 이미지를 만들려면 az image create 명령과 같은 Azure 명령줄 도구를 사용합니다. OS 디스크 스냅샷을 지정하고 필요에 따라 데이터 디스크 스냅샷을 하나 이상 지정하여 이미지를 만들 수 있습니다.

관리되는 이미지에서 풀을 생성합니다.

관리형 이미지의 리소스 ID를 찾았으면 해당 이미지에서 사용자 지정 이미지 풀을 만듭니다. 다음 단계에서는 Batch Service 또는 Batch Management를 사용하여 사용자 지정 이미지 풀을 만드는 방법을 보여줍니다.

참고 항목

Microsoft Entra 인증에 사용하는 ID에 이미지 리소스에 대한 권한이 있는지 확인합니다. Active Directory를 사용하여 Batch 서비스 솔루션 인증을 참조하세요.

관리형 이미지에 대한 리소스는 풀의 수명 동안 존재해야 합니다. 기본 리소스를 삭제하면 풀 크기를 조정할 수 없습니다.

Batch Service .NET SDK

private static VirtualMachineConfiguration CreateVirtualMachineConfiguration(ImageReference imageReference)
{
    return new VirtualMachineConfiguration(
        imageReference: imageReference,
        nodeAgentSkuId: "batch.node.windows amd64");
}

private static ImageReference CreateImageReference()
{
    return new ImageReference(
        virtualMachineImageId: "/subscriptions/{sub id}/resourceGroups/{resource group name}/providers/Microsoft.Compute/images/{image definition name}");
}

private static void CreateBatchPool(BatchClient batchClient, VirtualMachineConfiguration vmConfiguration)
{
    try
    {
        CloudPool pool = batchClient.PoolOperations.CreatePool(
            poolId: PoolId,
            targetDedicatedComputeNodes: PoolNodeCount,
            virtualMachineSize: PoolVMSize,
            virtualMachineConfiguration: vmConfiguration);

        pool.Commit();
    }

Batch Management REST API

REST API URI

 PUT https://management.azure.com/subscriptions/{sub id}/resourceGroups/{resource group name}/providers/Microsoft.Batch/batchAccounts/{account name}/pools/{pool name}?api-version=2020-03-01

요청 본문

 {
   "properties": {
     "vmSize": "{VM size}",
     "deploymentConfiguration": {
       "virtualMachineConfiguration": {
         "imageReference": {
           "id": "/subscriptions/{sub id}/resourceGroups/{resource group name}/providers/Microsoft.Compute/images/{image name}"
         },
         "nodeAgentSkuId": "{Node Agent SKU ID}"
       }
     }
   }
 }

대형 풀 관련 고려 사항

사용자 지정 이미지를 사용하여 VM이 수백 개인 풀을 만들려는 경우에는 위의 지침에 따라 VM 스냅샷에서 만든 이미지를 사용해야 합니다.

다음 고려 사항도 유의해야 합니다.

  • 크기 제한 - Batch는 사용자 지정 이미지를 사용할 때 풀 크기를 전용 컴퓨팅 노드 2,500개 또는 스폿 노드 1,000개로 제한합니다.

    같은 이미지 또는 같은 기본 스냅샷을 기반으로 하는 여러 이미지를 사용해 여러 풀을 만드는 경우에는 풀의 총 컴퓨팅 노드 수가 위의 제한을 초과할 수 없습니다. 하나의 이미지나 해당 기본 스냅샷을 둘 이상의 풀에 사용하지 않는 것이 좋습니다.

    인바운드 NAT 풀을 사용하여 풀을 구성하는 경우에는 제한을 낮출 수 있습니다.

  • 크기 조정 시간 제한 - 풀에 고정된 수의 노드가 포함되는 경우(풀 크기가 자동으로 조정되지 않음) 풀의 resizeTimeout 속성을 20~30분 등의 값으로 늘립니다. 풀이 제한 시간 내에 대상 크기에 도달하지 않으면 다른 크기 조정 작업을 수행합니다.

    풀에 컴퓨팅 노드를 300개보다 많이 포함하려는 경우에는 풀이 대상 크기에 도달하도록 크기를 여러 번 조정해야 할 수 있습니다.

Azure Compute Gallery를 사용하면 노드 준비 시간 단축과 같은 향상된 성능 이점과 함께 더 많은 공유 이미지 복제본과 함께 사용자 지정된 이미지로 더 큰 풀을 만들 수 있습니다.

Packer 사용을 위한 고려 사항

Packer를 사용하여 관리형 이미지 리소스를 직접 만드는 작업은 사용자 구독 모드 Batch 계정으로만 수행할 수 있습니다. Batch 서비스 모드 계정의 경우 먼저 VHD를 만든 다음, VHD를 관리형 이미지 리소스로 가져와야 합니다. 풀 할당 모드(사용자 구독 또는 Batch 서비스)에 따라 관리형 이미지 리소스를 만드는 단계는 다양합니다.

관리형 이미지를 생성하는 데 사용되는 리소스가 사용자 지정 이미지를 참조하는 모든 풀의 수명 동안 존재하는지 확인합니다. 이렇게 하지 않으면 풀 할당 오류 및/또는 크기 조정 오류가 발생할 수 있습니다.

이미지 또는 기본 리소스가 제거되면 There was an error encountered while performing the last resize on the pool. Please try resizing the pool again. Code: AllocationFailed와 유사한 오류가 발생할 수 있습니다. 이 오류가 발생하는 경우 기본 리소스가 제거되지 않았는지 확인합니다.

Packer를 사용하여 VM을 만드는 방법에 대한 자세한 내용은 Packer를 사용하여 Linux 이미지 빌드 또는 Packer를 사용하여 Windows 이미지 빌드를 참조하세요.

다음 단계