AWS프리티어는 무료라서 많은 사람들이 사용하는 아주 좋은 서비스인데, 한가지 문제가있다.
t2.micro의 램이 1GB정도 밖에 되지않아서, 여러 가지의 프로젝트를 동시에 돌리는 것은 부담일 수 있다는 것이다.
나같은 경우에도, Spring boot를 실행하니 계속 서버의 연결이 끊기는 문제가 발생했다..
처음에는 설정문제인가싶어서, 계속 인스턴스를 재부팅하고 서버 설정파일도 수정하는 등 여러 작업들을 수행했지만... 계속 해결되지않았다.
결국 메모리부족의 문제였던것이다.
참고한 다른 필자의 블로그를 참고했을때에는 CPU 사용률이 80-90%까지 치솟았고, 나는 30%까지밖에 도달하지않는것은 의문이었지만 메모리부족의 문제를 해결해보기로 하였다.
리눅스에서는 swap메모리를 지정할 수 있다.
아마 서버 초기설정시 지정되었을것이다.
SWAP 메모리란? <- 링크를 참조!
ec2 프리티어는 1G RAM이므로, 권장사항에 따라 2G로 잡으면된다.
https://aws.amazon.com/ko/premiumsupport/knowledge-center/ec2-memory-swap-file/
공식 홈페이지를 참고하였지만, 또 소개하겠다.
1.dd 명령을 사용하여 루트 파일 시스템에 스왑 파일을 생성한다.
명령에서 bs는 블록 크기이고 count는 블록 수이다.
스왑 파일의 크기는 dd 명령의 블록 크기 옵션에 블록 수 옵션을 곱한 값이다.
이러한 값을 조정하여 원하는 스왑 파일 크기를 결정한다.
! 지정한 블록 크기는 인스턴스에서 사용 가능한 메모리보다 작아야 한다. 그렇지 않으면 "memory exhausted" 오류가 발생한다.
본인이 진행한 스왑 파일은 2GB(128MB x 16)이다.
$ sudo dd if=/dev/zero of=/swapfile bs=128M count=16
2.스왑 파일의 읽기 및 쓰기 권한 업데이트
$ sudo chmod 600 /swapfile
3.Linux 스왑 영역 설정
$ sudo mkswap /swapfile
4.스왑 공간에 스왑 파일을 추가하여 스왑 파일을 즉시 사용할 수 있도록 설정
$ sudo swapon /swapfile
5.프로시저가 성공적인지 확인합니다.
$ sudo swapon -s
6./etc/fstab 파일을 편집하여 부팅 시 스왑 파일을 시작.
편집기에서 파일을 연다.
$ sudo vi /etc/fstab
파일 끝에 다음 줄을 새로 추가하고 파일을 저장종료.
/swapfile swap swap defaults 0 0
7.모든 과정이 끝났으면, 잘 할당되었는지 확인.
$ free -m
(-m : MB 단위로 확인)
참고해서 해결했어요 감사합니다!!!!