본문 바로가기

linux/centos

AWS EC2 인스턴스 연결성 검사 실패

AWS의 EC2 서버가 죽었습니다. 🙏

기록상 22년 11월 11일에 발생했는데 모르고 신나게 주말을 보낸 후 14일 월요일에 알게 되었습니다.

ssh 접속이 안되어 AWS에 접속해서 확인해보니 상태 검사가 실패한 상태 였습니다.

상태 검사를 통과 못했습니다. 왜?!

잘 돌아가던 서버가 왜 검사 통과를 못해서 먹통이 됐지?!

11/11은 빼빼로 데이로 알려져있지만 사실 서버가 뻗은 슬픈 날이기도 합니다.

이런 문제가 발생하면 가장 먼저 드는 생각은

내가 만든 서비스는 문제가 없는데 AWS도 안되겠네~

현실 부정, 책임 전가와 같은 생각들입니다. 반성합니다. 그러나 이런 방어기재로 인해 오늘도 개발자로 살아가고 있습니다. 다음에는 같은 문제 발생 시 좀 더 유연하게 대처할 수 있지 않을까요?!

애니웨이 서버 재실행 후 서비스 실행하면 다시 정상 동작을 해서 협상에 들어갑니다.

지금은 다시 잘 수행되니깐 또 같은 문제가 발생하면 그 때 깊게 찾아보면 모두가 행복하지 않을까?!

그러나 이번 문제 발생이 이미 2번째 였습니다. 이제는 도의적으로라도 문제의 원인을 찾아봐야 합니다.

친절하게도 AWS에서는 관련 문제의 원인들에 대해 찾아볼 수 있도록 가이드 해주고 있습니다.

연결할 수 없는 EC2 Linux 인스턴스의 상태 확인 실패 문제 해결 (amazon.com)

 

연결할 수 없는 EC2 Linux 인스턴스의 상태 확인 실패 문제 해결

닫기 Gurkamal 씨의 동영상을 보고 자세히 알아보기(9:28)

aws.amazon.com

 

여러가지 원인들 중 메모리 부족으로 문제가 발생했을 가능성이 높아 보였습니다. 이 추측은 dmesg 명령을 통해 확신이 되었습니다.

OS의 사형 강제 집행!!

메모리가 부족해서 죽은 것은 확인이 됐는데 왜 메모리가 부족해졌는지를 찾아야 합니다. 원인은 만든 서비스에 있을 가능성이 높겠죠. 저도 바로 의심이 가는 서비스가 떠올랐습니다. 서버의 메모리가 8g인데 이 중 절반을 Elastic Search에 할당했는데 나머지 4g를 서버가 나눠쓰다보니 이런 문제가 발생한 것 같았습니다. 정확한 원인 파악은 아니지만 그런 것 같으므로 조치 방안을 검토해봅니다.

  • 서버 메모리 늘리고 더 할당해주는 방법
  • Elastic Search에 메모리를 덜 할당해주는 방법

우선 쉽게 설정할 수 있는 메모리를 덜 할당해주는 방법을 선택하고 조치했습니다. 이 후 서비스의 상태를 지켜보면서 너무 퍼포먼스가 떨어진다 싶으면 서버 메모리를 늘리는 방법을 선택하려 합니다. 이 선택 이 후 아직까지 서비스가 내려가거나 서버가 중단되는 문제는 없었고(3일차), 서비스의 퍼포먼스가 떨어지는 것 같지는 않았습니다. (이용자가 거의 없어서?)

 

결론적으로 AWS의 EC2 서버도 에러가 생길 수 있다는 것을 경험했습니다. 그리고 역시나 원인은 저에게 있었다는 것도 재확인 했습니다. 부끄럽지만 다음에는 더 좋은 서비스를 만들 수 있는 개발자가 될 수 있는 경험을 했다 생각하고 강제 파이팅 하겠습니다. 👏👏👏

 

저와 비슷한 문제를 겪으셨나요? 제가 겪은 다른 문제 및 해결 방법에 대한 내용도 도움이 되시면 좋겠습니다.

도움이 되셨다면 공감 및 댓글 부탁드려도 될까요?! 관심은 저를 행복하게 해 줍니다.