ec2 cpu 부족으로 멈춤 현상

손승우·2024년 6월 17일
0

EC2 프리 티어를 사용하여 CI/CD와 S3 마운트(S3fs 사용)를 구현하는 과정에서 EC2의 스펙 부족으로 인한 시스템 멈춤 현상을 겪었습니다. 모니터링 결과, CPU 사용량이 급격히 증가하여 100%를 초과하며 EC2가 멈추는 문제가 발생하는것을 확인했다. EC2의 하드웨어 스펙 문제로 생각하고 스펙을 늘리는 것을 생각해봤으나, 가난한 개발자라 기왕이면 프리 티어 내에서 해결하고자 했습니다.

조사해 보니 디스크 용량을 RAM으로 활용하는 방법이 있어 이를 적용해 보았습니다. 이 방법을 통해 프리티어내에서 CI/CD 및 s3마운트를 ec2 멈춤현상없이 진행할 수 있었습니다.

문제 상황:

EC2 프리티어 인스턴스에서 CI/CD 작업과 S3 마운트를 진행하는 과정에서 메모리 부족 현상 발생. CPU 사용량이 100%를 초과하며 인스턴스가 멈추는 문제 발생.

해결 방법:

디스크 용량을 RAM처럼 활용하는 스왑 파일(swap file)을 생성하여 메모리 부족 문제 해결.

빈 파일 생성:

dd if=/dev/zero of=/root/swapfile bs=1k count=2000000 conv=excl 명령어를 사용하여 2GB 크기의 빈 파일(/root/swapfile)을 생성합니다.
bs=1k는 블록 크기를 1KB로 설정하고, count=2000000은 200만 개의 블록을 생성하여 총 2GB 용량을 확보합니다.

파일 권한 설정:

chmod 600 /root/swapfile 명령어를 사용하여 스왑 파일의 권한을 600(소유자만 읽기/쓰기 가능)으로 설정합니다.
스왑 파일 활성화:

mkswap /root/swapfile 명령어를 사용하여 빈 파일을 스왑 파일로 변환합니다.
swapon /root/swapfile 명령어를 사용하여 스왑 파일을 활성화합니다.
free -h 명령어를 사용하여 스왑 영역이 추가되었는지 확인합니다.

스왑 파일 자동 활성화 설정:

  • 인스턴스를 재식할때마다 swap 파일을 기동시켜줘야하는데 이 작업은 너무 번거롭기 때문에
    fstab파일에 값을 추가해주면 인스턴스를 재시작할때 자동으로 해당 swap을 실행시켜준다.

/etc/fstab 파일 편집:
vi /etc/fstab 명령어를 사용하여 /etc/fstab 파일을 엽니다.

스왑 파일 정보 추가:

/root/swapfile swap swap defaults 0 0 내용을 파일에 추가합니다.
이렇게 설정하면 인스턴스 재시작 시 자동으로 스왑 파일이 활성화됩니다.
결론:

위 방법을 통해 EC2 프리티어 인스턴스의 메모리 부족 문제를 해결하고, CI/CD 작업 및 S3 마운트를 안정적으로 수행할 수 있습니다.

참조 https://hjjooace.tistory.com/42

profile
개구리

0개의 댓글