다음을 통해 공유


Microsoft HPC 팩을 사용하여 Azure Batch로 버스트

이 항목에는 Azure Batch 풀을 컴퓨팅 리소스로 포함하도록 HPC 팩 클러스터를 확장하는 방법에 대한 정보가 포함되어 있습니다. 이러한 Azure Batch 풀을 사용하면 주문형 HPC 클러스터의 용량을 늘릴 수 있습니다("버스트"). Azure Batch 서비스에 대한 자세한 내용은 Azure.com 설명서를 참조하세요.

이 주제에서는:

필수 조건

  • HPC 팩 클러스터 - 클러스터 의 헤드 노드 이상을 만들고 구성해야 합니다. Batch에 대한 버스트 기능은 HPC 팩 2012 R2 업데이트 3부터 사용할 수 있습니다.

  • Azure 구독 - 아직 구독이 없는 경우 평가판에 등록하거나 MSDN 구독자 혜택을 사용하거나 다른 구매 옵션을 탐색합니다.

1단계: Azure Batch 계정 만들기

HPC 팩 2016 업데이트 1에서 다양한 Azure Batch 리소스 할당 모드(Batch 서비스 또는 사용자 구독) 및 클라이언트 인증 방법(Batch 액세스 키 또는 Azure AD)에 따라 HPC 팩에서 Batch로 버스트하려면 다음 계정 정보가 필요할 수 있습니다.

  1. 액세스 키를 사용하여 Batch Serivce
    • Batch 계정 이름
    • Batch 계정 URL
    • Batch 계정 키
  2. Azure AD를 사용하는 Batch 서비스 또는 사용자 구독
    • Batch AAD 인스턴스
    • Batch AAD 테넌트 ID
    • Batch AAD ClientApp Id
    • Batch AAD ClientApp 키
    • Batch 계정 이름
    • Batch 계정 URL

다음 표를 확인하여 선택할 Batch 계정 유형 및 인증 방법을 결정합니다. 또한 이 블로그이 문서를 확인하여 사용자 구독 풀 할당 모드 및 Azure Batch 서비스에 Azure AD 인증을 사용하는 방법에 대해 자세히 이해할 수 있습니다.

계정 유형/풀 할당 모드 인증 방법 VM 이미지 형식 낮은 우선 순위 VM VNet
Batch 서비스 액세스 키/Azure AD PaaS/IaaS(MarketPlaceImage) / IaaS(Azure AD를 통한 CustomImage) 예(Azure AD를 통해)
사용자 구독 Azure AD IaaS(MarketPlaceImage)/IaaS(CustomImage) 아니오

Azure CLI를 사용하여 Batch 서비스 풀 할당 모드로 Batch 계정을 만들고 아래와 같이 인증에 Batch 액세스 키를 사용합니다.

# Authenticate CLI session.
az login

# Select the subscription
az account set -s mysubscription

# Create a resource group.
az group create --name myresourcegroup --location mylocation

# Let's add a storage account reference to the Batch account for use as 'auto-storage'
# for applications. We'll start by creating the storage account.
az storage account create -g myresourcegroup -n mystorageaccount -l mylocation --sku Standard_LRS

# Create a Batch account.
az batch account create -g myresourcegroup -n mybatchaccount -l mylocation --storage-account mystorageaccount

# Now we can display the details of our created account.
az batch account show -g myresourcegroup -n mybatchaccount

# We can view the access keys to the Batch Account for future client authentication.
az batch account keys list -g myresourcegroup -n mybatchaccount

Azure CLI를 사용하여 사용자 구독 풀 할당 모드로 Batch 계정 만들기

# Authenticate CLI session.
az login

# Select the subscription
az account set -s mysubscription

# Allow Azure Batch to access the subscription (one-time operation).
az role assignment create --assignee MicrosoftAzureBatch --role contributor

# Create a resource group.
az group create --name myresourcegroup --location mylocation

# A Batch account that will allocate pools in the user's subscription must be configured
# with a Key Vault located in the same region. Let's create this first.
az keyvault create --resource-group myresourcegroup --name mykeyvault --location mylocation --enabled-for-deployment true     --enabled-for-disk-encryption true --enabled-for-template-deployment true

# We will add an access-policy to the Key Vault to allow access by the Batch Service.
az keyvault set-policy --resource-group myresourcegroup --name mykeyvault --spn ddbf3205-c6bd-46ae-8127-60eb93363864 --key-permissions all --secret-permissions all

