AWS Batch에서 유효하지 않은 컴퓨팅 환경을 수정하려면 어떻게 해야 하나요?

최종 업데이트 날짜: 2022년 9월 30일

AWS Batch의 컴퓨팅 환경이 INVALID 상태입니다. 이 오류를 해결하려면 어떻게 해야 합니까?

간략한 설명

다음과 같은 오류 메시지가 표시됩니다. 'CLIENT_ERROR - 기본 ECS 클러스터에 조인한 인스턴스가 없기 때문에 컴퓨팅 환경이INVALIDATED되며 스케일 다운되었습니다. 인스턴스 조인을 방해하는 일반적인 문제로는 ECS와의 통신을 방해하는 VPC/서브넷 구성, ECS에 대한 권한 부여를 방지하는 잘못된 인스턴스 프로파일 정책, ECS 에이전트에 영향을 미치는 사용자 지정 AMI 또는 LaunchTemplate 구성 등이 있습니다.'

인스턴스가 Amazon Elastic Container Service(Amazon ECS) 클러스터에 조인을 방해하는 문제는 다음과 같습니다.

  • Amazon Virtual Private Cloud(VPC) 서브넷 구성 설정은 Amazon ECS와의 성공적인 통신을 방해합니다.
  • 인스턴스 프로파일 정책의 잘못된 설정으로 인해 Amazon ECS에 대한 권한 부여를 방해합니다.
  • ECS 에이전트에 영향을 미치는 사용자 지정 Amazon Machine Image(AMI) 또는 시작 템플릿 구성.

CLIENT_ERROR 메시지는 AWS Batch 컴퓨팅 환경에서 생성한 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스가 ECS 클러스터에 조인하지 못했음을 나타냅니다. CLIENT_ERROR 메시지가 발생하면 AWS Batch는 자동으로 EC2 인스턴스를 종료한 다음 컴퓨팅 환경을 INVALID 상태로 전환합니다.

컴퓨팅 환경이 INVALID 상태인 경우, 수신하는 오류 메시지에 따라 다음 해결 방법 중 하나를 선택합니다.

CLIENT_ERROR - Not authorized to perform sts:AssumeRole
의 단계를 완료 합니다.유효하지 않은 서비스 역할 수정 섹션의 단계를 완료합니다.

CLIENT_ERROR - Parameter: SpotFleetRequestConfig.IamFleetRole is invalid
유효하지 않은 스팟 플릿 역할 수정 섹션의 단계를 완료합니다.

CLIENT_ERROR - The specified launch template, with template ID [xxx], does not exist
컴퓨팅 환경 비활성화 및 삭제 섹션의 단계를 완료합니다.

CLIENT_ERROR - Access denied
올바른 권한이 있는 서비스 역할을 생성하거나 올바른 권한이 있는 기존 서비스 역할을 선택합니다.

Internal Error
컴퓨팅 환경 비활성화 후 활성화 섹션의 단계를 완료합니다.

INVALID CLIENT_ERROR - null
컴퓨팅 환경 비활성화 후 활성화 섹션의 단계를 완료합니다.

CLIENT_ERROR - The request uses the same client token as previous, but non-identical request
컴퓨팅 환경 비활성화 후 활성화 섹션의 단계를 완료합니다.

