INVALID 컴퓨팅 환경
관리형 컴퓨팅 환경을 잘못 구성했을 수 있습니다. 잘못 구성한 경우 컴퓨팅 환경이 INVALID 상태가 되어 배치 작업을 수락할 수 없습니다. 다음 섹션에서는 발생 가능한 원인과 원인에 따른 문제 해결 방법을 설명합니다.
중요
AWS Batch는 사용자를 대신하여 계정 내에서 Amazon EC2 시작 템플릿, Amazon EC2 Auto Scaling 그룹, Amazon EC2 스팟 플릿 및 Amazon ECS 클러스터를 포함한 여러 AWS 리소스를 생성하고 관리합니다. 이러한 관리형 리소스는 최적의 AWS Batch 작동을 보장하도록 특별히 구성됩니다. AWS Batch 설명서에 명시되어 있지 않는 한 이러한 배치 관리형 리소스를 수동으로 수정하면 INVALID 컴퓨팅 환경에 예상치 못한 동작이 발생하여 최적화되지 않은 인스턴스 규모 조정 동작, 워크로드 프로세싱 지연 또는 예상치 못한 비용을 유발할 수 있습니다. 이러한 수동 수정은 AWS Batch 서비스에서 결정론적으로 지원할 수 없습니다. 항상 지원되는 배치 API 또는 배치 콘솔을 사용하여 컴퓨팅 환경을 관리하세요.
부정확한 역할 이름 또는 ARN
컴퓨팅 환경이 INVALID 상태로 전환되는 가장 일반적인 원인은 AWS Batch 서비스 역할 또는 Amazon EC2 스팟 플릿 역할에 부정확한 이름 또는 Amazon 리소스 이름(ARN)이 있기 때문입니다. 이는 AWS CLI 또는 AWS SDK를 사용하여 생성된 컴퓨팅 환경에서 더 흔히 발생합니다. AWS Management 콘솔에서 컴퓨팅 환경을 생성하면 AWS Batch는 올바른 서비스 또는 스팟 플릿 역할을 선택하는 데 도움이 됩니다. 그러나 이름 또는 ARN을 수동으로 입력하지만 잘못 입력한다고 가정해 보겠습니다. 그러면 컴퓨팅 환경 결과도 마찬가지로 INVALID입니다.
그러나 AWS CLI 명령 또는 SDK 코드에 IAM 리소스의 이름 또는 ARN을 수동으로 입력한다고 가정해 보겠습니다. 이 경우 AWS Batch는 문자열의 유효성을 검사할 수 없습니다. 대신 AWS Batch는 잘못된 값을 수락하고 환경 생성을 시도해야 합니다. AWS Batch가 환경을 생성하지 못하게 되면 환경이 INVALID 상태로 바뀌고, 다음과 같은 오류 메시지가 표시됩니다.
유효하지 않은 서비스 역할인 경우:
CLIENT_ERROR - Not authorized to perform sts:AssumeRole (Service:
AWSSecurityTokenService; Status Code: 403; Error Code: AccessDenied; Request ID:
dc0e2d28-2e99-11e7-b372-7fcc6fb65fe7)
유효하지 않은 스팟 집합 역할인 경우:
CLIENT_ERROR - Parameter: SpotFleetRequestConfig.IamFleetRole is invalid. (Service:
AmazonEC2; Status Code: 400; Error Code: InvalidSpotFleetRequestConfig; Request ID:
331205f0-5ae3-4cea-bac4-897769639f8d) Parameter: SpotFleetRequestConfig.IamFleetRole is
invalid
이 문제가 발생하는 한 가지 일반적인 원인은 다음 시나리오입니다. 전체 Amazon 리소스 이름(ARN) 대신 AWS CLI 또는 AWS SDK를 사용할 때만 IAM 역할 이름을 지정합니다. 역할을 생성한 방식에 따라 ARN에 aws-service-role 경로 접두사가 포함될 수도 있습니다. 예를 들어 AWS Batch의 서비스 링크 역할 사용의 절차를 사용하여 AWS Batch 서비스 역할을 수동으로 생성하는 경우 서비스 역할 ARN은 다음과 같을 수 있습니다.
arn:aws:iam::123456789012:role/AWSBatchServiceRole
하지만 오늘 콘솔을 처음 실행할 때 서비스 역할을 만든 경우에는 서비스 역할 ARN은 다음과 같을 수 있습니다.
arn:aws:iam::123456789012:role/aws-service-role/AWSBatchServiceRole
이 문제는 AWS Batch 서비스 수준 정책(AWSBatchServiceRole)을 비서비스 역할에 연결하는 경우에도 발생할 수 있습니다. 예를 들어, 이 시나리오에서는 다음과 유사한 오류 메시지가 표시될 수 있습니다.
CLIENT_ERROR - User: arn:aws:sts::account_number:assumed-role/batch-replacement-role/aws-batch is not authorized to perform:actionon resource ...
이 문제를 해결하려면 다음 중 한 가지를 사용합니다.
-
AWS Batch 컴퓨팅 환경을 생성할 때 서비스 역할에 빈 문자열을 사용합니다.
-
arn:aws:iam::형식으로 서비스 역할을 지정합니다.account_number:role/aws-service-role/batch.amazonaws.com/AWSServiceRoleForBatch
AWS CLI 또는 AWS SDK를 사용할 때 IAM 역할 이름만 지정하면 AWS Batch는 ARN이 aws-service-role 경로 접두사를 사용하지 않는다고 가정합니다. 이러한 이유로, 컴퓨팅 환경을 생성할 때는 IAM 역할의 전체 ARN을 지정하는 것이 좋습니다.
이와 같이 잘못 구성된 컴퓨팅 환경을 복원하려면 INVALID 컴퓨팅 환경 복원 섹션을 참조하세요.
INVALID 컴퓨팅 환경 복원
INVALID 상태의 컴퓨팅 환경이 있는 경우에는 업데이트를 통해 유효하지 않은 파라미터를 복원합니다. 부정확한 역할 이름 또는 ARN의 경우에는 올바른 서비스 역할을 사용하여 컴퓨팅 환경을 업데이트합니다.
잘못 구성된 컴퓨팅 환경을 복원하려면
-
https://console.aws.amazon.com/batch/
에서 AWS Batch 콘솔을 엽니다. -
탐색 모음에서 사용할 AWS 리전(을)를 선택합니다.
-
탐색 창에서 컴퓨팅 환경을 선택합니다.
-
컴퓨팅 환경 페이지에서 편집할 컴퓨팅 환경 옆의 라디오 버튼을 선택한 다음 편집을 선택합니다 .
-
컴퓨팅 환경 업데이트 페이지의 서비스 역할에서 컴퓨팅 환경에 사용할 IAM 역할을 선택합니다. AWS Batch 콘솔에는 컴퓨팅 환에 대해 올바른 신뢰 관계를 가지고 있는 역할만 표시됩니다.
작은 정보
서비스 연결 역할을 생성하는 방법에 대한 지침은 AWS Batch에 대한 역할 사용 섹션을 참조하세요.
-
저장을 선택하여 컴퓨팅 환경을 업데이트합니다.