.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.BlobAzure Storage 계정의 파일에 연결하고 관리할 수 있습니다. 이 라이브러리를 사용하여 Blob 스토리지 컨테이너의 파일을 관리할 것입니다. 앱은 폴더에 업로드된 모든 비디오를 검색하고 작업 액세스 권한을 부여하여 작업의 변환된 비디오를 작성합니다.

Azure Batch 관리 라이브러리 Microsoft.Azure.Management.Batch는 Batch 및 Storage 계정을 수동으로 만들었기 때문에 앱에 필요하지 않은 세 번째 라이브러리입니다.

명령을 사용하여 다음 단 dotnet add package 원에서 필요한 NuGet 패키지를 추가합니다.

일반적인 사용 패턴

이전 라이브러리를 사용하여 일괄 처리 프로세스를 설정하는 일반적인 방법은 다음과 같습니다.

  1. Batch 서비스 계정(Batch 관리 API)을 만듭니다.
  2. Storage 계정(Storage API)을 만듭니다.
  3. 파일 처리(Storage API)를 관리하는 Blob 클라이언트를 만듭니다.
  4. 처리할 파일 업로드(Storage API).
  5. 컴퓨팅 노드 풀을 만듭니다(Batch API).
  6. 해당 노드에서 실행할 작업을 만듭니다(Batch API).
  7. 실행할 작업에 태스크를 추가합니다(Batch API).
  8. 작업의 진행률(Batch API)을 모니터링합니다.
  9. 완료되면 처리된 파일을 다운로드합니다(Storage API).
  10. 입력 스토리지 컨테이너를 삭제하고, 풀을 삭제하고, 작업을 삭제합니다(Batch APIStorage API).

Azure Batch 풀

Azure Batch의 강력한 기능 중 하나는 컴퓨팅 리소스를 관리하는 방식입니다. 리소스 풀을 정의하면 Azure Batch를 특정 노드 수로 유연하게 설정할 수 있습니다. 처리 크기가 잘 정의되어 있고 알려진 고정 비용이 있어야 하는 경우 이 옵션을 사용하는 것이 좋습니다. 다른 옵션으로 사용자가 정의하는 수식에 따라 풀이 자동으로 강화 또는 축소되도록 허용할 수 있습니다. 이 방법은 수요의 변동을 고려하여 애플리케이션이 해당 수요에 맞게 확장되도록 허용할 수 있습니다. 또한 이 방법은 비용을 최대한 낮게 유지하는 추가적인 이점이 있습니다.

Azure Batch 풀을 만들 때 다음 특성을 지정합니다.

  • 원하는 노드 수(기본 제한은 100)
  • 노드의 운영 체제 및 버전(Windows 및 Linux 이미지를 사용할 수 있는 범위)
  • 노드 유형, 전용 또는 우선 순위가 낮은 노드(전용 노드는 비용이 더 많이 들지만 선점되지 않습니다. 우선 순위가 낮은 노드는 지역의 잉여 용량을 활용하기 때문에 저렴하지만 리소스가 다른 곳에서 필요한 경우 작업이 일시 중단될 수 있음)
  • CPU, 메모리 및 스토리지 크기로 노드의 성능
  • 자동 크기 조정 정책(크기 조정은 지정한 수식에 의해 제어됩니다. 예를 들어 사용 중인 CPU 비율에 따라)
  • 태스크 일정 정책(한 노드에서 병렬로 실행할 수 있는 최대 태스크 수를 제어하고, 노드 간에 태스크를 분산하는 방법을 선택)
  • 노드가 부팅될 때 수행할 시작 작업(필수 애플리케이션을 설치하는 등의 작업을 실행할 수 있도록 노드를 설정하는 데 사용됨)
  • 네트워크 구성(서브넷 및 VNet 옵션)
  • 애플리케이션 패키지(풀의 모든 노드에 애플리케이션을 쉽게 배포할 수 있음)