EC2 인스턴스 모니터링에서 StatusCheck 실패하는 이유

인스턴스 상태 확인에 실패하는 원인에 대해서 적어보았습니다.

인트로

안녕하세요. 
클라스매소드 유럽 aws 운영팀에서 고객님들의 이슈를 조사하고 해결하는 일을 담당하고 있습니다.
aws는 서비스도 다양하고 일어나는 이슈들도 너무나 다양해서 하루하루 새롭게 배워가며 지냅니다.
어느 정도 공통적으로 문의하시는 부분들을 시리즈로 써서 공개하면 운영하시는 분들에게
작게나마 도움이 될것 같고, 저에게도 많은 공부가 될 것 같고, 두루두루 이롭지 않을까 싶어 몇 자 적어보겠습니다.

오늘은...... EC2 인스턴스 상태 확인이 실패하는 이유
갑자기 인스턴스가 정상이 아닙니다 라고 알람(경보)이 오면 어디를 확인해야 할지 당황하지 마시고 이렇게 해보세요.

인스턴스 상태 확인이 실패했다는 건...

인스턴스 상태 확인 = Status Check 이 실패하는 이유야 여러가지 있겠지만요,
무엇보다 먼저, 저는 개인적으로 ' 아 aws 물리적 호스트에 문제가 있었나? ' 하고 의심해봅니다.
(물리 호스트의 문제가 아니라면, CPUUtilization 이나 NetworkIn/NetworkOut도 확인해봅니다.)

공식홈페이지에 보면 실패 유형이 두 가지인데요,
- StatusCheckFailed_System
- StatusCheckFailed_Instance
각각 원인이 다른데요, 시스템 상태가 메롱일 때 인스턴스 상태도 메롱이 되기 때문에 주로 저는 시스템 상태를 좀더 주의 깊게 확인하는 편입니다.

시스템 상태 확인 실패 원인의 예를 보시면 이렇습니다...(홈페이지에서 발췌)

  • 네트워크 연결 끊김
  • 시스템 전원 중단
  • 물리적 호스트의 소프트웨어 문제
  • 네트워크 연결성에 영향을 주는 물리적 호스트의 하드웨어 문제

CloudWatch 를 보러가겠습니다

- CloudWatch > 지표 > 해당 인스턴스를 검색해서 지표들을 표시해주세요.

- 시간대를 지정해주시는데, 기본값이 UTC 라는 점 주의해주세요.
저는 나중에 aws에 문의할 것 같으면 현지시간 → UTC 시간으로 변환해서 입력하곤 합니다. 대충 이런 변환 사이트를 사용합니다.
물론, 로컬 시간대로 변경도 가능합니다.(1) 절대값, 상대값 모두 지정가능합니다.(2)


- 선택한 지표를 그래프로 만들어보시는데요, 여기서도 주의하실 점은,
각 지표마다 설정해야하는 통계(Sum, Average, Min, Max)가 다 다릅니다.
꼭 좀 주의하셔서 적합한 수치를 그래프에 표시할 수 있도록 공식홈페이지를 참고해주세요.
인스턴스에 사용 가능한 CloudWatch 지표 나열

- StatusCheckFailed_System 의 지표가 0 이 문제 없다는 거구요*(3), 0 이 아닌 지표가 있다면 그 시간대 전후로 CPUUtilization 이나 NetworkIn, NetworkOut 의 지표에도 큰 변화가 있었는지 확인해주세요.

(1)
(2)
(3)

자동으로 재부팅을 했는지도 보러갑시다

마지막으로 인스턴스가 문제 해결을 위해 자동으로 재부팅이 되었는지도 확인해봅시다.
CloudTrail > 이벤트 기록 > 이벤트 이름 : RebootInstances
물리적 호스트의 문제로 인스턴스 상태 확인이 실패했을 경우에 자동으로 재부팅할 때도 있고 아닐때도 있더라구요. 재부팅안되었다면, 재부팅을 추천드립니다.

새 UI
예전 UI

아웃트로

인스턴스 상태 확인에 실패한 이유 중 StatusCheckFailed_System 에 대해서 적어보았습니다.
물리호스트에서 문제가 있을 경우, aws에 따로 문의를 해서 원인을 알려달라고 해도
보안상의 이유로 자세하게는 알려주지 않을 수 있습니다.
당황하지 마시고 다른 데에도 영향이 없는지 쭉 훑어보시기 바랍니다.

그럼 다음 글에서 만나요, 안녕〜