“내부 오류” 메시지가 나타날 때 AWS OpsWorks에서 “stop_failed” 상태의 인스턴스를 중지하려면 어떻게 해야 하나요?

최종 업데이트 날짜: 2020년 11월 2일

AWS OpsWorks Stacks에서 “stop_failed”로 표시된 인스턴스를 중지할 수 없습니다. AWS Identity and Access Management(IAM) 서비스 역할에는 필요한 모든 권한이 있지만 AWS Management Console을 통해 인스턴스를 중지하려고 하면 “내부 오류” 메시지가 표시됩니다. OpsWorks Stacks 인스턴스와 연결된 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스가 없는 경우도 있습니다. OpsWorks Stacks 인스턴스를 중지된 상태로 안전하게 표시하려면 어떻게 해야 하나요?

간략한 설명

인스턴스가 Amazon EC2에서 삭제된 경우 OpsWorks Stacks에서 인스턴스를 중지할 수 없습니다. 중지해야 하는 인스턴스를 찾으려면 OpsWorks StopInstance API 호출이 EC2 인스턴스 ID 및 IAM 서비스 역할의 관련 권한을 필요로 합니다. OpsWorks Stacks에서 EC2 ID를 찾을 수 없으면 API 호출이 실패하고 “내부 오류” 메시지가 반환됩니다. 기본 EC2 인스턴스가 이미 삭제되었거나 내부 오류가 있을 때 StopInstance가 작동하려면 --force 절을 사용해야 합니다.

해결 방법

참고: AWS 명령줄 인터페이스(AWS CLI) 명령을 실행할 때 오류가 발생할 경우 AWS CLI의 최신 버전을 사용하고 있는지 확인하세요.

중지됨으로 표시해야 하는 인스턴스의 OpsWorks 인스턴스 ID를 가져옵니다.

1.    지정된 스택에 대해 stopped_failed 상태의 인스턴스를 필터링하려면 다음 쿼리를 사용해 describe-instances 명령을 실행합니다.

$ aws opsworks describe-instances --stack-id your-stack-id --region your-region --query 'Instances[?Status=='stop_failed'].{Id:InstanceId}'

2.    중지됨으로 표시할 인스턴스 ID를 확인합니다.

참고: 기존 OpsWorks Stacks 엔드포인트를 사용하는 경우 us-east-1을 AWS 리전으로 사용하세요.

--force 절을 사용하여 인스턴스를 중지

중지됨으로 표시하려는 단일 인스턴스가 있는 경우 stop-instance 명령을 실행합니다.

$ aws opsworks stop-instance --instance-id your-opsworks-instance-id --force --region your-region

인스턴스가 여러 개인 경우 사용자 지정 로직을 사용하여 인스턴스를 반복할 수 있습니다. 예를 들면 다음과 같습니다. 

$ for Id in $(aws opsworks describe-instances --stack-id your-stack-id --region your-region --query 'Instances[?Status==`start_failed`].{Id:InstanceId}' --output text) ; do aws opsworks stop-instance --instance-id $Id --force --region your-region  ; done

이 문서가 도움이 되었습니까?


결제 또는 기술 지원이 필요합니까?