EC2 인스턴스를 시작하거나 실행할 수 없는 이유는 무엇인가요?

최종 업데이트 날짜: 2022년 1월 20일

Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스를 실행하거나 시작할 수 없습니다. 이 문제를 해결하려면 어떻게 해야 합니까?

간략한 설명

EC2 인스턴스를 실행하거나 시작하지 못하는 이유는 여러 가지가 있습니다. 인스턴스를 시작하려고 할 때 오류 코드가 표시되지 않으면 AWS 명령줄 인터페이스(AWS CLI)에서 describe-instances 명령을 실행합니다. 그런 다음 인스턴스 ID를 지정하여 문제의 원인을 확인합니다. 다음 예제에서 MYINSTANCE를 시작하려는 인스턴스의 ID로 바꾸세요.

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

aws ec2 describe-instances --instance-id MYINSTANCE --output json

명령을 실행하여 반환된 JSON 응답에서 StateReason 메시지를 확인합니다.

다음 예제에서 반환된 StateReason은 "Client.InternalError"입니다.

"StateReason": {
     "Message": "Client.InternalError: Client error on launch",
     "Code": "Client.InternalError"
   },

해결 방법

다음은 인스턴스를 시작하지 못하는 원인이 될 수 있는 일반적인 오류입니다.

InsufficientInstanceCapacity

오류 메시지: "RunInstances 작업을 호출할 때 오류(InsufficientInstanceCapacity)가 발생했습니다(최대 횟수 도달: 4). 요청한 가용 영역에 현재 용량이 부족합니다." 이 오류는 온디맨드 용량이 부족하여 요청을 완료할 수 없는 경우에 발생합니다.

이 오류를 해결하는 방법은 EC2 인스턴스를 시작하거나 실행할 때 발생하는 InsufficientInstanceCapacity 오류를 해결하려면 어떻게 해야 합니까?를 참조하세요.

InstanceLimitExceeded

오류 메시지: "할당량을 기준으로 추가로 실행하도록 허용되는 인스턴스가 0개입니다." 이 오류는 리전에서 허용되는 최대 개수의 인스턴스를 시작한 경우에 발생합니다.

이 오류를 해결하는 방법은 EC2 인스턴스를 시작하거나 실행할 때 발생하는 InstanceLimitExceeded 오류를 해결하려면 어떻게 해야 합니까?를 참조하세요.

UnauthorizedOperation

UnauthorizedOperation 오류는 인스턴스를 시작하려는 사용자에게 필요한 권한이 없음을 나타냅니다. 이 오류를 해결하는 방법은 EC2 인스턴스를 시작하려고 할 때 "이 작업을 수행할 권한이 없습니다." 오류 메시지가 표시되는 이유는 무엇입니까?를 참조하세요.

요청하신 구성은 현재 지원되지 않습니다.

이 오류는 다음 두 가지 문제로 인해 발생합니다.

1.    지정된 인스턴스 유형이 요청하신 가용 영역에서 지원되지 않습니다. AWS CLI에서 aws ec2 describe-instance-type-offerings 명령을 실행하여 특정 가용 영역에서 인스턴스 유형의 가용성을 확인합니다. 그런 다음 지원되는 가용 영역에서 인스턴스를 시작합니다.

예를 들어 다음 명령을 사용하여 us-east-1의 모든 가용 영역에서 c5.2xlarge 인스턴스 유형의 가용성을 확인합니다.

aws ec2 describe-instance-type-offerings --location-type availability-zone --filters Name=instance-type,Values=c5.2xlarge --region us-east-1

2.    인스턴스를 시작하는 데 사용된 Amazon Machine Image(AMI)가 선택한 인스턴스 유형을 지원하지 않습니다. 인스턴스 유형 또는 패밀리를 선택하기 전에 AWS 설명서의 AMI 설명을 참조하세요. 이 문제는 AWS Marketplace AMI를 사용하고 AWS CLI를 사용하여 시작할 때 일반적으로 발생합니다. Amazon EC2 콘솔에서 인스턴스를 시작할 때 지원되지 않는 인스턴스를 사용할 수 없습니다.

Client.InternalError

이 오류가 발생하는 이유는 몇 가지가 있습니다.

  • Amazon Elastic Block Store(Amazon EBS) 볼륨이 인스턴스에 올바르게 연결되지 않았습니다.
  • 인스턴스에 연결된 EBS 볼륨이 오류 상태입니다.
  • 암호화된 EBS 볼륨이 인스턴스에 연결됩니다. 그러나 암호 해독을 위해 AWS Key Management Service(AWS KMS)에 액세스할 수 있는 권한은 없습니다.

