AWS EC2 메모리 부족 해결
카테고리: aws
태그: aws
1. AWS EC2 다운 현상 발생
소규모 프로젝트 및 개인 학습을 위해 사용하는 AWS EC2가 최근 주기적으로 다운이 되어서 매번 재기동을 했다. 통신 지연이 발생해서 서울로 옮겼다. 그런데 이제는 서비스를 몇개 올리지도 않았는데 동작중 응답이 없고 SSH는 접속도 안된다. 문제를 인식하고 몇 일간 리소스 모니터링 해보았는데 AWS 외부에서 CPU 모니터링을 했을 때 최대 20%를 넘어가지 않았다. 그런데 SSH가 응답이 없어지거나 네트워크 데이터 전송 자체가 안되는 증상이 지속적으로 발생했다.
사례와 자료를 찾아 본 결과 메모리 부족일 가능성이 높았다. 메모리가 순간적으로 오버플로우 되어서 시스템 전체가 다운되는 현상이 발생 한 것 같다.
사용 중인 t2.micro의 경우 1GB의 메모리를 사용한다. 이것을 늘리면 된다. 클라우드의 장점이 무엇인가? 사용 중 용량이 필요하면 늘리면 되고, 성능이 부족하면 하드웨어 사양을 변경하면 된다. 메모리의 경우 인스턴스 유형을 변경하면된다.
인스턴스 유형 변경
인스턴스가 중지 된 상태에서 우클릭을 한다.
인스턴스 설정
> 인스턴스 유형 변경
을 클릭한다.
인스턴스 유형을 선택하고 적용하면 끝이다.
비용 발생
이전에도 이야기 한적이 있지만 PayToWin이다.
그런데 우린 가난한 개발자다. 프리티어나 최소 요금을 사용하는데 서버 유지비 증가라니…
선구자들은 많은 연구를 했고 방법을 찾아두었다.
바로 가상메모리 HDD의 일부를 메모리처럼 사용하는 기술이다. 물론 속도문제가 발생하고 Paging, Swap 속도 등 이슈는 있지만
다운되거나 응답이 없는거 보단 개선되는 상황이다.
사용중인 AWS EC2는 Amazon linux 2023이 설치 되어 있어서 Swap 영역을 늘리기로 하였다.
2. SWAP 메모리 적용하기
Swap 파일 생성
# swap 메모리를 할당한다.
sudo dd if=/dev/zero of=/swapfile bs=128M count=16
# 생성결과
16+0 records in
16+0 records out
2147483648 bytes (2.1 GB, 2.0 GiB) copied, 32.2786 s, 66.5 MB/s
Block size : 128M Count : 16 Swap size : 128 * 16 = 2,048M = 2G
2GB의 스왑 메모리 영역을 생성한다.
Swap 파일 설정
권한과 사용을 위한 설정을 진행한다.
# 스왑 파일에 대한 권한을 업데이트
sudo chmod 600 /swapfile
# 스왑 영역을 설정
sudo mkswap /swapfile
# 설정결과
Setting up swapspace version 1, size = 2 GiB (2147479552 bytes)
no label, UUID=0687c58d-9602-4c2a-9250-000000000000
# 스왑 공간에 스왑 파일 추가하고 스왑 파일 사용 가능하도록 설정
sudo swapon /swapfile
# 생성과 설정 결과 확인
sudo swapon -s
Filename Type Size Used Priority
/swapfile file 2097148 0 -2
Swap 파일 시스템 설정
생성은 완료 되었지만 부팅 할 때 마다 Swap영역 설정 작업을 해야 한다. 부팅 설정을 변경하여 재기동시 자동으로 설정되도록 한다.
sudo vi /etc/fstab
# 아래 내용을 추가한다.
/swapfile swap swap defaults 0 0
모든 설정이 완료되었다면 결과를 확인한다.
free
total used free shared buff/cache available
Mem: 976044 566664 138820 2868 270560 260916
Swap: 2097148 0 2097148
사용 가능한 메모리가 증가 했다. 메모리 증설보다는 성능이 차이가 많이 나지만 기약없는 응답 대기나 시스템이 다운되는 현상은 줄어들 것이다. 언젠가 여유가 되면 물리적인 하드웨어 스펙을 올리고 싶다.
개인 공부 기록용 블로그입니다. 오류나 틀린 부분이 있을 경우
댓글 또는 메일로 알려주시면 감사하겠습니다.
댓글 남기기