다음을 통해 공유


가상 네트워크에서 Azure Batch 만들기

Azure Batch 풀을 만들 때 지정한 Azure 가상 네트워크의 서브넷에서 풀을 프로비전할 수 있습니다. 이 문서에서는 가상 네트워크에서 Batch 풀을 설정하는 방법을 설명합니다.

가상 네트워크를 사용하는 이유는 무엇인가요?

풀의 컴퓨팅 노드는 별도의 가상 네트워크 없이도 다중 인스턴스 작업을 실행하는 등 서로 통신할 수 있습니다. 그러나 기본적으로 풀의 노드는 라이선스 또는 파일 서버와 같이 풀 외부에 있는 가상 머신과 통신할 수 없습니다.

컴퓨팅 노드가 다른 가상 머신 또는 온-프레미스 네트워크와 안전하게 통신하도록 가상 네트워크의 서브넷에서 풀을 프로비전할 수 있습니다.

필수 조건

  • 인증. Azure Virtual Network를 사용하려면 Batch 클라이언트 API에서 Microsoft Entra 인증을 사용해야 합니다. 자세한 내용은 Active Directory를 사용하여 Batch 서비스 솔루션 인증을 참조하세요.

  • Azure Virtual Network. 하나 이상의 서브넷으로 가상 네트워크를 미리 준비하기 위해 Azure Portal, Azure PowerShell, Microsoft Azure CLI 또는 기타 방법을 사용할 수 있습니다.

    • Azure Resource Manager 가상 네트워크를 만들려면 가상 네트워크 만들기를 참조하세요. Resource Manager 기반 가상 네트워크는 새 배포에 권장되며, 가상 머신 구성을 사용하는 풀에서만 지원됩니다.

    • 클래식 가상 네트워크를 만들려면 여러 서브넷이 있는 가상 네트워크(클래식) 만들기를 참조하세요. 클래식 가상 네트워크는 Cloud Services 구성을 사용하는 풀에서만 지원됩니다.

      Important

      Azure Batch 풀 VNet에 172.17.0.0/16을 사용하지 않습니다. Docker 브리지 네트워크의 기본값이며 VNet에 연결하려는 다른 네트워크와 충돌할 수 있습니다. Azure Batch 풀에 대한 가상 네트워크를 만들려면 네트워크 인프라를 신중하게 계획해야 합니다.

일반 가상 네트워크 요구 사항

  • 가상 네트워크는 풀을 만들 때 사용한 Batch 계정과 동일한 구독 및 지역에 있어야 합니다.

  • 풀에 대해 지정한 서브넷에는 풀의 targetDedicatedNodestargetLowPriorityNodes 속성을 충분히 수용할 수 있는, 풀에 대상이 되는 VM 수를 수용할 만큼 충분한 할당되지 않은 IP 주소가 있어야 합니다. 서브넷에 할당되지 않은 IP 주소가 충분하지 않으면 풀은 컴퓨팅 노드를 부분적으로 할당하고 크기 조정 오류를 반환합니다.

  • 단순화된 컴퓨팅 노드 통신을 사용하지 않는 경우, 가상 네트워크에 서비스를 제공하는 사용자 지정 DNS 서버를 사용해 Azure Storage 엔드포인트를 확인해야 합니다. 특히 <account>.table.core.windows.net, <account>.queue.core.windows.net<account>.blob.core.windows.net 양식의 URL을 확인할 수 있어야 합니다.

  • 동일한 가상 네트워크 또는 동일한 서브넷에 여러 개의 풀을 만들 수 있습니다(충분한 주소 공간이 있는 경우). 단일 풀은 여러 가상 네트워크 또는 서브넷에 존재할 수 없습니다.

Important

