컴퓨팅 환경 - AWS Batch

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

컴퓨팅 환경

작업 대기열은 하나 이상의 컴퓨팅 환경에 매핑됩니다. 컴퓨팅 환경에는 컨테이너화된 배치 작업을 실행하는 데 사용되는 Amazon ECS 컨테이너 인스턴스가 있습니다. 하나의 특정 컴퓨팅 환경은 한하나 이상의 작업 대기열에 매핑될 수도 있습니다. 작업 대기열 내에서, 각각의 연결된 컴퓨팅 환경은 실행 준비가 완료된 작업을 스케줄러가 어디에 배치할지를 결정하는 데 사용하는 순서를 갖습니다. 첫 번째 컴퓨팅 환경이 VALID의 상태이고 사용 가능한 리소스가 있으면 작업은 해당 컴퓨팅 환경 내의 컨테이너 인스턴스에 스케줄 됩니다. 첫 번째 컴퓨팅 환경이 INVALID의 상태이고 컴퓨팅 환경에서 적절한 컴퓨팅 리소스를 제공할 수 없는 경우 스케줄러는 다음 컴퓨팅 환경에서 작업을 실행하기 위해 시도합니다.

관리형 컴퓨팅 환경

관리형 컴퓨팅 환경을 사용하여 환경 내 컴퓨팅 리소스의 용량 및 인스턴스 유형을 AWS Batch 관리할 수 있습니다. 컴퓨팅 환경을 생성할 때 사용자가 정의한 컴퓨팅 리소스 사양을 기반으로 합니다. 사용자는 Amazon EC2 온디맨드 인스턴스와 Amazon EC2 스팟 인스턴스 사용을 선택할 수 있습니다. 또는 관리형 컴퓨팅 환경에서 Fargate 및 Fargate 스팟 용량을 대신 사용할 수 있습니다. 스팟 인스턴스를 사용할 때 사용자는 선택적으로 최고 가격을 설정할 수 있습니다. 이렇게 하면 스팟 인스턴스는 스팟 인스턴스 가격이 온디맨드 가격에 대해 지정한 비율(%) 이하일 경우에만 시작합니다.

중요

Fargate 스팟 인스턴스는 에서 지원되지 않습니다. Windows containers on AWS Fargate Fargate Spot 컴퓨팅 환경만 사용하는 FargateWindows 작업 대기열에 작업을 제출하면 작업 대기열이 차단됩니다.

관리형 컴퓨팅 환경은 지정한 VPC와 서브넷에서 Amazon EC2 인스턴스를 시작한 다음 Amazon ECS 클러스터에 등록합니다. Amazon EC2 인스턴스는 Amazon ECS 서비스 엔드포인트와 통신하기 위해 외부 네트워크에 액세스해야 합니다. 일부 서브넷은 Amazon EC2 인스턴스에 퍼블릭 IP 주소를 제공하지 않습니다. Amazon EC2 인스턴스 컴퓨팅 리소스에 퍼블릭 IP 주소가 없는 경우, Network Address Translation(NAT)를 사용해야 합니다. 자세한 내용은 Amazon VPC 사용 설명서NAT 게이트웨이 섹션을 참조하세요. VPC 생성 방법에 대한 자세한 내용은 가상 사설 클라우드 생성 섹션을 참조하십시오.

기본적으로 AWS Batch 관리형 컴퓨팅 환경은 승인된 최신 버전의 Amazon ECS 최적화 AMI를 컴퓨팅 리소스에 사용합니다. 그러나 여러 가지 이유로 관리형 컴퓨팅 환경에 사용할 자체 AMI 생성을 원할 수 있습니다. 자세한 정보는 컴퓨팅 리소스 AMI을 참조하세요.

참고

AWS Batch AMI를 생성한 후에는 컴퓨팅 환경에서 AMI를 자동으로 업그레이드하지 않습니다. 예를 들어 Amazon ECS 최적화 AMI의 최신 버전이 릴리스된 경우 컴퓨팅 환경에서 AMI를 업데이트 하지 않습니다. 게스트 운영 체제의 관리는 사용자의 책임입니다. 여기에는 모든 업데이트 및 보안 패치 적용이 포함됩니다. 또한 사용자는 컴퓨팅 리소스에 설치하는 추가 애플리케이션 소프트웨어 또는 유틸리티에 대해서도 책임이 있습니다. AWS Batch 작업에 새 AMI를 사용하는 방법은 두 가지가 있습니다. 원래 방법은 다음 단계를 완료하는 것입니다.

  1. 새 AMI로 새 컴퓨팅 환경을 생성합니다.

  2. 기존 작업 대기열에 컴퓨팅 환경을 추가합니다.

  3. 작업 대기열에서 이전 컴퓨팅 환경을 제거합니다.

  4. 이전 컴퓨팅 환경을 삭제합니다.

