AWS 숙달을 위해 프리티어로 비용을 거의 지불하지 않은 채로 EC2를 사용하시는 분들이 꽤 많으실 겁니다. 이때 가장 문제인 것은 EC2 스펙인데요. 아무래도 프리티어는 무료 서비스다 보니 굉장히 스펙이 낮은 EC2만 사용할 수 있습니다. 현재 프리티어로 제공되는 EC2 인스턴스 유형은 t2.micro로 메모리가 1GiB만 제공됩니다. 이로 인해 웬만한 애플리케이션은 메모리 부족으로 인해 해당 인스턴스에서 실행 시 문제가 됩니다. 개발한 애플리케이션을 실행하면 갑자기 EC2가 멈추는 현상을 경험하신 분들이 꽤 있을 겁니다. 이때는 조금 더 비싸고 좋은 인스턴스를 사용하는 것도 방법이 될 수 있지만, 프리티어를 유지한 채 문제를 해결하는 방법은 스왑 메모리 활용일 것입니다.
스왑 메모리(Swap memory)란?
스왑 메모리(Swap Memory)는 RAM이 부족할 때, 디스크의 일부를 임시 메모리(RAM처럼)로 사용하는 기술입니다. 쉽게 말해, 메모리가 부족하면 하드디스크(HDD/SSD)를 RAM처럼 활용하는 것입니다.
스왑 메모리 동작 원리
스왑 메모리는 자주 사용되지 않는 메모리(RAM의 데이터를) 디스크로 옮기고, 필요한 데이터를 다시 불러오는 방식으로 동작합니다.
- RAM이 꽉 차면
자주 사용하지 않는 데이터를 스왑 영역(디스크)로 이동
RAM 공간 확보 - 필요할 때 다시 가져옴 (Page-In / Page-Out)
스왑된 데이터를 다시 RAM으로 불러옴
하지만 디스크 속도가 느려서 성능 저하가 발생 가능
또한 이 과정에서 무조건 RAM이 가득 차야만 스왑 메모리를 사용하지는 않습니다. swappiness 값에 따라 스왑 메모리 사용 정도를 조절할 수도 있습니다.
❗️ swappiness 란?
기본적으로 리눅스는 swappiness 값에 따라 스왑을 얼마나 자주 사용할지 결정합니다. 기본값은 60으로 설정되어 있습니다. 즉, RAM이 약 60% 사용될 때 스왑을 적극적으로 사용하기 사작하는 것이죠. 이를 통해 메모리가 가득 차기 전에 미리 스왑 메모리를 활용할 수 있습니다.
스왑 메모리 설정 방법
1. 스왑 파일 생성
sudo dd if=/dev/zero of=/swapMem bs=128M count=16
- dd: 파일을 복사하고 변환하는 유틸리티입니다.
- if=/dev/zero: /dev/zero는 무한히 0을 생성하는 장치 파일입니다. 이 파일에서 데이터를 읽습니다.
- of=/swapMem: 새로 만들 스왑 파일의 경로를 지정합니다.
- bs=128M: 블록 크기를 128MB로 설정합니다.
- count=16: 총 16개의 블록을 생성하여 총 2GB(128MB * 16)의 스왑 파일을 생성합니다.
2. 파일 권한 설정
sudo chmod 600 /swapMem
위에서 설정한 스왑 파일에 권한 설정
3. 스왑 파일을 스왑 공간으로 설정
sudo mkswap /swapMem
위에서 설정한 스왑 파일을 스왑 공간으로 설정
4. 스왑 활성화
sudo swapon /swapMem
5. 스왑 상태 확인
sudo swapon --show
'데브옵스 > 클라우드 서비스' 카테고리의 다른 글
[AWS] Auto Scaling 사용해 트래픽에 맞춰 스케일링하기 (EC2, ALB) (0) | 2025.04.19 |
---|---|
[AWS] RDS 사용법 - 데이터베이스 생성 및 접속하기 (0) | 2025.04.03 |
[AWS] 도메인 구매 및 등록 (0) | 2024.12.30 |