Batch 풀은 두 노드 통신 모드 중 하나로 구성할 수 있습니다. 클래식 노드 통신 모드는 Batch 서비스가 컴퓨팅 노드에 대한 통신을 시작하는 위치입니다. 단순 노드 통신 모드는 컴퓨팅 노드가 Batch 서비스에 대한 통신을 시작하는 모드입니다.

  • Batch 풀에 사용되는 모든 가상 네트워크 또는 피어링된 가상 네트워크에는 컴퓨팅 노드에서 소프트웨어 정의 네트워킹 또는 라우팅과 겹치는 IP 주소 범위가 없어야 합니다. 충돌의 일반적인 원인은 docker와 같은 컨테이너 런타임을 사용하는 것입니다. Docker는 정의된 172.17.0.0/16 서브넷 범위의 기본 네트워크 브리지를 만듭니다. 해당 기본 IP 주소 공간의 가상 네트워크 내에서 실행되는 모든 서비스는 SSH를 통한 원격 액세스와 같은 컴퓨팅 노드의 서비스와 충돌합니다.

Virtual Machine 구성의 풀

요구 사항:

  • 지원되는 가상 네트워크: Azure Resource Manager 기반 가상 네트워크만 해당
  • 서브넷 식별자 - Batch API를 사용하여 서브넷을 지정할 경우 서브넷의 리소스 식별자를 사용합니다. 서브넷 식별자 형식은 다음과 같습니다.

/subscriptions/{subscription}/resourceGroups/{group}/providers/Microsoft.Network/virtualNetworks/{network}/subnets/{subnet}

  • 사용 권한: 가상 네트워크 구독 또는 리소스 그룹의 보안 정책이나 잠금이 가상 네트워크 관리를 위한 사용자 권한을 제한하고 있는지 확인합니다.
  • 네트워킹 리소스: Batch는 가상 네트워크를 포함하는 리소스 그룹에 더 많은 네트워킹 리소스를 자동으로 만듭니다.

Important

Batch는 100개 전용 노드 또는 우선 순위가 낮은 노드 각각에 대해 NSG(네트워크 보안 그룹), 공용 IP 주소 및 부하 분산 장치를 한 개씩 만듭니다. 이러한 리소스는 구독의 리소스 할당량으로 제한됩니다. 대형 풀의 경우 이러한 리소스 중 하나 이상에 대한 할당량을 늘리도록 요청해야 할 수 있습니다.

Virtual Machine 구성 풀에 대한 네트워크 보안 그룹: Batch 기본값

Batch는 Batch 풀 내 각 Virtual Machine Scale Set 배포의 네트워크 인터페이스 수준에서 NSG(네트워크 보안 그룹)를 만듭니다. simplified 컴퓨팅 노드 통신에서 공용 IP 주소가 없는 풀의 경우 NSG가 만들어지지 않습니다.

컴퓨팅 노드와 Batch 서비스 간에 필요한 통신을 제공하기 위해 이러한 NSG는 다음과 같이 구성됩니다.

  • BatchNodeManagement.region 서비스 태그에 해당하는 Batch 서비스 IP 주소에서 포트 29876 및 29877의 인바운드 TCP 트래픽. 이 규칙은 classic 풀 통신 모드에서만 만들어집니다.
  • 포트 22(Linux 노드) 또는 포트 3389(Windows 노드)의 인바운드 TCP 트래픽은 각각 기본 포트에서 SSH 또는 RDP에 대한 원격 액세스를 허용합니다. Linux에서의 특정 유형 관련 다중 인스턴스 작업(예: MPI)의 경우 Batch 컴퓨팅 노드가 포함된 서브넷에서 IP에 대한 SSH 트래픽을 허용해야 할 수도 있습니다. 특정 MPI 런타임은 일반적으로 개인 IP 주소 공간에서 라우팅되는 SSH를 통해 시작해야 할 수 있습니다. 이 트래픽은 서브넷 수준 NSG 규칙별로 차단될 수 있습니다.
  • 포트 443의 모든 트래픽을 BatchNodeManagement.region 서비스 태그에 해당하는 Batch 서비스 IP 주소로 아웃바운드합니다.
  • 가상 네트워크에 대한 모든 포트의 아웃바운드 트래픽 이 규칙은 서브넷 수준 NSG 규칙별로 수정될 수 있습니다.
  • 모든 포트에서 인터넷으로의 아웃바운드 트래픽. 이 규칙은 서브넷 수준 NSG 규칙별로 수정될 수 있습니다.

