스프링 부트를 개발하는 과정에서 갑작스레 연락이 왔다. 서버와의 통신이 안된다는 것이었다.
AWS EC2에 접속하니 실행되고 있어야할 프로세스가 죽어있었다. 기록된 로그를 확인하니 다음 문제가 적혀있었다.
원인은 간단했다. AWS EC2가 프리 티어이기에 메모리가 1기가만 할당되어 있는 상태였다. 그에 반해 자신이 수행해야 일들이 많기에 발생한 문제였다.
빠르게 문제를 해결할 수 있었는데 이는 AWS에 공식문서가 이미 존재했기 때문이다. 가상 메모리를 통해 문제를 해결하였다.
- dd 명렁을 사용하여 루트파일 시스템에 스왑 파일 생성한다. 스왑 파일은 2GB(128MB x 16)으로 설정하였다.
$ sudo dd if=/dev/zero of=/swapfile bs=128M count=16
2. 스왑 파일의 읽기 및 쓰기 권한을 업데이트한다.
$ sudo chmod 600 /swapfile
3. 리눅스 스왑 영역을 설정한다.
$ sudo mkswap /swapfile
4. 스왑 공간에 스왑 파일을 추가하여 즉시 사용할 수 있도록 한다.
$ sudo swapon /swapfile
5. 프로시저가 성공적인지 확인.
$ sudo swapon -s
6. /etc/fstab 파일을 편집하여 부팅시 스왑파일을 활성화한다
$ sudo vi /etc/fstab
7. 파일 끝에 다음 줄을 새로 추가하고 파일을 저장후 종료
/swapfile swap swap defaults 0 0
참조:
https://aws.amazon.com/ko/premiumsupport/knowledge-centerec2-memory-swap-file/ https://sundries-in-myidea.tistory.com/102
'문제해결' 카테고리의 다른 글
pm2 start시 pem 권한 문제 (0) | 2024.06.08 |
---|---|
pm2 had too many unstable restarts(16). stopped. “errored” (0) | 2024.06.08 |
[AWS] EC2 Nginx host not found in upstream ELB (0) | 2023.08.18 |
[SpringBoot] JSON과 image 동시에 값 보내기 (0) | 2023.08.18 |
[SpringBoot] JPA 테이블 또는 필드를 찾지 못할 때 (0) | 2023.08.18 |