EC2 인스턴스를 시작할 수 없는 이유는 무엇인가요?

5분 분량
0

새 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스를 시작하거나 기존 인스턴스를 시작할 수 없습니다.

해결 방법

EC2 인스턴스를 시작하지 못하는 데에는 여러 가지 이유가 있습니다. 인스턴스를 시작하려고 할 때 오류 코드가 나타나지 않으면 다음을 실행하세요.

1.    AWS CloudTrail에서 StartInstances 이벤트를 확인합니다.

-또는-

AWS Command Line Interface(AWS CLI)에서 describe-instance 명령을 실행하고 인스턴스 ID를 지정해 문제의 원인을 확인하세요. 다음 예시에서 MYINSTANCE를 시작하려는 인스턴스 ID로 변경하세요.

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"
   },

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

2.    다음과 같은 일반적인 오류를 검토해 문제를 해결합니다.

InsufficientInstanceCapacity

새 인스턴스를 시작하거나 중지된 인스턴스를 다시 시작할 때 사용 가능한 온디맨드 용량이 부족하여 요청을 처리할 때 다음 오류가 발생합니다.

An error occurred (InsufficientInstanceCapacity) when calling the StartInstances operation (reached max retries: 4): Insufficient capacity.)

이 오류는 요청을 완료하기에 온디맨드 용량이 충분하지 않은 경우에 발생합니다.

이를 해결하려면 EC2 인스턴스를 시작할 때 발생하는 InsufficientInstanceCapacity 오류를 해결하려면 어떻게 해야 하나요?를 참고하세요.

InstanceLimitExceeded

AWS 리전에서 허용되는 최대 인스턴스보다 많은 인스턴스를 시작할 때 다음 오류가 발생합니다.

InstanceLimitExceeded: Your quota allows for 0 more running instance(s).

이 메시지를 수신하면 AWS Support에 할당량 증가 요청을 제출하세요. 요청에는 시작하려는 인스턴스 유형과 시작하려는 AWS 리전을 포함해야 합니다.

이 오류를 해결하는 방법을 자세히 알아보려면 EC2 인스턴스를 시작할 때 발생하는 InstanceLimitExceeded 오류를 해결하려면 어떻게 해야 하나요?를 참고하세요.

UnauthorizedOperation

UnauthorizedOperation 오류는 인스턴스를 시작하려는 사용자에게 필요한 권한이 없을 때 발생합니다. 이 오류를 해결하려면 EC2 인스턴스 시작 중에 “UnauthorizedOperation” 오류가 발생한 후 권한 부여 실패 메시지를 디코딩하려면 어떻게 해야 하나요?를 참고하세요.

요청된 구성이 현재 지원되지 않음

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

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 Marketplace AMI 설명을 검토하세요. 이 문제는 일반적으로 AWS Marketplace AMI를 사용하는데 AWS CLI를 통해 지원되지 않는 인스턴스 시작을 시도할 때 발생합니다. Amazon EC2 콘솔에서 인스턴스를 시작할 때 지원되지 않는 인스턴스는 사용할 수 없습니다.

Client.InternalError

이 오류가 발생할 수 있는 일반적인 이유는 다음과 같습니다.

  • Amazon Elastic Block Store(Amazon EBS) 볼륨이 인스턴스에 제대로 연결되지 않았습니다.
  • 인스턴스에 연결된 EBS 볼륨이 ERROR 상태입니다.
  • 암호화된 EBS 볼륨이 인스턴스에 연결되었습니다. 그러나 AWS Key Management Services(AWS KMS)에 액세스할 권한이 없어 암호 해독을 할 수 없습니다.

이 문제를 해결하는 방법을 자세히 알아보려면 시작 시도 시 중지되거나 종료되는 Amazon EC2 인스턴스 문제를 해결하려면 어떻게 해야 하나요?을 참고하세요.

디스크 용량 부족 오류

인스턴스 스페이스 부족으로 인해 감사 서비스가 부팅하자마자 컴퓨터가 중지되면 디스크 용량 부족 오류가 발생합니다.

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

중요: 이 해결 단계에는 인스턴스 시작 및 중지 과정이 포함되어 있습니다. 다음 사항에 유의하세요.

  • 인스턴스가 중지되면 인스턴스 스토어 볼륨에 데이터 손실이 발생합니다. 자세한 내용은 인스턴스 루트 디바이스 유형 결정을 참고하세요.
  • 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.    탐색 창에서 인스턴스를 선택하고 해당 인스턴스를 선택합니다.

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

4.    중지된 인스턴스에서 EBS 루트 볼륨(Linux의 경우 /dev/xvda)을 연결 해제합니다.

5.    손상된 인스턴스와 동일한 가용 영역에서 새 EC2 인스턴스를 시작합니다. 이제 새 인스턴스를 복구 인스턴스로 사용할 수 있습니다.

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

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

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

8.    6단계에서 복구 인스턴스에 연결한 새 볼륨의 연결 포인트 디렉터리를 생성합니다. 다음 예시에서 연결 포인트 디렉터리는 /mnt/rescue입니다.

참고: 다음 $ sudo 명령은 Linux 환경에만 적용됩니다.

$ 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)에 볼륨을 연결한 후 인스턴스를 시작하고 성공적으로 부팅되는지 확인합니다.

  1.    감사 서비스 구성을 검토하여 공간이 부족할 경우 컴퓨터를 중지(종료)할 수 있는 옵션이 있는지 확인합니다. Amazon Linux, Amazon Linux 2, Amazon Linux 2023의 경우, /etc/audit/auditd.conf에 다음 감사 서비스 구성 옵션이 포함되어 있는지 확인하세요.
max_log_file_action = ROTATE
admin_space_left_action = SUSPEND
disk_full_action = SUSPEND
disk_error_action = SUSPEND

Client.InvalidParameterValue

InvalidParameterValue는 요청에 지정된 파라미터가 유효하지 않거나, 지원되지 않거나, 사용할 수 없음을 의미합니다. 오류 값에 관한 설명은 반환된 메시지에 명시되어 있습니다. 예를 들어, 루트 볼륨이 AMI에 따라 /dev/sda1 또는 /dev/xvda의 인스턴스에 연결되어 있지 않으면 인스턴스가 시작되지 않습니다. 이 경우, AWS CloudTrail에 다음과 비슷한 항목이 표시됩니다.

An error occurred (InvalidParameterValue) when calling the StartInstances operation: Invalid value 'i-xxxxxxxxxxxxxxxxx' for instanceId. Instance does not have a volume attached at root (/dev/sda1)

이 문제를 해결하려면 오류 메시지를 참고하여 관련 파라미터를 변경하세요. 예를 들어, 위 예시 오류를 해결하려면 루트 볼륨을 /dev/sda1 인스턴스에 연결한 다음 인스턴스를 시작하세요. 자세한 내용은 Amazon EC2 API 오류 코드를 참고하세요.

관련 정보

인스턴스 시작 문제 해결 - Linux

인스턴스 시작 문제 해결 - Windows

Amazon ECS 모범 사례 가이드

AWS 공식
AWS 공식업데이트됨 일 년 전
댓글 없음

관련 콘텐츠