본문 바로가기
[AWS]

AWS Swap memory 활용으로 메모리 부족 해결하기

by Hevton 2024. 6. 19.
반응형

 

대부분의 많은 분들이, 프로젝트 초반 구축에 있어서 AWS EC2 프리티어를 사용합니다.

프리티어의 인스턴스는 t2.micro 타입이며, 램이 1GB 유형을 갖고 있기 때문에

 

EC2 인스턴스에서 서버 하나를 띄우고, AWS RDS 사용 대신에 데이터베이스 서버까지 함께 EC2에 띄운다면

메모리 부족 현상이 발생할 수 있습니다.

 

메모리 부족 현상으로 인해 서버가 다운되거나 인스턴스가 다운될 수 있습니다.

프로젝트 초반 운영에서는 한정적인 자원으로 운영할 필요가 있기 때문에, 프리티어를 포기하기도 리소스적으로 애매합니다.

 

 

 

이럴 땐 swap memory 할당을 활용하면 됩니다.

EC2의 디스크 용량을 이용해서 부족한 메모리를 대체하는 공간을 swap memory 라고 합니다.

이번 글에서는 리눅스에서 swap file을 생성하여 swap memory를 할당하는 방법을 설명드리겠습니다.

 

 

 

1. EC2 인스턴스에 접속

먼저 ssh 를 통해 인스턴스에 접속합니다.

보통 다음과 같은 명령어로 인스턴스에 접속합니다.

ssh -i {xxx.pem} {접속 주소}

 

참고로 저는 매번 이렇게 접속하는게 다소 불편하다고 생각되어서, 쉘 스크립트를 작성해서 접속합니다.

 

 

접속 파일명을 login.sh로 두자면

vi login.sh

 

를 이용해서 vi 에디터를 열어준 뒤에 아래와 같이 작성해줍니다.

 

#!/bin/bash

ssh -i {xxx.pem} {접속 주소}

이렇게 작성해주면, 다음부터 서버에 접속할 때 아래 명령어 한 번이면 됩니다.

./login.sh

 

 

2. swap memory 할당

sudo dd if=/dev/zero of=/swapfile bs=128M count=16

dd는 파일 복사 및 변환 관련 유틸리티입니다.

보통 swap memory는 할당된 메모리의 2배 이상을 권장하고 있기 때문에,

제 메모리는 1GB 이므로 2GB를 할당하게 됩니다.

(128M x 16)

 

 

3. swap file에 접근 권한 설정

sudo chmod 600 /swapfile

 

 

4. mkswap을 통해 swapfile을 추가할 swap 공간 생성

sudo mkswap /swapfile

 

 

5. swapon 을 통해 swapfile을 swap memory에 추가

sudo swapon /swapfile

 

 

6. 파일 시스템 정보 저장 (마운트)

sudo vi /etc/fstab

# 맨 아래에 작성
/swapfile swap swap defaults 0 0

etc/fstab은 파일시스템 정보를 저장하는 곳으로, 파티션 변경과 디스크 추가 시 이 파일에 등록해야 마운트가 됩니다.

 

7. 등록 확인

free

swap 메모리가 등록되었다

 

 


 

우테코 선배님들이 알려주셨다 !

 

추가 참고 자료

- 공식 문서

- 블로그

 

 

 

반응형