Azure Portal을 사용하여 Batch 작업 만들기
Azure Batch는 클라우드에서 대규모 애플리케이션을 효율적으로 실행합니다. 인프라를 관리하지 않고도 컴퓨팅 집약적인 작업을 예약하고 솔루션에 대한 리소스를 동적으로 조정할 수 있습니다. Azure Batch는 컴퓨팅 노드(가상 머신 또는 VM) 풀을 만들고 관리하며, 사용자가 실행하려는 애플리케이션을 설치하고 컴퓨팅 노드에서 실행할 작업을 예약할 수 있습니다.
Azure Batch를 사용하여 대규모 실행이 필요한 SaaS(서비스 제공 소프트웨어) 애플리케이션 또는 클라이언트 애플리케이션을 빌드할 수 있습니다. 예를 들어 Batch를 사용하여 금융 서비스 회사에 대한 몬테카를로 시뮬레이션을 실행하거나 많은 이미지를 처리하는 서비스를 빌드할 수 있습니다.
Azure Batch 작동 방식
아래 다이어그램에 표시된 것과 같이 Azure Batch에 대한 일반적인 실제 시나리오에는 데이터 및 애플리케이션 파일이 필요합니다. Batch 워크플로는 Azure 스토리지 계정에 이러한 데이터 및 애플리케이션 파일을 업로드하며 시작됩니다. 수요를 기반으로 필요한 만큼 Windows 또는 Linux 가상 컴퓨팅 노드를 사용하여 Batch 풀을 만듭니다. 수요가 증가하면 컴퓨팅 노드의 크기를 자동으로 조정할 수 있습니다.
다이어그램은 다음 두 부분으로 생각해 볼 수 있습니다.
- 사용자 서비스
- 백그라운드의 컴퓨팅 플랫폼인 Batch
서비스는 Batch를 통해 컴퓨팅 집약적인 작업을 완료하고, Azure 스토리지를 통해 결과를 검색하는 플랫폼으로 Azure를 사용합니다. 백그라운드에서 풀은 가상 머신의 컬렉션입니다. 풀은 작업과 태스크가 실행되는 리소스입니다.
Batch는 Azure Storage를 사용하여 가상 머신에서 작업을 완료하는 데 필요한 데이터를 가져오거나 작업 출력을 씁니다. 서비스는 Batch API를 통해 작업 및 태스크 진행률을 모니터링할 수 있습니다. 그러면 서비스는 작업과 태스크가 완료된 후 Azure Storage에서 결과를 검색할 수 있습니다.
가상 네트워크에서 Azure Batch 풀 만들기
Batch 작업을 실행하려면 Batch 계정에 풀을 추가해야 합니다. 풀은 Batch 작업을 실행하는 데 필요한 컴퓨팅 노드를 포함합니다. 컴퓨팅 노드는 작업을 구성하는 태스크를 처리하는 가상 머신입니다. 풀을 만들 때 수요에 따라 노드 수, 크기 및 운영 체제를 지정할 수 있습니다.
Batch 서비스는 각 풀 노드에서 실행되는 Batch 노드 에이전트와 통신해야 합니다. 예를 들어 서비스는 작업을 실행 또는 중지하거나 작업용 파일을 가져올 것을 노드 에이전트에 지시합니다. 하나 이상의 부하 분산 장치에서 풀 노드 에이전트와 통신할 수 있습니다. 부하 분산 장치 수는 풀의 노드 수에 따라 달라집니다.
부하 분산 장치는 원하는 풀 노드에 통신을 전달합니다. 각 노드에는 고유한 포트 번호가 있습니다. 기본적으로 부하 분산 장치에는 연결된 공용 IP가 있습니다.
RDP(원격 데스크톱 프로토콜) 또는 SSH를 통해 풀 노드에 원격으로 액세스하는 것도 가능하며, 이는 기본적으로 사용하도록 설정되어 있습니다. 통신은 다시 부하 분산 장치 엔드포인트를 통해 이루어집니다.
Azure Batch 풀을 만들면 지정한 Azure 가상 네트워크의 하위 집합에서 풀을 프로비전할 수 있습니다. 풀의 컴퓨팅 노드는 별도의 가상 네트워크 없이도 다중 인스턴스 작업을 위해 서로 통신할 수 있습니다. 기본적으로 공용 IP가 있는 엔드포인트는 Batch 계정, Batch 풀, 풀 노드와 통신하는 데 사용됩니다.
Azure 가상 네트워크 및 서브넷
가상 네트워크는 Azure에서 프라이빗 네트워크의 기본 구성 요소입니다. 가상 네트워크는 가상 머신과 같은 다양한 형식의 Azure 리소스가 상호 간 통신, 인터넷 통신 및 온-프레미스 네트워크 통신을 안전하게 수행할 수 있게 해줍니다.
가상 네트워크는 자체 데이터 센터에서 운영하는 기존 네트워크와 유사하지만 규모, 가용성 및 격리와 같은 더 많은 Azure 인프라 이점을 제공합니다.
가상 네트워크를 사용하여 수행할 수 있는 주요 시나리오는 다음과 같습니다.
- Azure 리소스와 인터넷 간의 통신
- Azure 리소스 간 통신
- 온-프레미스 리소스와의 통신
- 네트워크 트래픽 필터링
- 네트워크 트래픽 라우팅
- Azure 서비스와의 통합
서브넷은 가상 네트워크 내 IP 주소의 범위입니다. 조직 및 보안을 위해 가상 네트워크를 여러 서브넷으로 나눌 수 있습니다. 가상 네트워크를 설정할 때 사용 가능한 주소 공간과 서브넷을 포함하여 토폴로지를 지정합니다. 가상 네트워크를 다른 가상 네트워크 또는 온-프레미스 네트워크에 연결하려면 중첩되지 않는 주소 범위를 선택해야 합니다.
서브넷 사이에는 보안 경계가 없으므로 각 서브넷의 VM이 서로 통신할 수 있지만, 서브넷과 VM 간의 트래픽 흐름을 제어할 수 있는 네트워크 보안 그룹을 설정할 수 있습니다.