

# Amazon EC2 인스턴스 중지 문제 해결
<a name="TroubleshootingInstancesStopping"></a>

Amazon EBS 지원 인스턴스가 `stopping` 상태로 멈춰 있는 것처럼 보일 경우 기본 호스트 컴퓨터에 문제가 있을 수 있습니다.

이 문제를 해결하려면 다음 단계에 따릅니다.

1. **인스턴스 강제 중지**

   Amazon EC2 콘솔 또는 AWS CLI를 사용하여 인스턴스를 강제로 중지합니다. 이러한 단계는 [인스턴스 강제 중지](#force-stop-instance)을 참조하세요.

   인스턴스는 먼저 파일 시스템 캐시 및 메타데이터 비우기를 포함한 정상 종료를 시도합니다(다만 원하는 경우 정상 종료를 바이패스할 수 있습니다). 제한 시간 내에 정상 종료가 완료되지 않으면 파일 시스템 캐시 및 메타데이터를 비우지 않고 인스턴스가 강제로 종료됩니다.

1. **강제 중지 후**

   파일 시스템 검사 및 복구 절차를 수행합니다.
**중요**  
강제 중지 시 파일 시스템 캐시 및 메타데이터가 비워지지 않으므로 이러한 절차를 수행하는 것이 중요합니다.

1. **강제 중지가 실패하는 경우**

   10분 후에도 인스턴스가 중지되지 않은 경우 다음을 수행합니다.

   1. [AWS re:Post](https://repost.aws/)에 도움 요청을 게시합니다. 해결 방법을 신속히 찾아내려면 인스턴스 ID를 포함하고 자신이 이미 수행했던 단계에 대해 설명하세요.

   1. 지원 플랜이 있는 경우에는 [지원 센터](https://console.aws.amazon.com/support/home#/)에서 기술 지원 사례를 요청할 수 있습니다.

   1. 지원을 기다리는 동안 필요한 경우 대체 인스턴스를 생성할 수 있습니다. 이러한 단계는 [(선택 사항) 대체 인스턴스 생성](#Creating_Replacement_Instance)을 참조하세요.

인스턴스가 `stopping` 상태 또는 `running`를 제외한 다른 상태에 있는 동안에는 인스턴스 사용 요금이 부과되지 않습니다. 인스턴스가 `running` 상태인 경우 인스턴스 사용량에 대해서만 요금이 부과됩니다.

**Topics**
+ [인스턴스 강제 중지](#force-stop-instance)
+ [(선택 사항) 대체 인스턴스 생성](#Creating_Replacement_Instance)

## 인스턴스 강제 중지
<a name="force-stop-instance"></a>

인스턴스를 강제로 중지할 수 있습니다. 10분 후에도 인스턴스가 중지되지 않는 경우 [AWS re:Post](https://repost.aws/)에 도움을 요청하는 글을 게시하세요. 해결 방법을 신속히 찾아내려면 인스턴스 ID를 포함하고 자신이 이미 수행했던 단계에 대해 설명하세요. 지원 플랜이 있는 경우에는 [지원 센터](https://console.aws.amazon.com/support/home#/)에서 기술 지원 사례를 요청할 수 있습니다.

**참고**  
콘솔을 사용하여 인스턴스가 `stopping` 상태에 있는 동안에만 인스턴스를 통해 콘솔 사용을 강제로 중지할 수 있습니다. AWS CLI를 사용하여 인스턴스가 `pending`, `running` 또는 `stopping` 상태에 있는 동안에만 인스턴스를 통해 콘솔 사용을 강제로 중지할 수 있습니다.

------
#### [ Console ]

**인스턴스를 강제로 중지하려면**

1. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)에서 Amazon EC2 콘솔을 엽니다.

1. 탐색 창에서 **인스턴스**를 선택하고 멈춘 인스턴스를 선택합니다.

1. **인스턴스 상태**, **인스턴스 강제 중지**를 선택합니다.

   **인스턴스 강제 중지(Force stop instance)**는 인스턴스가 `stopping` 상태일 때만 콘솔에서 사용할 수 있습니다. 인스턴스가 다른 상태인 경우(`shutting-down` 및 `terminated` 제외) AWS CLI를 사용하여 인스턴스를 강제로 중지할 수 있습니다.

1. (선택 사항) 강제 중지 중에 정상적 OS 종료를 바이패스하려면 **OS 종료 건너뛰기** 확인란을 선택합니다.

1. **강제 중지**를 선택합니다.

------
#### [ AWS CLI ]

**인스턴스를 강제로 중지하려면**  
[stop-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/stop-instances.html) 명령을 `--force` 옵션과 함께 사용합니다.

```
aws ec2 stop-instances \
    --instance-ids {{i-1234567890abcdef0}} \
    --force
```

강제 중지 중에 정상적 OS 종료를 바이패스하려면 `--skip-os-shutdown` 옵션을 포함합니다.

```
aws ec2 stop-instances \
    --instance-ids {{i-1234567890abcdef0}} \
    --force \
    --skip-os-shutdown
```

------
#### [ PowerShell ]

**인스턴스를 강제로 중지하려면**  
[Stop-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/Stop-EC2Instance.html) cmdlet을 사용하고 `-Enforce`를 `true`로 설정합니다.

```
Stop-EC2Instance `
    -InstanceId {{i-1234567890abcdef0}} `
    -Enforce $true
```

강제 중지 중에 정상적 OS 종료를 바이패스하려면 `-SkipOsShutdown $true`를 포함합니다.

```
Stop-EC2Instance `
    -InstanceId {{i-1234567890abcdef0}} `
    -Enforce $true `
    -SkipOsShutdown $true
```

------

## (선택 사항) 대체 인스턴스 생성
<a name="Creating_Replacement_Instance"></a>

[AWS re:Post](https://repost.aws/) 또는 [지원 센터](https://console.aws.amazon.com/support/home#/)의 도움을 기다리는 동안 필요한 경우 대체 인스턴스를 생성할 수 있습니다. 멈춘 인스턴스에서 AMI를 생성하고 새로운 AMI를 사용하여 새 인스턴스를 시작합니다.

**중요**  
인스턴스 상태 확인 시 AMI가 손상된 운영 체제의 정확한 복제본을 복사하므로 멈춘 인스턴스에서 [시스템 상태 확인](monitoring-instances-status-check.md)만 발생하는 경우 대체 인스턴스를 생성할 수 있습니다. 상태 메시지를 확인한 후 AMI를 생성하고, 새 AMI를 사용하여 새 인스턴스를 시작합니다.

------
#### [ Console ]

**대체 인스턴스를 생성하려면**

1. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)에서 Amazon EC2 콘솔을 엽니다.

1. 탐색 창에서 **인스턴스**를 선택하고 멈춘 인스턴스를 선택합니다.

1. **작업(Actions)**, **이미지 및 템플릿(Image and templates)**, **이미지 생성(Create image)**을 차례로 선택합니다.

1. **이미지 생성(Create image)** 페이지에서 다음을 수행합니다.

   1. AMI 이름 및 설명을 입력합니다.

   1. **인스턴스 재부팅** 선택을 취소합니다.

   1. **이미지 생성**을 선택합니다.

   자세한 내용은 [인스턴스에서 AMI 생성](creating-an-ami-ebs.md#how-to-create-ebs-ami) 섹션을 참조하세요.

1. AMI에서 새로운 인스턴스를 시작하고 새로운 인스턴스가 작동하는지 확인합니다.

1. 멈춰 있는 인스턴스를 선택하고 **작업**, **인스턴스 상태**, **인스턴스 종료(삭제)**를 차례로 선택합니다. 또한 인스턴스가 종료 중 상태로 멈추는 경우 Amazon EC2에서 몇 시간 내에 해당 인스턴스를 자동으로 종료합니다.

이전 절차에 설명된 대로 AMI를 만들 수 없으면 다음과 같이 대체 인스턴스를 설정할 수 있습니다.

**(대안) 콘솔을 사용하여 대체 인스턴스를 생성하려면**

1. 인스턴스를 선택하고 **설명**, **블록 디바이스**를 선택합니다. 각 볼륨을 선택하고 볼륨 ID를 기록합니다. 어느 볼륨이 루트 볼륨인지 적어두어야 합니다.

1. 탐색 창에서 **볼륨**을 선택합니다. 인스턴스에 해당하는 각 볼륨을 선택하고 **작업**, **스냅샷 생성**을 차례로 선택합니다.

1. 탐색 창에서 **스냅샷**을 선택합니다. 방금 만든 스냅샷을 선택한 후 **작업**, **볼륨 생성**을 선택합니다.

1. 멈춰 있는 인스턴스와 동일한 운영 체제에서 인스턴스를 시작합니다. 루트 볼륨의 볼륨 ID와 디바이스 이름을 적어둡니다.

1. 탐색 창에서 **인스턴스(Instances)**를 선택하고 방금 시작한 인스턴스를 선택한 다음 **인스턴스 상태(Instance state)**, **인스턴스 중지(Stop instance)**를 차례로 선택합니다.

1. 탐색 창에서 **볼륨**을 선택하고 중지된 인스턴스의 루트 볼륨을 선택한 후, **작업**, **볼륨 분리**를 선택합니다.

1. 멈춰 있는 인스턴스에서 만든 루트 볼륨을 선택하고 **작업(Actions)**, **볼륨 연결(Attach Volume)**을 선택한 후, 이 볼륨을 새 인스턴스에 루트 볼륨으로 연결합니다(기록해 놓은 디바이스 이름 사용). 루트 이외의 다른 추가 볼륨을 인스턴스에 연결합니다.

1. 탐색 창에서 **인스턴스**를 선택하고 대체 인스턴스를 선택합니다. **인스턴스 상태**, **인스턴스 시작**을 차례로 선택합니다. 인스턴스가 작동 중인지 확인합니다.

1. 멈춘 인스턴스를 선택하고 **인스턴스 상태**, **인스턴스 종료(삭제)**를 차례로 선택합니다. 또한 인스턴스가 종료 중 상태로 멈추는 경우 Amazon EC2에서 몇 시간 내에 해당 인스턴스를 자동으로 종료합니다.

------
#### [ AWS CLI ]

**대체 인스턴스를 생성하려면**

1. [create-image](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-image.html) 명령과 `--no-reboot` 옵션을 함께 사용하여 멈춰 있는 인스턴스에서 AMI를 생성합니다.

   ```
   aws ec2 create-image \
       --instance-id {{i-1234567890abcdef0}} \
       --name "{{my-replacement-ami}}" \
       --description "{{"AMI for replacement instance}}" \
       --no-reboot
   ```

1. [run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html) 명령을 사용하여 방금 생성한 AMI에서 새 인스턴스를 시작합니다.

1. 새로운 인스턴스가 작동 중인지 확인합니다.

1. (선택 사항) [terminate-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/terminate-instances.html) 명령을 사용하여 멈춰 있는 인스턴스를 종료합니다.

   ```
   aws ec2 terminate-instances --instance-ids {{i-1234567890abcdef0}}
   ```

------
#### [ PowerShell ]

**대체 인스턴스를 생성하려면**

1. [New-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Image.html) cmdlet을 사용하여 멈춰 있는 인스턴스에서 AMI를 생성하고 `-NoReboot`를 `true`로 설정합니다.

   ```
   New-EC2Image `
       -InstanceId {{i-1234567890abcdef0}} `
       -Name "my-replacement-ami" `
       -Description "AMI for replacement instance" `
       -NoReboot $true
   ```

1. [New-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Instance.html) cmdlet을 사용하여 방금 생성한 AMI에서 새 인스턴스를 시작합니다.

1. 새로운 인스턴스가 작동 중인지 확인합니다.

1. (선택 사항) [Remove-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/Remove-EC2Instance.html) cmdlet을 사용하여 멈춰 있는 인스턴스를 종료합니다.

   ```
   Remove-EC2Instance -InstanceId {{i-1234567890abcdef0}}
   ```

------