[AWS] 회사 서버가 자꾸 다운됩니다! (AWS EC2 서버 재부팅하기, CPU사용 알람 설정하기)

2021. 11. 25. 11:46WEB Dev/AWS

728x90

 

 

이게 무슨일이람

어제부터 EC2 서버에 있는 파일 CSS 수정 중에 AWS EC2 서버가 나가버리는 현상이 반복되고 있다.

전임자가 적어놓은 파일에도 '서버가 자꾸 죽어서' 라는 글이 있었는데, 그동안은 계속 겪어보지 못해서 전혀 몰랐다.

그리서 서버는 문외한이라 너무 무섭고 떨렸다. 서버가 죽는다는건 트윗으로만 봐가지고..

 

실제로 회사 페이지들이 다운되어 504 Error를 뿜고 있었다.

404도 아니고 504라니

 

우선 서버가 다운되면 가장 먼저 해야할 일은 EC2 콘솔에서 서버를 끄고 재부팅 하는 것이다.

사실 이 서버라는게 실제 물리적으로 앞에 놓인 컴퓨터 본체가 아니고 가상 서버다 보니까 뭘 조작하는게 너무 무서웠다. 노트북 전원은 강제종료 잘 하면서 그래.

 

1. 가상 서버를 강제종료 하자!

AWS EC2는 아마존 웹 서비스로 그야말로 눈 앞에는 없는 가상의 컴퓨터 한 대 이다.

저 Server의 전원 버튼을 꾹 눌러보자

1) 우선 AWS EC2 콘솔-인스턴스로 간다.

2) 인스턴스 상태가 running으로 말짱하다는게 열받지만 인스턴스 ID에서 오른쪽 클릭을 한다. 그리고 두려워하지 말고 인스턴스 상태 - 중지를 클릭한다.

3) 그럼 뭔가 메시지가 뜬다. (두 번 중지해봤는데 그때그때 다르지만 내용은 비슷하다) 어차피 다운된 마당에 과감하게 예, 중지를 누른다.

4) 그럼 한참동안 뭔가 정리하면서 중지가 된다. 이후에는 간단하다. 인스턴트 상태가 stopped로 변해있으면 다시 인스턴스 ID에서 오른쪽 클릭해서 인스턴스 설정 - 시작 을 누르면 인스턴스 상태가 다시 running이 된다.

 

우리 회사는 node로 서버를 돌리고 있어서 ssh로 node가 있는 폴더에 가서 npm start를 실행해 pm2를 켜준다.

이게 어제 오후의 상황이었다 😥

어제는 내가 서버를 키고 껐다는 것에 고무되어 기분이 매우 좋았다.

외주분 말씀으로는 아무래도 CPU가 100%를 찍어서 내부가 다운된거 같다고 했는데, CPU를 100으로 만든 원인이 불명확해서 그냥 이런 일이 있으면 우선 재부팅하기로 했다. (빨리 백엔드 개발자분 와주세요 제발)

 

그런데 오늘 아침 출근해보니 서버가 또 나가있었다. 후후.

다시 재부팅 과정을 돌리면서 외주분이 조언해주신게 'AWS에서 경보를 만들거나 알아서 재부팅 시킬 수 있어요'였다.

그래서 오늘은 경보를 설정해보려고 한다.

 

 

2. AWS EC2 CloudWatch 경보를 설정하자

 

 

CPU 사용량 경보 생성 - Amazon CloudWatch

이 페이지에 작업이 필요하다는 점을 알려 주셔서 감사합니다. 실망시켜 드려 죄송합니다. 잠깐 시간을 내어 설명서를 향상시킬 수 있는 방법에 대해 말씀해 주십시오.

docs.aws.amazon.com

 

 

1) 인스턴스 리스트 아래에 보면 모니터링이 있다. 모니터링을 누르고 오른쪽에 보면 경보 생성이 있다.

2) 경보 생성을 클릭하면 다양한 경보를 사용할 수 있는데 내가 할 것은 CPU 사용량 알림이다.

   그리고 경보를 보낸 다음에 할 인스턴스 작업을 지정할 수 있는데, 인스턴스 재부팅이 제일 좋지만 pm2 재부팅 스크립트 코드를 아직 입력을 못할 것 같아서 😥 우선 알림 먼저 받고 내가 수동으로 재부팅하고 pm2까지 켜보려고 한다.

3) 위와 같은 설정이 베스트지만, 다음 작업 수행을 빼고 설정한 경보를 생성하면 이렇다.

   여기서 추가 옵션 - 보기 - 우측의 작업을 눌러서 경보의 수정, 삭제 등을 진행할 수 있다.

 

 

*여기서 주의! 설정해둔 이메일에 들어가서 confirm을 진행해줘야 이메일을 받을 수 있다.

 

 

 

우선 알람이 오게 해뒀으니 안심이라구!

 

 

 

도움받은 글

 

AWS EC2 서버 터짐… (서버 재부팅, 경보 설정)

밤사이 저의 AWS EC2 서버가 터졌습니다. 아쉽게도 사용자가 많아 터진 것은 아니었습니다… ㅎ

blog.uniony.me

 

728x90