AWS EC2

AWS EC2의 free tier m2.micro를 사용중이다.
매달 750시간을 무료로 제공하고 기억상으론 6개월간 무료로 제공한다고 알고 있다.
이런 점은 돈이 없는 가난한 취준생에겐 매우 매우 좋은 부분이다.

하지만 여태 프로젝트를 잘 배포하고 있었는데 문제가 발생했다.
바로 프로젝트를 올리자마자 프로젝트가 사망하거나 서버가 사망한다는 것이다.
나뿐만 아니라 우리팀원들에게도 발생해 우리 프로젝트가 잘못 된것인지라는 생각을 하게 되었다.

그렇지만... 학원에서 강사님께 물어보았을 때 우리팀만 겪는 것이아닌 다른팀도 겪고 있다는 소식이 있었다.
해결방법은 강사님과 같이 연구해보았지만 결론은 '알수없음'
발생한게 수료 2일전이었기 때문에 오래 연구할 수 없었고 결국 우리끼리 서버 디버깅창을 보고 해결해야한다는 점이었다.

여러 원인들을 찾아보게 되었는데 CPU사용률을 보면 한번에 팍! 올라서 터질려하는 시점이 있고 그런 부분에서 터지는 현상을 추측하거나
AWS에서 CPU토큰을 제공하는데 그 사용률을 넘엇기때문에 꺼져버렸거나 등등 여러 의견이 있었지만 해결되지 못하고
종종 운빨?로 터지지 않는 경우가 발생했는데 프로젝트를 업데이트해서 재배포하면 여전히 터져버리기도 해서 문제를 해결하기 위해 여러 방법을 찾아다니기 시작했다.

그러던 중 비슷한 현상들을 겪고 있는 사람들을 발견했고 해결 방법 중 하나인 SWAP메모리 설정을 알아보게 되었다. 완벽한 해결법은 아닐지라도 일단 현재로서는 서버가 잘 살아있다.

스왑 공간 크기 계산

일반적으로 권장 공간은 다음과 같다.
물리적인 RAM 2GB 이하면 RAM용량의 2배(최소 32MB)
RAM 2GB초과 32GB미만이면 4GB + (RAM - 2GB)
RAM 32GB이상이면 RAM용량의 1배

참고로 32MB미만은 되어서는 안된다고 한다.

적용 방법

https://repost.aws/ko/knowledge-center/ec2-memory-swap-file
해당 방법은 공식홈페이지에서도 지원하고 있다.

1.dd명령어를 통해 swap메모리를 할당한다
128씩 16개의 공간을 만드는 것이여서 우리의 경우 count를 16으로 할당하는 것이 좋다. 2GB정도 차지하는 것이다.

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 파일을 편집하여 부팅 시 스왑 파일을 활성화한다.
리눅스 컴퓨터 부팅시 mount 정보를 저장하고 있는 /etc/fstab에 /swapfile 정보를 추가하는 것인데 추가하지 않는다면 재부팅시 위에서 설정한 /swapfile를 인식하지 못해서 설정을 해줘야한다.

sudo vi /etc/fstab

해당 명령어를 입력하면 vim파일이 열린다.
맨 마지막줄에 다음의 내용을 추가해준다.

/swapfile swap swap defaults 0 0

insert키를 누르면 입력모드가 되고 esc를 누르고 :wq를 입력하고 저장하고 나오면된다.
vim사용법은 따로 찾아보기를 바란다.

7.마지막 확인
free를 입력하면 설정결과가 나온다.

노트북밖에 없어서 컴퓨터가 구린 나로서는 램이 항상 모자라 윈도우 설정으로 가상메모리를 넣어줬었는데
리눅스 상에서 그런 가상메모리를 설정해주는 것이라고 이해하면 될 것 같다.
'물론' 돈주고 비싼 서버를 사용하면 되지만 가난한 취준생에게는 이런게 한계인 것 같다.

이글을 보는 사람들 모두 힘냈으면 좋겠다. 화이팅

+ Recent posts