이 문제를 해결하는 방법은 인스턴스를 시작할 수 없으며 describe-instances 명령을 실행할 때 Client.InternalError가 발생합니다. 어떻게 해결하나요?

디스크 가득 참 오류

디스크 가득 참 오류는 인스턴스의 공간이 부족할 때 발생하며 감사 서비스는 컴퓨터가 부팅되는 즉시 중지됩니다.

참고: 계속하기 전에 볼륨의 스냅샷을 생성하여 데이터를 백업하는 것이 좋습니다.

중요:

이러한 해결 단계에서는 인스턴스를 중지하고 시작해야 합니다. 다음 사항에 유의하세요.

  • 인스턴스가 중지되면 인스턴스 스토어 볼륨의 데이터가 손실됩니다. 자세한 내용은 인스턴스의 루트 디바이스 유형 확인을 참조하세요.
  • 인스턴스가 Amazon EC2 Auto Scaling 그룹의 일부인 경우 인스턴스를 중지하면 인스턴스가 종료될 수 있습니다. Amazon EMR, AWS CloudFormation, AWS Elastic Beanstalk를 사용하여 인스턴스를 시작한 경우 인스턴스가 AWS Auto Scaling 그룹의 일부일 수 있습니다. 이 시나리오에서 인스턴스 종료는 Auto Scaling 그룹에 대한 인스턴스 축소 보호 설정에 따라 달라집니다. 인스턴스가 Auto Scaling 그룹의 일부인 경우, 문제 해결 단계를 시작하기 전에 Auto Scaling 그룹에서 인스턴스를 일시적으로 제거합니다.
  • 인스턴스를 중지하고 다시 시작하면 인스턴스의 퍼블릭 IP 주소가 변경됩니다. 외부 트래픽을 인스턴스로 라우팅할 때는 퍼블릭 IP 주소 대신 탄력적 IP 주소를 사용하는 것이 좋습니다.

디스크 가득 참 오류를 해결하려면 다음을 수행합니다.

1.    Amazon EC2 콘솔을 엽니다.

2.    탐색 창에서 [인스턴스(instance)]를 선택한 다음 인스턴스를 선택합니다.

3.    인스턴스를 중지합니다.

4.    중지된 인스턴스에서 EBS 루트 볼륨(Linux의 경우 /dev/xvda, Windows의 경우 /dev/sda1)을 분리합니다.

5.    손상된 인스턴스와 동일한 가용 영역에서 새 EC2 인스턴스를 시작합니다. 새 인스턴스가 복구 인스턴스가 됩니다.

6.    4단계에서 분리한 루트 볼륨을 보조 디바이스로 복구 인스턴스에 연결합니다.

참고: 보조 볼륨을 연결할 때 다른 디바이스 이름을 사용할 수 있습니다.

7.    SSH를 사용하여 복구 인스턴스에 연결합니다.

8.    6단계에서 복구 인스턴스에 연결된 새 볼륨의 탑재 지점 디렉터리를 생성합니다. 다음 예제에서 탑재 지점 디렉터리는 /mnt/rescue입니다.

$ sudo mkdir /mnt/rescue

9.    8단계에서 생성한 디렉터리에 볼륨을 탑재합니다.

$ sudo mount /dev/xvdf /mnt/rescue

참고: 디바이스(이전 예제에서는 /dev/xvdf)가 다른 디바이스 이름으로 복구 인스턴스에 연결될 수 있습니다. lsblk 명령을 사용하여 사용 가능한 디스크 디바이스와 탑재 지점을 보고 올바른 디바이스 이름을 확인하세요.

10.    루트 볼륨 크기를 늘립니다.

11.    파티션을 확장합니다.

12.    umount 명령을 실행하여 볼륨의 마운트를 해제합니다.

$ sudo umount /mnt/rescue

13.    임시 인스턴스에서 볼륨을 분리합니다.

14.    볼륨을 디바이스 이름(Linux의 경우 /dev/xvda, Windows의 경우 /dev/sda1)으로 원래 인스턴스에 연결한 다음 인스턴스를 시작하여 성공적으로 부팅되는지 확인합니다.

15.    감사 서비스 구성을 검토하여 공간이 부족할 경우 컴퓨터를 중지(종료)하는 옵션이 없는지 확인합니다. 감사 서비스 구성은 Amazon Linux 및 Amazon Linux 2의 /etc/audit/auditd.conf에 다음 옵션을 포함해야 합니다.

max_log_file_action = ROTATE
admin_space_left_action = SUSPEND
disk_full_action = SUSPEND
disk_error_action = SUSPEND