Skip to content

AWS EC2 서버 다운

F i n n edited this page Dec 12, 2022 · 4 revisions

1. 도입 이유 & 문제상황

실제 서비스를 시작하고, 서버의 문제 없이 원활하게 서비스가 제공되던 중이었다. 홍보를 통해 많은 유저의 참여를 유발 하던 중 서버가 작동 하지 않는 문제가 발생했다. 원인을 찾아보니 aws ec2서버가 멈춘 것 이었다. 가격 대비 성능이란 말이 있듯이, 우리 서비스에서 사람이 크게 몰리지 않을 것으로 생각하고, 프리티어 기준 가장 저렴한 ec2 서버를 구매 했었다. 상세스펙은 1cpu 1gib램메모리, 8gib의 ssd스토리지 이다. 하지만, 실제 서비스를 운용해보니 사람이 꽤나 몰리자 cpu사용률이 99%로 치솟으며, 서버 다운이 발생 한 것이었다.

image

2. 해결 방안

이를 해결해보기 위해 리눅스 서버에 접속하여 명령어로 여러 가지를 살펴 본 결과, 굉장히 램이 모자라다는 것을 알게 되었다. cpu와 메모리는 매우 밀접한 관계로 메모리양이 모자라도, cpu가 과부하가 99% 치솟으며, 서버 다운이 되는 케이스가 있다는 것을 확인 하였다. 이를 해결 하기 위해 다양한 방법을 생각 해보았다.
-1. 좀 더 성능이 좋은 ec2 서버 구매하기.
-2. 한정된 자원의 효율 높이기.
-3. 자바웹어플리케이션의 코드 최적화

3. 의견 결정

2번의 방법이 가능하다면 가장 효율적이며 제한된 자원을 활용하는 방법 같았다. 그래서 2번에 해당하는 여러 방법을 강구 해보았는데, 실질적으로 도입한 방법은, 스토리지의 용량을 가상메모리로 사용 하여, 메모리양을 늘리는 것이다. 스왑메모리 라고도 한다.

image

4. 결과 반영

image

실질적으로 스왑메모리를 도입한 이후, 한번의 문제도 없이 정상적으로 서비스가 진행되는 것을 확인 할 수 있다.

물론 자바어플리케이션을 최적화 하여 과부하를 줄이는 방법도 추가적으로 개발중이다.