Important

Batch에서 구성한 NSG에서 인바운드 또는 아웃바운드 규칙을 수정하거나 추가하는 경우 주의해야 합니다. NSG에서 지정된 서브넷의 컴퓨팅 노드와 통신할 수 없도록 거부하는 경우 Batch 서비스는 컴퓨팅 노드의 상태를 사용할 수 없음으로 설정합니다. 또한 Batch에서 만든 리소스에는 리소스 잠금을 적용하지 않아야 합니다. 적용하는 경우 풀 삭제와 같은 사용자가 시작한 작업으로 인해 리소스가 정리되지 않을 수 있습니다.

Virtual Machine 구성 풀에 대한 네트워크 보안 그룹: 서브넷 수준 규칙 지정

Batch 컴퓨팅 노드의 서브넷과 연결된 NSG가 있는 경우 최소한 다음 표에 표시된 인바운드 및 아웃바운드 보안 규칙으로 이 NSG를 구성해야 합니다.

Warning

Batch 서비스 IP 주소는 시간이 지남에 따라 변경될 수 있습니다. 따라서 다음 표에 표시된 NSG 규칙에 대해 BatchNodeManagement.region 서비스 태그를 사용해야 합니다. NSG 규칙을 특정 Batch 서비스 IP 주소로 채우지 마세요.

인바운드 보안 규칙

원본 서비스 태그 또는 IP 주소 대상 포트 프로토콜 풀 통신 모드 Required
BatchNodeManagement.region서비스 태그 29876-29877 TCP 클래식
컴퓨팅 노드에 원격으로 액세스하기 위한 원본 IP 주소 3389(Windows), 22(Linux) TCP 클래식 또는 단순화 아니요

기본 RDP 포트나 SSH 포트의 외부 원본에서 컴퓨팅 노드에 대한 원격 액세스를 허용해야 하는 경우에만 각각 3389(Windows) 또는 22(Linux) 포트에서 인바운드 트래픽을 구성합니다. 서브넷 수준 NSG 규칙별로 트래픽이 차단될 수 있으므로 Batch 컴퓨팅 노드를 포함하는 서브넷의 특정 MPI(메시지 전달 인터페이스) 런타임을 사용하는 다중 인스턴스 작업에 지원이 필요한 경우 Linux에서 SSH 트래픽을 허용해야 할 수도 있습니다. MPI 트래픽은 일반적으로 개인 IP 주소 공간에 있지만 MPI 런타임과 런타임 구성마다 다를 수 있습니다. 그러나 풀 컴퓨팅 노드를 사용하기 위해 이러한 포트에서 반드시 트래픽을 허용할 필요는 없습니다. 풀 엔드포인트를 구성하여 이러한 포트에서 기본 원격 액세스를 사용하지 않도록 설정할 수도 있습니다.

아웃바운드 보안 규칙

대상 서비스 태그 대상 포트 프로토콜 풀 통신 모드 Required
BatchNodeManagement.region서비스 태그 443 * 기본
Storage.region서비스 태그 443 TCP 클래식

BatchNodeManagement로 아웃바운드합니다. 작업 관리자 작업을 사용하거나 작업이 Batch 서비스와 다시 통신해야 하는 경우 classic 풀 통신 모드에서 영역 서비스 태그가 필요합니다. simplified 풀 통신 모드에서 BatchNodeManagement.region에 대한 아웃바운드의 경우 Batch 서비스는 현재 TCP 프로토콜만 사용하지만 향후 호환성을 위해 UDP가 필요할 수 있습니다. simplified 통신 모드를 사용하고 노드 관리 프라이빗 엔드포인트가 있는 공용 IP 주소가 없는 풀의 경우 NSG가 필요하지 않습니다. BatchNodeManagement.region 서비스 태그의 아웃바운드 보안 규칙에 대한 자세한 내용은 단순화된 컴퓨팅 노드 통신 사용을 참조하세요.

