블로그 이미지

suddiyo


꾸준히 기록하고 성장하는 백엔드 개발자 💻
Today
-
Yesterday
-
Total
-

ABOUT ME

-

  • [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 공간이 할당된 것을 확인할 수 있다.


    📋 참고 자료

     

    EC2가 갑자기 멈춘다면?(swap 메모리)

    배경 현재 본인의 경우 테스트 서버용으로 AWS에서 EC2 t3a.small 인스턴스를 구동하고 있다. CPU 2코어, 메모리 2GB 정도면 테스트 배포를 구성하기에 충분할 것이라고 생각했다. Mysql Express React Nginx-pr

    wooogy-egg.tistory.com

     

     

    AWS EC2 프리티어에서 메모리 부족현상 해결방법

    AWS free tier를 사용하다보면 2%가 부족할 때가 있다. AWS 프리티어는 가난한 대학생에게는 한줄기 빛과 같은 존재인데, AWS의 프리티어라서 적게 돈이 나가는 것도 좋고, 실제로 이것저것 해볼 수 있

    sundries-in-myidea.tistory.com

     

    728x90

    댓글

Designed by Tistory.