[AWS EC2] EC2 멈춤,다운,CPU 사용률 100% 해결하기

Dev_ch·2023년 8월 14일
3
post-thumbnail

만약, AWS EC2를 프리티어로 사용하셨던 분 들이라면 한번쯤은 서버가 다운되는 현상을 겪었을 것이라고 생각한다. 필자의 경우도 이런 경우가 자주 일어나서 그럴때마다 서버를 종료시켜주고 켜주고 하는 아주 귀찮은 나날을 보내다가 언제까지 이럴 순 없으니 해결 방법을 찾아 나섰다.

EC2를 프리티어로 사용하게되면 t2.micro를 사용하는 경우가 많은데, 이게 램이 1G 밖에 안되다보니 Spring을 띄우거나 작업을 하다보면 메모리가 부족하여 빌드를 하거나 작업을 하던 도중 EC2가 멈추거나 ssh 접속이 되지 않는데 이 문제를 해결하는 방법은 아래와 같다.

Swap 메모리

🧐 Swap 메모리 : 실제 메보리보다 더 많은 메모리가 필요할때 디스크 공간을 이용해서 부족했던 메모리 공간을 늘릴 수 있는 공간이다.

당연하지만, Swap메모리는 디스크 공간을 이용해 만들어낸 가상 메모리기 때문에 속도가 상당히 떨어진다는 단점이 있다. 하지만 우리 같이 프리티어 사용자에게는 무료요금을 사용해야하기 때문에(...) 이정도는 감수해주도록 하자.

Swap 메모리를 이용해 문제 해결하기

1. Swap 메모리 추가하기

$ sudo dd if=/dev/zero of=/swapfile bs=128M count=16
$ sudo chmod 600 /swapfile
  • EC2는 기본 램 1GB를 갖고 있는데 + 쉘에 해당 명령어를 입력해 2GB 스왑파일을 생성한다.
  • 권한부여는 잊지말자!

2. Swap 메모리를 Swap 파일로 포맷

$ sudo mkswap /swapfile
  • 해당 명령어를 입력해서 Swap 메모리를 Swap 파일로 포맷할 수 있다.

3. Swap 메모리 활성화

$ sudo swapon /swapfile
$ sudo swapon -s
  • 해당 명령어를 입력해 Swap 메모리를 활성화 시킨다.
  • 마지막 명령어를 통해 출력은 활성화된 스왑 파일의 정보와 크기 등을 보여주고, 출력은 활성화된 스왑 파일의 정보와 크기 등을 나타낸다.

4. Swap 메모리 시스템이 재시작되더라도 자동 활성화

$ sudo vi /etc/fstab 

# 마지막 행에 추가하기
/swapfile swap swap defaults 0 0
  • vi 명령어를 이용해 설정 파일로 들어가 마지막 행에 해당 구문을 추가해주자.

5. 현재의 메모리 사용 및 가용 메모리에 대한 정보 확인

$ sudo free -h 
  • 해당 명령어를 입력하면 현재 메모리에 관한 정보를 확인 할 수 있는데 우리가 생성한 Swap 메모리가 잘 작동하고 있는지 확인해주자.

기타 정보

# Swap 메모리 삭제
sudo rm -r swapfile

# 단일 Swap 메모리 비활성화
$ sudo swapoff swapfile

# 모든 Swap 메모리 비활성화
$ sudo swapoff -a

이렇게 하면 디스크를 이용해 메모리를 추가해 줄 수 있다. 속도는 많이 떨어져도 일단 서버가 혼자 기분 상해서 다운되는 상황은 막을 수 있을 것 이다. 프로젝트를 새로 시작할때 해당 세팅은 이제 필수로 가져가려 한다. 다운되는 현상이 한두번이 아니다보니 이것도 나름 서버 구축의 스트레스였는데 해결했다 😂

참고로 해당 예제는 128MB * 16으로 2GB의 Swap 메모리를 생성했는데, 사용하려는 메모리 크기에 맞춰서 만들어주도록 하자 🙇‍♂️

profile
내가 몰입하는 과정을 담은 곳

1개의 댓글

comment-user-thumbnail
2023년 8월 14일

유익한 자료 감사합니다.

답글 달기