본 기사는 인스턴스 상태 체크가 1/2 로 실패될 경우 발생할 수 있는 원인과 해결 방법에 대해 설명합니다.
인스턴스의 상태체크 실패가 1/2이 되었다면 먼저 인스턴스 상태체크가 무엇인지 이해할 필요가 있습니다.
링크 [1]에 의하면 인스턴스 상태체크는 인스턴스의 네트워크 인터페이스로 ARP ping을 전송하여 응답이 오는지 확인하는 것으로, 응답이 오면 통과, 응답이 오지 않으면 실패되는 것입니다.
ARP에 응답할 수 없는 경우는 다음과 같은 원인이 있습니다. 자세한 내용은 링크 [1]을 참고해주세요.
1. CPU가 100%까지 spike된 경우 혹은 네트워크 트래픽이 일시적으로 spike된 경우
가용한 CPU 를 모두 소진함으로써 ARP에 응답하지 못할 수 있습니다.
또한 네트워크 트래픽이 몰리는 경우 ARP에 일시적으로 응답하지 못할 수 있습니다.
2. Network interface issue
인스턴스의 네트워크 인터페이스가 손상되는 경우, ARP에 응답하지 못할 수 있습니다.
3. OS 레벨의 이슈
OS 레벨에 손상이 있는 경우 ARP에 응답하지 못할 수 있습니다.
위 세가지 중 어떤 원인에 해당하는지 확인할 필요가 있습니다.
이를 위해 다음 사항을 확인합니다.
-
CloudWatch Metric 중 CPUUtilization이 100%가 되었는지 확인합니다.
NetworkIn 메트릭과 NetworkOut 메트릭이 일시적으로 크게 증가하였는지 확인합니다.
-
EC2 콘솔 > 인스턴스 선택 후 Actions > Monitor and troubleshoot > Get instance screenshot 을 클릭합니다.
instance screenshot을 통해 인스턴스가 성공적으로 부팅이 된 상태인지 혹은 네트워크 인터페이스에 이상이 있는지 등을 확인할 수 있습니다.
만약 스크린샷이 다음과 같다면 네트워크 인터페이스에 이상이 있는 것으로 추측할 수 있습니다. 이 경우는 해결방법 1을 참고하세요.
만약 스크린샷이 성공적으로 부팅된 화면이 아니라면 OS 이슈일 수 있습니다. 이 경우는 해결방법 2를 참고하세요.
참고로, 성공적으로 부팅된 화면은 다음과 같습니다.
해결 방법
-
네트워크 인터페이스의 문제인 경우 새 네트워크 인터페이스를 해당 인스턴스에 부착하여 이 문제를 해결할 수 있습니다.
a. 문제가 발생하는 인스턴스와 동일 가용 영역에 ENI를 생성합니다.
b. 생성한 ENI를 인스턴스에 연결하고 10분 정도 기다린 뒤 인스턴스 상태 체크가 통과되는지 확인합니다.
c. 인스턴스 상태 체크가 통과되는 경우 추가한 ENI를 통해 RDP로 연결을 시도합니다.
d. RDP 연결에 성공하면 기존에 구성된 네트워크 인터페이스 구성을 확인합니다.
-
OS 레벨의 이슈로 의심되는 경우 EC2Rescue를 통해 손상된 시스템 파일 등을 복구하여 이 문제를 해결할 수 있습니다.
a. 문제가 발생하는 인스턴스와 동일한 가용 영역에 새로운 Windows 테스트 인스턴스를 생성합니다.
b. 기존 인스턴스를 중지하고, 루트볼륨을 detach합니다.
c. 해당 볼륨을 테스트 인스턴스에 유저볼륨으로 attach합니다.
d. 테스트 인스턴스에 RDP로 연결하여 EC2Rescue 를 다운로드 받습니다. [2]
e. EC2Rescue를 실행하여 Offline Instance > Diagnose and Rescue > Select all 을 클릭 후 rescue를 선택합니다.
f. 유저볼륨을 다시 detach하여 원본 인스턴스에 루트볼륨으로 (/dev/sda1)으로 부착 후 부팅을 시도하고 상태체크가 통과되는지 확인합니다.
이외에도 자세한 인스턴스 스크린샷 종류 별 트러블슈팅 방법은 링크 [3]을 참고하시기 바랍니다.
References
[1] Status checks for your instances - Instance status checks - https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/monitoring-system-instance-status-check.html#instance-status-checks
[2] https://s3.amazonaws.com/ec2rescue/windows/EC2Rescue_latest.zip?x-download-source=docs
[3] Troubleshoot an unreachable instance - Common screenshots - https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/troubleshoot-unreachable-instance.html#ics-common