본문 바로가기

캡스톤 졸업작품/Trouble Shooting

AWS 과금

 

메일을 확인하던 중 AWS 팀에서 보낸 보기 드문 제목의 메일을 확인해 보았다.

서버 과금에 관한 내용이었고 AWS에 등록된 카드에 금액이 부족하다는 내용이었다.

얼마나 나왔길래 카드에 있는 금액이 부족한거지 ..? 라는 생각으로 AWS의  과금 및 비용 관리 콘솔에 들어가본 결과...


위와 같은 아찔한 금액그래프를 확인할 수 있었다.. 

 

우선 급한대로 AWS의  EC2 서버 2대에서 각각 프로트엔드, 백엔드, RDS에서 데이터베이스를 운영중인 인프라를 GCP 무료 인스턴스 한곳에 배포 한뒤 포트 번호만 다르게 하여 배포 인프라를 마이그레이션 하였다. 그리고 모든 AWS 리소르를 내렸다.

 

그 후 해킹과 외부 사용자의 남용이 의심되어 AWS에 문의를 하였고 팀원들에게 서버 주소를 블로그나 외부인에게 공유한 적이 있는지 확인하였다. 하지만 팀원들 모두 블로그와 같은 외부에 공유하거나 외부인에게 유출하지 않았따고 하였다.

 

그리고 급하게 회의를 가지며 팀원들과 문제의 원인을 찾아본 결과 근거 있는 원인은 찾지 못했지만  홈페이지 렌더링시 게시물 컴포넌트 내부의 댓글 컴포넌트에서 재귀적인 api 호출 로직을 발견하였다. 그래서 댓글 보기 버튼을 클릭 시 api를 호출하는 로직으로 수정을 하였고 과도한 API 호출을 막기 위해 throttler를 사용해서 API Rate Limit을 설정하였다.

 

또한  확실한 근거 없이 이슈를 해결하며 서비스를 운영한다는 것은 불안하다고 판단하여 Google analytics를 심었다.

또한 위와 같이 문제가 생겼지만 정확한 원인을 몰라 불안해 하는 경우를 대비하여 Aws와 Slack을 활용해 로그 알람 시스템을 구축했다..

 

 

그렇게 큰 불은 해결했지만 변경된 배포 인프라 환겨에서는 서버가 너무 자주 터져서 서비스를 종료하게되었다..

비록 서비스는 결국 중단하게 되는 실패를 경험했지만, 팀원들과 회의 및 교수님의 자문을 구하며 협력한 경험을 통해 꼼꼼한 코드리뷰, 커뮤니케이션을 통한 전체 시스템 파악, 로그의 중요성을 배울수 있었다. 또한 이러한 이슈를 통해 개인의 성장 뿐 아니라 팀 전체의 역량이 단시간에 향상됨을 경험 하였다. 그리고 무엇보다 협력을 통해 얻은 값진 경험은 앞으로 앵간한 어려움이나 문제에 맞닥드리더라도 팀 조직과 함께라면 해결 할 수 있다는 자신감을 얻었서 너무 좋았다 !

 

 

 

 

 

 

 

 

 

우선 시험기간 확인하게 되어 급하게 기록할 준비만 하고.. 시험기간 끝나고 마저 포스팅해보자..