View a markdown version of this page

가 없는 상태에서 RUNNABLE에 멈춘 작업의 일반적인 원인 statusReason - AWS Batch

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

가 없는 상태에서 RUNNABLE에 멈춘 작업의 일반적인 원인 statusReason

CloudWatch Events로부터 이벤트를 받지 못했거나 이유를 알 수 없는 이벤트를 받은 경우 이 문제의 몇 가지 일반적인 원인은 다음과 같습니다.

컴퓨팅 리소스에 awslogs 로그 드라이버가 구성되어 있지 않음

AWS Batch 작업은 로그 정보를 CloudWatch Logs로 전송합니다. 이를 위해서는 awslogs 로그 드라이버를 사용할 수 있도록 컴퓨팅 리소스를 구성해야 합니다. Amazon ECS에 최적화된 AMI(또는 Amazon Linux)를 기반으로 컴퓨팅 리소스 AMI를 구축한다고 가정해 보겠습니다. 그러면 이 드라이버가 ecs-init 패키지에 기본적으로 등록됩니다. 이제 다른 기본 AMI를 사용한다고 가정해 보겠습니다. 그러면 Amazon ECS 컨테이너 에이전트가 시작될 때 ECS_AVAILABLE_LOGGING_DRIVERS 환경 변수를 사용하여 awslogs 로그 드라이버를 사용 가능한 로그 드라이버로 지정해야 합니다. 자세한 내용은 컴퓨팅 리소스 AMI 사양자습서: 컴퓨팅 리소스 AMI 생성 섹션을 참조하세요.

리소스 부족

작업 정의에서 CPU 또는 메모리 리소스가 컴퓨팅 리소스가 할당할 수 있는 크기를 초과하여 지정되어 있으면 작업이 배치되지 않습니다. 예를 들어 작업에 4GiB의 메모리가 지정되어 있고 컴퓨팅 리소스의 메모리가 사용 가능한 메모리보다 적다고 가정해 보겠습니다. 그러면 해당 컴퓨팅 리소스에 작업을 배치할 수 없는 경우가 발생합니다. 이러한 경우에는 작업 정의에서 지정한 메모리 크기를 줄이거나, 혹은 용량이 더욱 큰 컴퓨팅 리소스를 환경에 추가해야 합니다. 일부 메모리는 Amazon ECS 컨테이너 에이전트 및 기타 중요한 시스템 프로세스용으로 예약되어 있습니다. 자세한 내용은 컴퓨팅 리소스 메모리 관리 단원을 참조하십시오.

컴퓨팅 리소스에 대한 인터넷 액세스 없음

컴퓨팅 리소스는 Amazon ECS 서비스 엔드포인트와 통신하기 위한 액세스 권한이 필요합니다. 이는 인터페이스 VPC 엔드포인트를 통하거나 퍼블릭 IP 주소가 있는 컴퓨팅 리소스를 통해 이루어질 수 있습니다.

인터페이스 VPC 엔드포인트에 대한 자세한 정보는 Amazon Elastic Container Service 개발자 안내서Amazon ECS 인터페이스 VPC 엔드포인트(AWS PrivateLink)를 참조하세요.

인터페이스 VPC 엔드포인트가 구성되어 있지 않고 컴퓨팅 리소스에 퍼블릭 IP 주소가 없는 경우 NAT(Network Address Translation)를 사용하여 이 액세스 권한을 제공해야 합니다. 자세한 내용은 Amazon VPC 사용 설명서NAT 게이트웨이 섹션을 참조하세요. 자세한 내용은 VPC 생성 단원을 참조하십시오.

Amazon EC2 인스턴스 한도 도달

계정이에서 시작할 수 있는 Amazon EC2 인스턴스 수는 EC2 인스턴스 할당량에 따라 AWS 리전 결정됩니다. 일부 인스턴스 유형은 인스턴스 유형마다 할당량이 있습니다. 한도 증가를 요청하는 방법을 포함하여 계정의 Amazon EC2 인스턴스 할당량에 대한 자세한 내용은 Amazon EC2 사용 설명서의 Amazon EC2 서비스 한도를 참조하세요.

Amazon ECS 컨테이너 에이전트가 설치되지 않음

AWS Batch 가 작업을 실행하려면 Amazon Machine Image(AMI) 에 Amazon ECS 컨테이너 에이전트를 설치해야 합니다. Amazon ECS 컨테이너 에이전트는 Amazon ECS에 최적화된 AMI에 기본적으로 설치됩니다. Amazon ECS 컨테이너에 대한 자세한 내용은 Amazon Elastic Container Service 개발자 안내서Amazon ECS 컨테이너 에이전트를 참조하세요.

시작 템플릿에서 장기 실행 사용자 데이터 스크립트

시작 템플릿에 완료하는 데 시간이 오래 걸리는 사용자 데이터 스크립트가 포함된 경우 인스턴스가 Amazon ECS에 등록되기 전에 시간이 초과될 수 있습니다. 이 경우 인스턴스는 작업을 픽업할 수 없게 되어 모든 작업이 RUNNABLE 상태로 유지됩니다. 인스턴스가 Amazon ECS에 등록하고 작업 실행을 시작하려면 모든 사용자 데이터 스크립트가 완료되어야 합니다.

이 문제를 해결하려면 시작 템플릿 사용자 데이터에서 장기 실행 또는 차단 작업을 검토합니다. 실행 시간을 줄이기 위해 스크립트를 최적화하거나, 중요하지 않은 작업을 비동기적으로 실행하거나, 사용자 데이터에서 초기화 로직을 완전히 이동하는 것이 좋습니다. 자세한 내용은 에서 Amazon EC2 시작 템플릿 사용 AWS Batch 단원을 참조하십시오.

자세한 내용은 내 AWS Batch 작업이 RUNNABLE 상태로 멈춰 있는 이유는 무엇인가요?를 참조하세요. re:Post의 .