# Now we can create the Batch account, referencing the Key Vault either by name (if they exist in the same resource group) or by its full resource ID.
az batch account create --resource-group myresourcegroup --name mybatchaccount –location mylocation --keyvault mykeyvault

Batch 인증을 위해 Azure AD를 구성하고 Batch AAD 정보를 가져오려면

  1. Batch AAD 인스턴스를 가져옵니다. 전역 Azure Cloud를 사용하는 경우 AAD 인스턴스는 .입니다 https://login.microsoftonline.com/.
  2. Batch AAD 테넌트 ID를 가져옵니다. Azure Portal에서 추가 서비스를 클릭하고, Azure Active Directory를 검색하고, 선택하고, 페이지의 오른쪽 위 모서리에서 계정을 선택하여 Active Directory를 선택하고, 속성을 클릭합니다. 디렉터리 ID에 제공된 GUID 값을 복사합니다. 이 값을 테넌트 ID라고도 합니다.
  3. Batch 클라이언트 애플리케이션을 등록하고 Batch AAD ClientApp ID를 가져옵니다.
  • Azure Portal에서 페이지의 오른쪽 위 모서리에 있는 계정을 선택하여 Azure AD 테넌트를 선택합니다. - 추가 서비스를 선택하고, 앱 등록을 검색하고 선택합니다. - +새 애플리케이션 등록을 클릭합니다. - 이름을 입력하고, 웹앱/API를 애플리케이션 유형으로 선택하고, 애플리케이션과 관련된 값(예: https://myAppName로그온 URI)을 입력합니다. 만들기를 클릭합니다. - 애플리케이션을 성공적으로 만든 후 앱 등록 목록에서 애플리케이션을 선택하고 속성을 클릭합니다. 애플리케이션 ID에 대해 제공된 GUID 값을 복사합니다. 이 값은 Batch AAD ClientApp ID로 사용됩니다.
  1. 인증에 서비스 주체를 사용하고 Batch AAD ClientApp 키를 가져오도록 구성합니다.
  • 애플리케이션에 대한 비밀 키를 요청합니다. 앱 등록 목록에서 만든 애플리케이션을 선택하고, 키를 클릭하고, 키 설명을 입력하고, 기간을 선택한 다음, 저장을 클릭합니다. Batch AAD ClientApp 키로 사용할 값을 복사합니다. - 서비스 주체를 사용하여 인증할 RBAC 역할을 애플리케이션에 할당합니다. 추가 서비스를 선택하고, Batch 계정을 검색하고 선택하고, 만든 일괄 처리 계정을 클릭하고, 액세스 제어(IAM)를 선택합니다. +ADD를 클릭하고 기여자 역할 및 등록된 애플리케이션을 선택합니다. 저장을 클릭합니다.

비고

Azure AD 인증은 Batch 서비스 모드와 Batch 계정의 사용자 구독 모드 모두에서 지원됩니다.

중요: 다음 Batch AAD 정보를 가져온 후 Batch 인증을 위해 Azure AD를 구성한 후 HPC 클러스터 관리자를 열고 구성 --> 배포 할 일 목록에서Azure Batch 구성 설정을 클릭하여 양식에 적절하게 정보를 입력한 다음 확인을 클릭합니다. HPC Pack에서 Batch 인증에 Azure AD를 사용하는 경우 이 단계가 필요합니다.

  • Batch AAD 인스턴스
  • Batch AAD 테넌트 ID
  • Batch AAD ClientApp Id
  • Batch AAD ClientApp 키

또는 아래와 같이 HPC Powershell cmdlet을 사용하여 Batch AAD 정보를 설정할 수 있습니다.

# HPC PowerShell
Set-HpcClusterRegistry -BatchAADInstance '<AAD Instance e.g. https://login.microsoftonline.com/>' -BatchAADTenantId <TenantGUID> -BatchAADClientAppId <AppGUID> -BatchAADClientAppKey '<AppKey>'

2단계: Azure Batch 풀 템플릿 만들기

Azure Batch 풀 템플릿을 만들려면 HPC 클러스터 관리자에서 노드 템플릿 만들기 마법사를 사용합니다.

Batch 풀 템플릿을 만들려면

  1. HPC 클러스터 관리자를 시작합니다.

  2. 구성탐색 창에서 노드 템플릿을 클릭합니다.

  3. 작업 창에서 새로 만들기를 클릭합니다.
    노드 템플릿 만들기 마법사가 나타납니다.

  4. 노드 템플릿 유형 선택 페이지에서 Azure Batch 풀 템플릿을클릭한 다음 다음을 클릭합니다.

  5. 템플릿 이름 지정 페이지에서 노드 템플릿의 이름을 입력하고 필요에 따라 설명을 입력합니다. 다음을 클릭합니다.

  6. Azure Batch 계정 정보 제공 페이지에서 Batch 계정 이름을 입력합니다. Batch 계정 유형이 Batch 서비스인 경우 Batch 계정 유형으로 BatchService 를 선택합니다. 인증에 Batch 액세스 키를 사용하는 경우 키를 계정 키로 입력하고 Azure AD 인증을 사용하는 경우 비워 둡니다. Batch 계정 유형이 사용자 구독인 경우 UserSubscription을 Batch 계정 유형으로 선택합니다. 이전에 얻은 Batch 계정 URLAzure Storage 연결 문자열 을 입력한 다음 다음을 클릭합니다.

비고

AAD 인증이 필요한 경우 Batch AAD 인스턴스, Batch AAD 테넌트 ID, Batch AAD ClientApp Id 및 Batch AAD ClientApp 키가 배포 할 일 목록에 이미 설정되어 있는지 확인합니다. 그렇지 않으면 "잘못된 Azure Batch 계정"이라는 오류와 함께 계정 유효성 검사가 실패합니다. Azure Batch 계정 설정을 확인하세요." 다음을 클릭할 때.

  1. Azure Batch 자동 크기 조정 구성 페이지에서 자동 크기 조정 사용의 선택을 취소한 상태로 두고 다음을 클릭합니다.

  2. 원격 데스크톱 자격 증명 및 SSH 구성 페이지에서 배포 중에 Azure Batch 풀 컴퓨팅 노드에 생성될 사용자의 자격 증명을 선택적으로 제공합니다. 나중에 자격 증명을 사용하여 풀 컴퓨팅 노드에 연결할 수 있습니다. Linux 노드의 경우 putty.exe통해 SSH에 SSH 공개 키SSH 프라이빗 키 파일(.ppk)을 지정할 수도 있습니다. PuTTY에 대한 공개 키 및 프라이빗 키 파일을 생성하는 방법은 여기 를 참조하세요. 암호와 SSH 키를 모두 지정하면 연결에 SSH 키가 사용됩니다. 또한 생성된 프라이빗 키 파일(.ppk)을 %CCP_HOME%Bin 폴더에 복사하여 HPC 클러스터 관리자에서 노드로 SSH를 열어야 합니다. 다음을 클릭합니다.

  3. HPC Pack 2012 R2 업데이트 3이 있는 시작 스크립트 지정 페이지에서 필요에 따라 Azure Batch 시작 작업을 지정합니다.

    • 명령줄 - Azure Batch 컴퓨팅 노드가 시작될 때 실행되는 명령
    • Blob 원본 URL - 이전에 업로드한 파일의 Azure Storage 위치이며 Azure Batch 컴퓨팅 노드에 자동으로 다운로드됩니다.
    • 로컬 파일 경로 - Azure Batch 컴퓨팅 노드에서 파일을 다운로드할 위치
      HPC Pack 2016 업데이트 1 이상 버전에서 선택적으로 Batch 풀의 모든 Azure Batch 컴퓨팅 노드에서 실행할 시작 스크립트의 명령줄 또는 이름을 지정합니다. 현재 시작 스크립트는 Linux 노드에 대해서만 지원됩니다. 예를 들어 Batch 풀의 모든 Linux 노드에서 startup.sh 스크립트를 실행하려면 명령줄 도구 HpcPack.exe 사용하여 아래와 같이 Azure Storage 계정에 스크립트를 압축 및 업로드한 다음 명령줄에서 startup.sh 지정해야 합니다.
    HpcPack.exe create startup.sh.zip startup.sh 
    HpcPack.exe upload startup.sh.zip /account:<StorageAccountName> /key:<StorageAccountKey>
    
  4. 다음을 클릭하고 지정된 모든 템플릿 설정을 검토합니다. 만들기를 클릭하여 Azure Batch 풀 노드 템플릿을 생성합니다.

3단계: Azure Batch 풀 추가

HPC 클러스터 관리자의 노드 추가 마법사를 사용하여 Batch 풀 컴퓨팅 노드를 추가합니다.

Azure Batch 풀을 추가하려면

  1. HPC 클러스터 관리자의 리소스 관리에서 작업 창에서 노드 추가를 클릭합니다. 노드 추가 마법사가 나타납니다.

  2. 배포 방법 선택 페이지에서 Azure Batch 풀 추가를클릭한 다음 다음을 클릭합니다.

  3. Azure Batch 풀 정보 지정 페이지에서 Azure Batch 풀 템플릿을 선택합니다. 선택한 템플릿의 Batch 계정 유형에 따라 풀 정보를 다음과 같이 지정합니다.
    Batch 계정 유형이 Batch 서비스인 경우

    • 컴퓨팅 노드 수 - 새 Azure Batch 풀의 컴퓨팅 노드(가상 머신 인스턴스) 수
    • 가상 머신이 전용 VM인지 또는 우선 순위가 낮은 VM인지 여부
    • PaaS 또는 IaaSMarketPlace에 대한 이미지 유형을 선택합니다. PaaS의 경우 OS 제품군을 선택합니다. 예: Windows Server 2016. IaaSMarketPlace의 경우 게시자, 제품Sku를 선택합니다. 예를 들어 Canonical, UbuntuServer, 16.04-LTS.
    • 컴퓨팅 노드의 크기 - 각 컴퓨팅 노드의 역할 크기 입니다.
    • 컴퓨팅 노드당 최대 작업 수 - 각 컴퓨팅 노드에서 실행할 최대 동시 작업 수입니다. 기본 번호는 선택한 역할 크기의 코어 수와 같습니다. 최대 개수는 실제 코어 수보다 3배 더 큽니다. 컴퓨팅 노드당 최대 태스크 수에 컴퓨팅 노드 수를 곱한 값은 Batch 풀 노드의 총 코어 수와 같습니다.
    • 앱 패키지 – 선택적으로 Batch 계정에 이미 추가된 애플리케이션 패키지를 ID<:Version,Id><>:<>Version<, ... 형식>으로 지정합니다. Batch 계정 유형이 사용자 구독인 경우
    • 컴퓨팅 노드 수 – (위와 같이)
    • IaaSMarketPlace 또는 IaaSCustomImage에 대한 이미지 유형을 선택합니다. IaaSMarketPlace의 경우 게시자, 제품 및 Sku를 선택합니다. 예를 들어 Canonical, UbuntuServer, 16.04-LTS. IaaSCustomImage의 경우 게시자, 제품 및 Sku 외에 사용자 지정 이미지 리소스 ID도 /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/images/{imageName} 형식으로 필요합니다.
    • 컴퓨팅 노드의 크기 - (위와 같이)
    • 컴퓨팅 노드당 최대 작업 수 - (위와 같이)
    • 앱 패키지 – (위와 같이)
    • VNet – 필요에 따라 Batch 풀의 서브넷 ID를 지정합니다. 사용자 지정 VNet 및 서브넷을 만들고 서브넷 ID를 가져오는 방법은 이 문서를 참조하세요. 또한 이 문서에 지정된 사용자 지정 VNet에 대한 Batch 요구 사항을 확인합니다.

    비고

    Linux VM에서 이미지를 캡처하고 이미지 리소스 ID를 가져오는 방법은 이 문서를 참조하세요. 사용자 지정 VM 이미지 또는 사용자 지정 VNet(아래 참조)의 경우 IAM(액세스 제어)을 통해 Batch 클라이언트 애플리케이션 기여자 역할을 리소스에 명시적으로 할당해야 합니다. 또는 Batch 풀을 시작할 때 'BadRequest' 오류가 발생할 수 있습니다.

4단계: 풀 시작

풀에서 작업을 실행하기 전에 풀을 시작해야 합니다.

Azure Batch 풀을 시작하려면

  1. 리소스 관리탐색 창에서 노드 또는 Azure Batch 풀을 클릭합니다.

  2. 목록 또는 열 지도 보기에서 하나 이상의 Azure Batch 풀을 선택합니다.

  3. 작업 창에서 시작을 클릭합니다.

    Azure Batch 풀 시작 대화 상자가 나타납니다. 시작클릭합니다.

  4. 노드 상태가 배포되지 않음 에서 프로비전으로 변경됩니다.

    프로비전 진행률을 추적하려면 풀을 선택한 다음 세부 정보 창에서 프로비전 로그 탭을 클릭합니다. Azure Batch 풀은 1분 이내에 만들어야 하며 상태는 오프라인으로 변경됩니다.

추가 고려 사항

  • Azure Batch 컴퓨팅 노드의 상태 모니터링 - Azure Batch 풀이 준비되면 Azure Batch 컴퓨팅 노드가 계속 만들어지고 시작됩니다. 노드 상태를 모니터링하려면 풀을 선택한 다음 세부 정보 창에서 Azure Batch 컴퓨팅 노드를 클릭합니다.

  • 컴퓨팅 노드에 대한 원격 데스크톱 또는 SSH - Azure Batch 풀의 컴퓨팅 노드가 시작된 후(노드 상태는 유휴 상태) 템플릿 설정을 구성하여 수동 구성 또는 문제 해결을 수행하도록 구성한 경우 원격 데스크톱 또는 SSH를 통해 각 컴퓨팅 노드에 연결할 수 있습니다. 이렇게 하려면 하나 이상의 Azure Batch 풀을 선택한 다음 작업 창에서 원격 데스크톱/SSH를 클릭합니다. SSH를 통해 Linux 노드에 연결하는 경우 생성된 프라이빗 키 파일(.ppk)을 클라이언트 컴퓨터의 %CCP_HOME%Bin 폴더에 복사해야 합니다.

  • 시작 작업 보기 - Azure Batch 풀 템플릿에서 시작 작업을 지정한 경우 Azure Batch 풀이 시작된 후 다음 HPC PowerShell cmdlet을 실행하여 시작 작업의 자세한 출력을 볼 수 있습니다.

    Get-HpcBatchPoolStartTask -Name <PoolName>   
    
  • 열 지도 보기 - Azure Batch 풀이 실행되는 동안 풀의 열 지도를 봅니다. 탐색 창의 리소스 관리 에서 노드를 클릭한 다음 열 지도 보기를 선택합니다. 풀의 Linux 노드에 대한 VM당 열 지도를 확인할 수도 있습니다. 탐색 창의 리소스 관리 에서 Azure Batch 풀을 클릭한 다음 열 지도 보기를 선택합니다. 현재 다음과 같은 성능 카운터가 수집됩니다.

    • CPU 사용량
    • 디스크 처리량
    • 사용 가능한 디스크 공간
    • 네트워크 사용량
    • 사용 가능한 실제 메모리

.

5단계: 풀에서 작업 실행

현재 HPC Pack은 Azure Batch 풀에서 일반 일괄 처리/매개 변수/mpi 작업 및 clusrun 명령을 모두 실행할 수 있습니다. Batch와 함께 clusrun 을 사용하기 위한 다음 권장 사항에 유의하세요.

  • 풀에서 실행되는 다른 작업이 없는 경우 Azure Batch 풀에서 clusrun 작업을 실행합니다. 실행 중인 다른 작업 또는 태스크가 있는 경우 clusrun 작업은 실행 중인 작업이 완료되기를 기다려야 할 수 있습니다.

  • 기본적으로 Azure Batch 풀에서 실행되는 작업은 잠재적인 성능 영향 때문에 HPC 팩에 작업 출력을 반환하지 않습니다. 원하는 경우 작업에서 노드 릴리스 작업을 정의하여 태스크 출력을 검색할 수 있습니다. 작업 출력을 검색하려면 HPC PowerShell을 통해 다음 클러스터 속성을 변경합니다.

    Set-HpcClusterProperty -GetAzureBatchTaskOutput $true  
    

6단계: 풀 중지

Batch 풀을 사용하지 않는 경우 Azure 리소스를 중지합니다. 이렇게 하면 풀 컴퓨팅 노드의 프로비전이 해제되며 Batch 풀 사용 비용이 줄어듭니다.

풀을 중지하려면

  1. 리소스 관리탐색 창에서 노드 또는 Azure Batch 풀을 클릭합니다.

  2. 목록 또는 열 지도 보기에서 중지하려는 하나 이상의 Azure Batch 풀을 선택합니다.

  3. 작업 창에서 중지를 클릭합니다.

    Azure Batch 풀 중지 대화 상자가 나타납니다. 중지를 클릭합니다.

  4. 중지 진행률을 추적하려면 노드를 선택한 다음 세부 정보 창에서 프로비전 로그 탭을 클릭합니다.

또한 참조하십시오

Microsoft HPC 팩: 노드 배포