Amazon EC2 인스턴스 시작 문제 해결 - Amazon Elastic Compute Cloud

Amazon EC2 인스턴스 시작 문제 해결

다음은 Amazon EC2 인스턴스를 시작할 때 발생하는 문제를 해결하는 데 도움이 되는 문제 해결 팁입니다.

잘못된 디바이스 이름

설명

새 인스턴스를 시작하려고 할 때 Invalid device name device_name 오류가 발생합니다.

원인

인스턴스를 시작하려고 할 때 이 오류가 발생하면 요청에서 하나 이상의 볼륨에 대해 지정된 디바이스 이름에 잘못된 디바이스 이름이 있는 것입니다. 가능한 원인은 다음과 같습니다.

  • 선택한 AMI에서 디바이스 이름을 사용 중일 수 있습니다.

  • 디바이스 이름이 루트 볼륨용으로 예약되어 있을 수 있습니다.

  • 요청에서 다른 볼륨에 디바이스 이름을 사용할 수 있습니다.

  • 디바이스 이름이 운영 체제에 유효하지 않을 수 있습니다.

Solution

문제 해결

  • 선택한 AMI에서 디바이스 이름이 사용되지 않았는지 확인합니다. 다음 명령을 실행하여 AMI에서 사용하는 디바이스 이름을 확인합니다.

    aws ec2 describe-images --image-id ami_id --query 'Images[*].BlockDeviceMappings[].DeviceName'
  • 루트 볼륨용으로 예약된 디바이스 이름을 사용하고 있지 않은지 확인합니다. 자세한 내용은 사용 가능한 디바이스 이름 단원을 참조하십시오.

  • 요청에 지정된 각 볼륨에 고유한 디바이스 이름이 있는지 확인합니다.

  • 지정한 디바이스 이름이 올바른 형식인지 확인하세요. 자세한 내용은 사용 가능한 디바이스 이름 단원을 참조하십시오.

인스턴스 제한 초과됨

설명

새 인스턴스를 시작하려 할 때 혹은 중지된 인스턴스를 다시 시작하려 할 때 InstanceLimitExceeded 오류가 발생합니다.

원인

새 인스턴스를 시작하거나 중지된 인스턴스를 다시 시작하려 할 때 InstanceLimitExceeded 오류가 발생하면, 한 리전에서 시작할 수 있는 인스턴스 제한에 도달한 것입니다. AWS 계정을 생성할 때 지역별로 실행할 수 있는 인스턴스의 기본 제한이 설정됩니다.

Solution

리전을 기준으로 인스턴스 한도 증가를 요청할 수 있습니다. 자세한 내용은 Amazon EC2 서비스 할당량 단원을 참조하십시오.

부족한 인스턴스 용량

설명

새 인스턴스를 시작하려 할 때 혹은 중지된 인스턴스를 다시 시작하려 할 때 InsufficientInstanceCapacity 오류가 발생합니다.

원인

인스턴스를 시작하거나 중지된 인스턴스를 다시 시작하려 할 때 이 오류가 발생하면 현재 AWS에 요청을 이행할 만큼 충분한 가용 온디맨드 용량이 없는 것입니다.

Solution

다음에 따라 문제를 해결하세요.

  • 몇 분 정도 기다린 후 다시 요청을 제출합니다. 용량은 자주 변할 수 있습니다.

  • 인스턴스 수가 줄어든 새 요청을 제출하세요. 예를 들어 단일 요청을 통해 인스턴스 15개를 시작하는 경우 인스턴스 5개에 대해 요청 3개 또는 인스턴스 1개 대신 요청 15개를 시도합니다.

  • 인스턴스를 시작하고 있는 경우 가용 영역을 지정하지 않고 새 요청을 제출하세요.

  • 인스턴스를 시작하고 있는 경우 이후의 단계에서 크기를 조정할 수 있는 다른 인스턴스 유형을 사용하여 새 요청을 제출하세요. 자세한 내용은 Amazon EC2 인스턴스 유형 변경 단원을 참조하십시오.

  • 클러스터 배치 그룹으로 인스턴스를 시작한 경우 용량 부족 오류가 발생할 수 있습니다.

요청된 구성이 현재 지원되지 않습니다. 지원되는 구성은 설명서를 참조하세요.

설명

지원되지 않는 인스턴스 구성으로 새 인스턴스를 시작하려고 하면 Unsupported 오류가 발생합니다.

원인

오류 메시지에서 추가 세부 정보를 확인할 수 있습니다. 예를 들어 지정된 리전 또는 가용 영역에서 인스턴스 유형 또는 인스턴스 구매 옵션이 지원되지 않을 수 있습니다.

Solution

다른 인스턴스 구성을 시도합니다. 요구 사항에 맞는 인스턴스 유형을 검색하려면 Amazon EC2 인스턴스 유형 찾기 섹션을 참조하세요.

인스턴스 즉시 종료

설명

인스턴스가 pending 상태에서 terminated 상태로 전환됩니다.

원인

