-
[AWS] EC2 프리티어 메모리 부족 문제 | Swap 메모리 설정AWS 2023. 9. 29. 21:47
❗️ 문제
AWS EC2 인스턴스를 생성한 후, ssh에서 프로젝트를 clone하여 빌드를 진행했으나 10%에서 멈추는 현상이 발생하였다.
./gradlew test —debug
위 명령어를 통해 디버그 모드를 실행한 결과, 'installReact' task에서 메모리 문제가 발생한 것을 확인할 수 있었다.
📃 에러 로그
.. (생략) .. 9-29T17:04:50.425+0900 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on daemon addresses registry. 2023-09-29T17:04:51.121+0900 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire shared lock on daemon addresses registry. 2023-09-29T17:04:51.241+0900 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Lock acquired on daemon addresses registry. 2023-09-29T17:04:51.537+0900 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on daemon addresses registry. 2023-09-29T17:04:54.673+0900 [DEBUG] [org.gradle.process.internal.health.memory.DefaultMemoryManager] 402653184 memory requested, 15282176 free 2023-09-29T17:04:54.769+0900 [DEBUG] [org.gradle.workers.internal.WorkerDaemonExpiration] Will attempt to release 384 of memory 2023-09-29T17:04:54.769+0900 [DEBUG] [org.gradle.process.internal.health.memory.DefaultMemoryManager] 402653184 memory requested, 0 released, 15282176 free <=------------> 10% EXECUTING [2m 37s] > :installReact
➡️ 메모리가 요청된 양보다 남은 양이 적어 메모리 부족 문제가 발생한 것을 확인할 수 있었다.
✅ 해결1️⃣ Swap 메모리 확인
free -m
EC2 인스턴스를 중지하고 다시 시작한 후에, 명령어를 입력했다.
이렇게 Swap 메모리를 확인한 결과, 0으로 설정 되어있는 것을 확인하였다.
2️⃣ Swap 메모리 설정
Swap 메모리를 설정하기에 앞서, 스왑 공간의 크기를 계산해주었다.
아래는 AWS에서 권장하는 스왑 공간 크기이다.
본인은 메모리가 1GiB인 t2.micro 인스턴스를 사용하기 때문에, 스왑 공간 크기를 2GiB로 설정해주었다.
1. 루트 파일 시스템에 Swap 파일을 생성
sudo dd if=/dev/zero of=/swapfile bs=128M count=16
위 명령을 실행하여 루트 파일 시스템에 Swap 파일을 생성하였다.
스왑 공간 크기를 2GiB로 주고 싶다면, bs=128M count=16(128*16=2048)로 설정한다.
(4GiB로 주고 싶다면, count=32로 설정하면 된다.)
2. Swap 파일에 읽기 및 쓰기 권한을 부여(600 ➝ r, w)
sudo chmod 600 /swapfile
3. 리눅스 Swap 영역 설정
sudo mkswap /swapfile
4. Swap 공간에 Swap 파일 설정
sudo swapon /swapfile
5. 부팅 시 Swap 파일 활성화 설정
sudo vi /etc/fstab
/swapfile swap swap defaults 0 0
편집기를 열고 위 설정을 추가한다.
6. Swap 메모리 확인
마지막으로 free -m 명령어를 통해 Swap 공간이 할당된 것을 확인할 수 있다.
📋 참고 자료
728x90