CLIENT_ERROR - You are not authorized to use launch template
다음을 확인합니다.

  • 서비스 역할을 검토하여 Amazon Elastic Compute Cloud 및 오토 스케일링과 관련된 권한이 부여되어 있는지 확인합니다. 그런 다음 유효하지 않은 서비스 역할 수정(Fix a service role that's not valid) 섹션의 단계를 완료합니다.
  • 계정이 AWS Organizations의 일부인지 그리고 Amazon EC2 권한에 대한 액세스를 차단하는 서비스 제어 정책이 있는지 검토합니다. 그런 다음 필요한 경우 서비스 제어 정책을 업데이트합니다.

해결 방법

유효하지 않은 서비스 역할 수정

1.    AWS Batch 콘솔을 엽니다.

2.    탐색 창에서 컴퓨팅 환경(Compute environments)을 선택합니다.

3.    INVALID 상태인 컴퓨팅 환경을 선택합니다.
참고: 컴퓨팅 환경이 DISABLED 상태인 경우 활성화(Enable)를 선택하여 컴퓨팅 환경을 활성화합니다.

4.    편집(Edit)을 선택합니다.

5.    서비스 역할(Service role)에서 AWS Batch가 다른 AWS 서비스를 호출하는 데 필요한 권한이 있는 서비스 역할을 선택합니다.
중요: 서비스 역할은 서비스에서 사용하는 리소스를 관리합니다. 서비스를 사용하려면 AWS Batch에 필요한 권한을 제공하는 AWS Identity and Access Management(IAM) 정책 및 역할이 있어야 합니다. 권한이 없는 경우 권한이 있는 서비스 역할을 생성해야 합니다.

6.    저장(Save)을 선택합니다.

유효하지 않은 스팟 플릿 역할 수정

Amazon EC2 스팟 플릿 인스턴스를 사용하는 관리형 컴퓨팅 환경의 경우 스팟 플릿에 다음 권한을 부여하는 역할을 생성해야 합니다.

  • 인스턴스에 대한 입찰
  • 인스턴스 시작
  • 인스턴스 태그 지정
  • 인스턴스 종료

스팟 플릿 역할이 없는 경우 다음 단계를 완료하여 컴퓨팅 환경에 사용할 역할을 생성합니다.

1.    IAM 콘솔을 엽니다.

2.    탐색 창에서 [Roles]를 선택합니다.

3.    역할 생성(Create Role)을 선택합니다.

4.    AWS 서비스(AWS service)를 선택합니다. 그런 다음, 생성 중인 역할을 사용할 서비스로 EC2를 선택합니다.

5.    사용 사례 선택(Select your use case) 섹션에서 EC2 스팟 플릿 역할(EC2 Spot Fleet Role)을 선택합니다.
중요: 비슷한 이름의 EC2 - 스팟 플릿(EC2 - Spot Fleet)을 선택하지 마세요.

6.    [다음: 권한]을 선택합니다.

7.    다음: 태그(Next: Tags)를 선택합니다. 그런 후 다음: 검토(Next: Review)를 선택합니다.

8.    역할 이름(Role name)AmazonEC2SpotFleetRole을 입력합니다.

9.    역할 생성(Create Role)을 선택합니다.
참고: 새 스팟 플릿 역할을 사용하여 새 컴퓨팅 환경을 생성합니다. 기존 컴퓨팅 환경은 스팟 플릿 역할을 변경할 수 없습니다. 사용되지 않는 환경을 제거하려면 해당 환경을 비활성화한 다음 삭제합니다.

10.    AWS Batch 콘솔을 엽니다.

11.    탐색 창에서 컴퓨팅 환경(Compute environments)을 선택합니다.

12.    INVALID 상태인 컴퓨팅 환경을 선택합니다. 그런 다음 비활성화(Disable)를 선택합니다.

13.    삭제(Delete)를 선택합니다.

컴퓨팅 환경 비활성화 및 삭제

컴퓨팅 환경과 연결된 시작 템플릿이 존재하지 않으므로 컴퓨팅 환경을 비활성화하고 삭제해야 합니다. 즉, 시작 템플릿과 연결된 컴퓨팅 환경을 사용할 수 없습니다. 해당 컴퓨팅 환경을 삭제한 다음 새 컴퓨팅 환경을 생성해야 합니다.

1.    AWS Batch 콘솔을 엽니다.

2.    탐색 창에서 컴퓨팅 환경(Compute environments)을 선택합니다.

3.    INVALID 상태인 컴퓨팅 환경을 선택합니다. 그런 다음 비활성화(Disable)를 선택합니다.

4.    삭제(Delete)를 선택합니다.

5.    새 컴퓨팅 환경을 생성합니다.

컴퓨팅 환경 비활성화 후 활성화

1.    AWS Batch 콘솔을 엽니다.

2.    탐색 창에서 컴퓨팅 환경(Compute environments)을 선택합니다.

3.    INVALID 상태인 컴퓨팅 환경을 선택합니다. 그런 다음 비활성화(Disable)를 선택합니다.

4.    3단계에서 동일한 컴퓨팅 환경을 선택합니다. 활성화(Enable)를 선택합니다.