인스턴스가 즉시 종료되는 이유에는 다음과 같이 몇 가지가 있습니다.

  • EBS 볼륨 제한을 초과했습니다. 자세한 내용은 Amazon EC2 인스턴스의 Amazon EBS 볼륨 한도 단원을 참조하십시오.

  • EBS 스냅샷이 손상되었습니다.

  • 루트 EBS 볼륨이 암호화되었는데 사용자는 암호 해독을 위하여 KMS 키에 액세스할 권한이 없습니다.

  • AMI에 대한 블록 디바이스 매핑에 지정된 스냅샷이 암호화되었는데 사용자가 암호 해독을 위해 KMS 키에 액세스할 권한이 없거나 복원된 볼륨을 암호화하기 위해 KMS 키에 액세스할 수 없습니다.

  • 인스턴스를 시작하는 데 사용한 인스턴스 스토어 지원 AMI에 필수 부분(image.part.xx 파일).

자세한 내용을 알아보려면 다음 방법 중 하나를 사용하여 종료 이유를 확인하세요.

Amazon EC2 콘솔을 사용해서 종료 이유를 파악하는 방법
  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

  2. 탐색 창에서 인스턴스를 선택하고 인스턴스를 선택합니다.

  3. 첫 번째 탭에서 상태 전환 이유(State transition reason) 옆에 나온 이유를 확인합니다.

AWS Command Line Interface을 사용해서 종료 이유를 파악하는 방법
  1. describe-instances 명령을 사용하여 인스턴스 ID를 지정합니다.

    aws ec2 describe-instances --instance-id instance_id
  2. 명령으로 반환된 JSON 응답을 검토하고 StateReason 응답 요소의 값을 확인합니다.

    다음 코드 블록은 StateReason 응답 요소의 예를 보여 줍니다.

    "StateReason": { "Message": "Client.VolumeLimitExceeded: Volume limit exceeded", "Code": "Server.InternalError" },
AWS CloudTrail을 사용해서 종료 이유를 파악하는 방법

자세한 내용은 AWS CloudTrail 사용 설명서에서 CloudTrail 이벤트 기록을 사용하여 이벤트 보기를 참조하세요.

Solution

종료 이유에 따라 다음 작업 중 하나를 수행합니다.

  • Client.VolumeLimitExceeded: Volume limit exceeded — 사용되지 않는 볼륨을 삭제합니다. 볼륨 제한을 늘리도록 요청을 제출할 수 있습니다.

  • Client.InternalError: Client error on launch - 볼륨 복호화 및 암호화에 사용되는 AWS KMS keys에 액세스하는 데 필요한 권한이 있는지 확인합니다. 자세한 내용은 AWS Key Management Service 개발자 안내서에서 AWS KMS의 키 정책 사용을 참조하세요.

권한 부족

설명

새 인스턴스를 시작하려고 할 때 "errorMessage": "You are not authorized to perform this operation." 오류가 발생하고 시작이 실패합니다.

원인

인스턴스를 시작하려고 할 때 이 오류가 발생하는 경우 인스턴스를 시작하는 데 필요한 IAM 권한이 없는 것입니다.

다음과 같은 권한이 누락된 것일 수 있습니다.

  • ec2:RunInstances

  • iam:PassRole

다른 권한이 필요할 수도 있습니다. 인스턴스를 시작하는 데 필요한 권한 목록은 예: EC2 시작 인스턴스 마법사 사용인스턴스 시작(RunInstances) 아래에서 예제 IAM 정책을 참조하세요.

Solution

문제 해결

  • IAM 사용자로 요청을 하는 경우, 다음과 같은 권한이 있는지 확인합니다.

    • 와일드카드 리소스("*")가 포함된 ec2:RunInstances

    • 역할 ARN과 일치하는 리소스가 포함된 iam:PassRole(예: arn:aws:iam::999999999999:role/ExampleRoleName)

  • 이와 같은 권한이 없는 경우 IAM 역할 또는 사용자와 연결된 IAM 정책을 편집하여 누락된 필수 권한을 추가하세요.

문제가 해결되지 않고 시작 실패 오류가 계속 발생하는 경우 오류에 포함된 권한 부여 실패 메시지를 디코딩할 수 있습니다. 디코딩된 메시지에는 IAM 정책에서 누락된 권한이 포함되어 있습니다. 자세한 내용은 EC2 인스턴스 시작 중에 "UnauthorizedOperation" 오류가 발생한 후 권한 부여 실패 메시지를 디코딩하는 방법을 참조하세요.

Windows 시작 직후 높은 CPU 사용량(Windows 인스턴스만 해당)

참고

이 문제 해결 팁은 Windows 인스턴스에만 해당됩니다.

Windows Update가 업데이트를 확인하지만 다운로드 및 설치 여부는 직접 선택(기본 인스턴스 설정)으로 설정되어 있는 경우 이 검사를 실행하면 인스턴스 CPU가 50~99%까지 소비될 수 있습니다. 이로 인해 애플리케이션에 문제가 발생할 경우에는 제어판에서 Windows Update 설정을 수동으로 변경하거나, 혹은 Amazon EC2 사용자 데이터 필드에서 다음 스크립트를 사용하세요.

reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update" /v AUOptions /t REG_DWORD /d 3 /f net stop wuauserv net start wuauserv

이 스크립트를 실행할 때는 /d 값을 지정합니다. 기본값은 3입니다. 가능한 값은 다음을 포함합니다.

  1. 업데이트를 확인하지 않음

  2. 업데이트를 확인하지만 다운로드 및 설치 여부는 직접 선택

  3. 업데이트를 다운로드하지만 설치 여부는 직접 선택

  4. 업데이트 자동 설치

인스턴스의 사용자 데이터를 변경한 후에는 인스턴스를 실행할 수 있습니다. 자세한 내용은 시작 시 Windows 인스턴스에서 명령 실행을 참조하세요.