개요
현재 사용하고 있는 인스턴스는 t2.micro이고 현재는 아직 OOM 문제를 발견하지는 못하였으나 서비스들을 완성하고 해당 환경에서 배포를 시작한다면 여러 개의 서비스를 올리는 특성상 OOM 문제를 맞닥뜨릴 것이라고 생각한다.
💡 OOM (Out Of Memory) 인스턴스에서 사용할 수 있는 메모리가 모두 소진되어 더 이상 할당할 수 없는 상태
따라서 사전에 예방책을 준비하기로 하였고 현재는 스왑 메모리를 사용하기로 결정하였다. 스왑 메모리를 사용하더라도 문제가 생긴다면 그때에는 인스턴스 업그레이드를 하기로 한다. 어느 정도의 비용이 발생하겠지만 최대한 비용 효율적으로 결정하겠다.
스왑 메모리 사용
그렇다면 스왑이란 무엇인가? 스왑은 컴퓨터에서 주메모리가 부족할 때 사용할 수 있는 보조 저장 공간이다.
주메모리는 프로그램에 필요한 데이터를 일시적으로 저장하는데, 가끔 시스템이 필요로 하는 메모리 양이 주메모리 용량을 초과하는 경우가 발생한다. 우리의 경우에는 여러 개의 Docker Container를 띄울 것이니 서비스 과다가 해당할 수 있겠다.
이런 경우, 스왑 메모리는 가상 메모리처럼 사용된다. 주메모리에 저장할 수 없는 데이터를 HDD나 SSD 같은 보조 저장 장치에 저장하여 해결하는 것이다. 이를 스왑 공간이라 부른다.
AWS 환경에서는 EBS 볼륨을 해당 공간으로 활용한다.
sudo dd if=/dev/zero of=/swapfile bs=128M count=16
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile swap swap defaults 0 0' | sudo tee -a /etc/fstab
위와 같은 명령어로 스왑 메모리 사용을 할 수 있다. 만약 EBS 볼륨이 부족하다 싶으면 미리 볼륨을 키워야 한다.
결과를 확인했을 떄 스왑 메모리를 사용하는 것을 확인할 수 있다.
'Cloud > AWS' 카테고리의 다른 글
[AWS] Global Accelerator를 이용한 Multi Region Clustuer (0) | 2024.12.09 |
---|---|
[AWS] 가비아 도메인 구매 Route53 연결 (0) | 2024.12.06 |