2022년 4월에는 컴퓨팅 환경 업데이트에 대한 향상된 지원이 AWS Batch 추가되었습니다. 자세한 정보는 컴퓨팅 환경 업데이트을 참조하세요. 컴퓨팅 환경의 향상된 업데이트를 사용하여 AMI를 업데이트하려면 다음 규칙을 따르세요.

  • service role (serviceRole) 매개변수를 설정하지 않거나 AWSServiceRoleForBatch서비스 연결 역할로 설정하지 마세요.

  • 할당 전략(allocationStrategy) 파라미터를 BEST_FIT_PROGRESSIVE, SPOT_CAPACITY_OPTIMIZED, 또는 SPOT_PRICE_CAPACITY_OPTIMIZED로 설정합니다.

  • 최신 이미지 버전으로 업데이트(updateToLatestImageVersion) 파라미터를 true으로 설정합니다.

  • imageId, imageIdOverride(ec2Configuration) 또는 시작 템플릿(launchTemplate)에 AMI ID를 지정하지 마십시오. 이 경우 인프라 업데이트가 시작될 AWS Batch 때 지원되는 최신 Amazon ECS 최적화 AMI를 AWS Batch 선택합니다. imageId 또는 imageIdOverride 파라미터에 AMI ID를 지정하거나 LaunchTemplate 속성으로 식별되는 시작 템플릿을 지정할 수도 있습니다. 이러한 속성을 변경하면 인프라 업데이트가 시작됩니다. 시작 템플릿에 AMI ID가 지정되면 imageId 또는 imageIdOverride 파라미터에 AMI ID를 지정한다고 이를 바꿀 수 없습니다. 다른 시작 템플릿을 지정해야만 교체할 수 있습니다. 또는, 시작 템플릿 버전이 $Default 혹은 $Latest로 설정되면 시작 템플릿의 새 기본 버전을 설정하거나($Default인 경우), 새로운 버전의 시작 템플릿을 추가하여($Latest인 경우) 대체할 수 있습니다.

이러한 규칙을 준수하면 인프라 업데이트를 시작하는 업데이트 시 AMI ID가 다시 선택됩니다. 시작 템플릿(launchTemplate)의 version 설정이 $Latest 또는 $Default으로 설정된 경우, launchTemplate이 업데이트되어 있지 않더라도 인프라 업데이트 시 시작 템플릿의 최신 버전 또는 기본 버전이 평가됩니다.

다중 노드 병렬 작업 생성 시 고려 사항

AWS Batch 다중 노드 병렬 (MNP) 작업과 비 MNP 작업을 실행하기 위한 전용 컴퓨팅 환경을 만들 것을 권장합니다. 이는 관리형 컴퓨팅 환경에서 컴퓨팅 용량이 생성되는 방식 때문입니다. 새 관리형 컴퓨팅 환경을 생성할 때 0보다 큰 minvCpu 값을 지정하면 AWS Batch 는 비 MNP 작업에만 사용할 인스턴스 풀을 생성합니다. 다중 노드 병렬 작업이 제출된 경우 다중 노드 병렬 작업을 실행하기 위한 새 인스턴스 용량을 AWS Batch 생성합니다. minvCpus또는 maxvCpus 값이 설정된 동일한 컴퓨팅 환경에서 단일 노드 및 다중 노드 병렬 작업이 모두 실행되는 경우, 필요한 컴퓨팅 리소스를 사용할 수 없는 경우 현재 작업이 AWS Batch 완료될 때까지 기다렸다가 새 작업을 실행하는 데 필요한 컴퓨팅 리소스를 생성합니다.

비 관리형 컴퓨팅 환경

비관리형 컴퓨팅 환경에서는 컴퓨팅 리소스를 직접 관리해야 합니다. 사용자 컴퓨팅 리소스에 사용하는 AMI가 Amazon ECS 컨테이너 인스턴스 AMI 사양을 충족하는지 확인해야 합니다. 자세한 내용은 컴퓨팅 리소스 AMI 사양컴퓨팅 리소스 AMI 생성 섹션을 참조하세요.

참고

AWS 관리되지 않는 컴퓨팅 환경에서는 Fargate 리소스가 지원되지 않습니다.

비관리형 컴퓨팅 환경을 만든 후에는 DescribeComputeEnvironmentsAPI 작업을 사용하여 컴퓨팅 환경 세부 정보를 확인하십시오. 환경과 연결된 Amazon ECS 클러스터를 찾은 후 해당 Amazon ECS 클러스터에서 컨테이너 인스턴스를 수동으로 시작합니다.

다음 AWS CLI 명령은 Amazon ECS 클러스터 ARN도 제공합니다.

$ aws batch describe-compute-environments \ --compute-environments unmanagedCE \ --query "computeEnvironments[].ecsClusterArn"

자세한 내용을 알아보려면 Amazon Elastic Container Service 개발자 안내서Amazon ECS 컨테이너 인스턴스 시작을 참조하세요. 사용자 컴퓨팅 리소스를 시작할 때 리소스가 다음 Amazon EC2 사용자 데이터에 등록해야 하는 Amazon ECS 클러스터 ARN을 지정합니다. 이전 ecsClusterArn명령으로 얻은 클러스터 ARN으로 대체합니다.

#!/bin/bash echo "ECS_CLUSTER=ecsClusterArn" >> /etc/ecs/ecs.config