Azure Portal의 가상 네트워크 사용하여 풀 만들기

가상 네트워크를 만들고 이 가상 네트워크에 서브넷을 할당한 후에는 해당 가상 네트워크를 사용하여 Batch 풀을 만들 수 있습니다. Azure Portal에서 풀을 만들려면 다음 단계를 수행합니다.

  1. Azure Portal 위쪽의 검색 창에서 배치 계정을 검색하여 선택합니다. 배치 계정 선택 이 계정은 사용할 가상 네트워크가 포함된 리소스 그룹과 동일한 구독 및 지역에 있어야 합니다.

  2. 왼쪽 탐색 메뉴에서 을 선택합니다.

  3. 창에서 추가 명령을 선택합니다.

    배치 계정의 풀 페이지의 왼쪽 이동 및 추가 단추에 풀 옵션을 강조 표시 중인 스크린샷

  4. 풀 추가 페이지에서 옵션을 선택하고 풀에 대한 정보를 입력합니다. 배치 계정 관련 풀을 만드는 자세한 내용은 컴퓨팅 노드 풀 만들기를 참조하세요. 노드 크기, 대상 전용 노드, 대상 스폿/낮은 우선 순위 노드 및 나머지 원하는 옵션 설정.

  5. 가상 네트워크에서 사용할 가상 네트워크와 서브넷을 선택합니다.

  6. 확인을 선택하여 풀을 만듭니다.

Important

풀에서 사용 중인 서브넷을 삭제하려고 하면 오류 메시지가 표시됩니다. 서브넷을 사용하는 모든 풀은 해당 서브넷을 삭제하기 전에 삭제해야 합니다.

강제 터널링을 위한 사용자 정의 경로

조직에서 검사와 로깅을 위해 서브넷에서 인터넷으로 가는 트래픽을 온-프레미스 위치로 다시 리디렉션(강제)해야 하는 요구 사항이 있을 수 있습니다. 또한 가상 네트워크에서 서브넷에 강제 터널링을 사용할 수 있습니다.

강제 터널링을 사용하는 가상 네트워크에서 풀의 노드가 작동하도록 해당 서브넷에 대해 다음 UDR(사용자 정의 경로)을 추가해야 합니다.

클래식 통신 모드 풀의 경우:

  • Batch 서비스는 작업 예약을 위해 노드와 통신해야 합니다. 이 통신을 사용하려면 Batch 계정이 있는 지역에서 BatchNodeManagement.region서비스 태그에 해당하는 UDR을 추가합니다. 다음 홉 형식인터넷으로 설정합니다.

  • 대상 포트 443(특히 *.table.core.windows.net, *.queue.core.windows.net, *.blob.core.windows.net 형식의 URL)에서 온-프레미스 네트워크가 Azure Storage에 대한 아웃바운드 TCP 트래픽을 차단하지 않는지 확인합니다.

노드 관리 프라이빗 엔드포인트를 사용하지 않는 단순화된 통신 모드 풀의 경우:

  • 대상 포트 443의 Azure Batch BatchNodeManagement.영역 서비스 태그에 대한 아웃바운드 TCP/UDP 트래픽을 온-프레미스 네트워크가 차단하지 않는지 확인합니다. 현재는 TCP 프로토콜만 사용되지만 향후 호환성을 위해 UDP가 필요할 수 있습니다.

모든 풀의 경우:

  • 가상 파일 탑재를 사용하는 경우 네트워킹 요구 사항을 검토하고 필요한 트래픽이 차단되지 않았는지 확인합니다.

Warning

Batch 서비스 IP 주소는 시간이 지남에 따라 변경될 수 있습니다. Batch 서비스 IP 주소 변경으로 인한 중단을 방지하려면 IP 주소를 직접 지정하지 마세요. 대신 BatchNodeManagement.region서비스 태그를 사용합니다.

다음 단계