만쥬의 개발일기
article thumbnail

개요

개발 연습을 할 때 EC2 프리티어 만큼 좋은게 없다.

구글 계정을 만들기는 쉬운데, 구글 계정을 만들 때마다 인스턴스를 하나씩 무료로 쓸 수 있기 때문이다.

그러나 메모리 때문에 아쉬울 때가 종종 있다.

일례로 이전에 리액트 웹 프로젝트를 배포할 때, 리액트를 빌드하지 못하고 서버가 멈춰 원인이 뭔지

엄청 헤맸던 기억이 있다..

 

이번에도 스프링 부트 프로젝트를 진행하며 gradle을 통해 빌드를 시도했는데, 또 서버가 터져버리고 말았다.

그래서 리눅스의 SWAP 메모리를 통해 문제를 해결해보기로 하자.

 

일반적으로 SWAP Space는 다음과 같이 권장된다.

물리적 RAM의 양 권장 스왑 공간
RAM 2GB 이하 RAM 용량의 2배(최소 32MB)
RAM 2GB 초과, 32GB 미만 4GB + (RAM – 2GB)
RAM 32GB 이상 RAM 용량의 1배

프리티어의 메모리는 1GB이므로, 2GB를 SWAP Space로 잡는다고 생각하면 된다.

 

해결 방법

우선 EC2 인스턴스 콘솔에 접속한 뒤, 다음 명령어로 swap 메모리를 할당한다.

sudo dd if=/dev/zero of=/swapfile bs=128M count=16

위 명령어대로면 128MB씩 16개, 즉 2GB 가량을 할당하게 된다.

 

스왑 파일에 대한 읽기 및 쓰기 권한을 준다.

sudo chmod 600 /swapfile

 

Linux 스왑 스페이스를 설정한다.

sudo mkswap /swapfile

 

스왑 공간에 스왑 파일을 추가해 스왑 파일을 바로 사용 가능하도록 만든다.

sudo swapon /swapfile

 

절차가 성공했는지 확인한다.

sudo swapon -s

 

다음과 같이 나오면 여기까지 성공이다.

 

/etc/fstab 파일을 편집하여 부팅 시 스왑 파일을 활성화하도록 한다.

sudo vi /etc/fstab

 

해당 파일의 가장 아래쪽에 다음 내용을 추가하고 저장한다.

/swapfile swap swap defaults 0 0

 

free 명령어를 통해 적용이 잘 되었는지 확인하자.

free

 

스왑 스페이스는 HDD에 메모리를 할당하기 때문에, RAM에 비해 조금 느려지지만, 그래도 돌아가는 것에 만족한다면.. 이 방법이 최선이라고 생각한다.

 

reference

profile

만쥬의 개발일기

@KangManJoo

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!