.NET 클라이언트 라이브러리를 사용하여 Batch 계정에 액세스
이전 단원에서는 Azure Batch 및 Azure Storage 계정을 만들었습니다. 그런 다음 Batch 작업에서 해당 작업에 사용할 수 있도록 ffmpeg 를 애플리케이션으로 업로드했습니다. 시나리오를 한 번 더 살펴보겠습니다.
여러분은 MP4 비디오 파일을 애니메이션 GIF로 변환하는 프로세스를 자동화하려 합니다. 이렇게 하려면 변환을 위해 비디오 파일을 업로드하고, 업로드된 모든 파일에서 병렬로 변환을 시작하고, 진행률을 모니터링하고, 결과를 다운로드할 수 있는 앱을 만듭니다.
이번 단원에서는 이전 연습에서 만든 Batch 및 Storage 계정에 액세스하는 데 사용할 수 있는 Azure Batch 클라이언트 라이브러리를 살펴보겠습니다.
Azure 클라이언트 라이브러리
앱을 가져올 때 필요한 두 가지 NuGet 패키지가 있습니다. 첫 번째는 Azure Batch 클라이언트 라이브러리 Microsoft.Azure.Batch
입니다. 이 라이브러리를 사용하여 Azure Batch 풀을 생성 및 삭제하고, 워크로드 작업을 생성 및 삭제하고, 태스크를 생성 및 삭제하고, 실행 중인 태스크를 모니터링할 것입니다.
솔루션에서 사용할 다음 라이브러리는 Azure Storage 클라이언트 라이브러리로, Microsoft.Azure.Storage.Blob
Azure Storage 계정의 파일에 연결하고 관리할 수 있습니다. 이 라이브러리를 사용하여 Blob 스토리지 컨테이너의 파일을 관리할 것입니다. 앱은 폴더에 업로드된 모든 비디오를 검색하고 작업 액세스 권한을 부여하여 작업의 변환된 비디오를 작성합니다.
Azure Batch 관리 라이브러리 Microsoft.Azure.Management.Batch
는 Batch 및 Storage 계정을 수동으로 만들었기 때문에 앱에 필요하지 않은 세 번째 라이브러리입니다.
명령을 사용하여 다음 단 dotnet add package
원에서 필요한 NuGet 패키지를 추가합니다.
일반적인 사용 패턴
이전 라이브러리를 사용하여 일괄 처리 프로세스를 설정하는 일반적인 방법은 다음과 같습니다.
- Batch 서비스 계정(Batch 관리 API)을 만듭니다.
- Storage 계정(Storage API)을 만듭니다.
- 파일 처리(Storage API)를 관리하는 Blob 클라이언트를 만듭니다.
- 처리할 파일 업로드(Storage API).
- 컴퓨팅 노드 풀을 만듭니다(Batch API).
- 해당 노드에서 실행할 작업을 만듭니다(Batch API).
- 실행할 작업에 태스크를 추가합니다(Batch API).
- 작업의 진행률(Batch API)을 모니터링합니다.
- 완료되면 처리된 파일을 다운로드합니다(Storage API).
- 입력 스토리지 컨테이너를 삭제하고, 풀을 삭제하고, 작업을 삭제합니다(Batch API 및 Storage API).
Azure Batch 풀
Azure Batch의 강력한 기능 중 하나는 컴퓨팅 리소스를 관리하는 방식입니다. 리소스 풀을 정의하면 Azure Batch를 특정 노드 수로 유연하게 설정할 수 있습니다. 처리 크기가 잘 정의되어 있고 알려진 고정 비용이 있어야 하는 경우 이 옵션을 사용하는 것이 좋습니다. 다른 옵션으로 사용자가 정의하는 수식에 따라 풀이 자동으로 강화 또는 축소되도록 허용할 수 있습니다. 이 방법은 수요의 변동을 고려하여 애플리케이션이 해당 수요에 맞게 확장되도록 허용할 수 있습니다. 또한 이 방법은 비용을 최대한 낮게 유지하는 추가적인 이점이 있습니다.
Azure Batch 풀을 만들 때 다음 특성을 지정합니다.
- 원하는 노드 수(기본 제한은 100)
- 노드의 운영 체제 및 버전(Windows 및 Linux 이미지를 사용할 수 있는 범위)
- 노드 유형, 전용 또는 우선 순위가 낮은 노드(전용 노드는 비용이 더 많이 들지만 선점되지 않습니다. 우선 순위가 낮은 노드는 지역의 잉여 용량을 활용하기 때문에 저렴하지만 리소스가 다른 곳에서 필요한 경우 작업이 일시 중단될 수 있음)
- CPU, 메모리 및 스토리지 크기로 노드의 성능
- 자동 크기 조정 정책(크기 조정은 지정한 수식에 의해 제어됩니다. 예를 들어 사용 중인 CPU 비율에 따라)
- 태스크 일정 정책(한 노드에서 병렬로 실행할 수 있는 최대 태스크 수를 제어하고, 노드 간에 태스크를 분산하는 방법을 선택)
- 노드가 부팅될 때 수행할 시작 작업(필수 애플리케이션을 설치하는 등의 작업을 실행할 수 있도록 노드를 설정하는 데 사용됨)
- 네트워크 구성(서브넷 및 VNet 옵션)
- 애플리케이션 패키지(풀의 모든 노드에 애플리케이션을 쉽게 배포할 수 있음)