EC2 프리티어를 사용하는 경우 메모리가 1GB만 제공되기 때문에 메모리가 부족할 수 있다.
그럴 때 swap 메모리 설정을 하여 부족함을 해결할 수 있다.
AWS repost의 게시글을 참조하여 진행해 보았다.
https://repost.aws/ko/knowledge-center/ec2-memory-swap-file
스왑 파일을 사용하여 Amazon EC2 인스턴스에서 메모리를 스왑 스페이스로 할당합니다.
Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스에서 스왑 파일로 사용할 메모리를 할당하고 싶습니다. 어떻게 해야 하나요?
repost.aws
1. ec2 접속
대시보드에서 ec2 > 인스턴스> 작업 > 연결 메뉴로 접속한다.
ssh -i ~ 로 시작하는 명령어를 복사하여 pem 파일이 있는 위치에서 실행한다.
위와 같이 날개를 펴는 새가 나온다면 정상적으로 접속이 된 것이다.
2. 현재 메모리 확인
free -m
free -m 명령어를 통해 현재 메모리 상태를 확인한다.
사용가능한 메모리가 단 697mb뿐이다..
- free : 시스템의 메모리 상태를 출력하는 명령어
- -m : 메모리 사용량을 메가바이트(mb) 단위로 표시한다.
3. 스왑파일 생성
sudo dd if=/dev/zero of=/swapfile bs=128M count=16
스왑파일의 크기는 ram의 2배 정도로 잡으면 된다.
사용하고 있는 t2.micro의 크기는 1GB이기 때문에 스왑파일의 크기가 2GB가 될 수 있도록 bs=128M count=16으로 설정하였다.
- dd : 데이터 복사 및 변환을 위한 명령어. 파일을 복사하거나 특정 형식으로 데이터를 변환하는 데 사용된다.
- if=/dev/zero : if는 input file의 약자로, 입력 파일을 지정한다. /dev/zero는 무한히 0으로 채워진 데이터를 생성하는 특수 파일이다. 즉, 이 명령어는 0으로 채워진 데이터를 읽어오는 것이다.
- of=/swapfile : of는 output file의 약자로, 출력 파일을 지정한다. 즉, /swapfile이라는 이름으로 스왑 파일을 생성하는 것이다.
- bs=128M : bs는 block size의 약자로, 읽고 쓸 블록의 크기를 지정한다. 즉, 한 번에 128MB의 데이터를 읽고 쓰는 것이다.
- count=16 : count는 지정된 블록 크기로 몇 개의 블록을 읽고 쓸 것인지를 설정한다. 16개 블록을 지정하였으니 총 생성되는 데이터 크기는 128MB * 16 = 2048MB, 즉 2GB의 스왑 파일이 생성되는 것이다.
명령어의 의미는 /dev/zero에서 0으로 채워진 데이터를 읽어와서 /swapfile이라는 이름의 파일을 생성하고, 그 파일의 크기는 2GB가 된다는 뜻이다.
만약 4GB의 스왑파일을 생성하고 싶다면 아래와 같이 count를 32로 설정하면 된다.
sudo dd if=/dev/zero of=/swapfile bs=128M count=32
4. 스왑파일의 읽기 및 쓰기 권한을 업데이트
sudo chmod 600 /swapfile
파일 소유자에게만 읽고(4) 쓸 수 있도록(2) 권한을 부여한다.
- chmod : 파일의 권한을 변경하는 명령어
- 권한 600 :
- 6 : 파일 소유자에게 읽기(4) + 쓰기(2) 권한을 부여한다.(4+2=6)
- 0 : 그룹 사용자에게 아무 권한도 부여하지 않는다.
- 0 : 다른 사용자에게 아무권한도 부여하지 않는다.
5. 스왑 공간으로 초기화
sudo mkswap /swapfile
- mkswap : 스왑 공간을 만들기 위한 명령어. swapfile을 스왑 공간으로 설정되게 한다.
6. 스왑공간 활성화
sudo swapon /swapfile
- swapon : 스왑공간을 활성화한다. mkswap 명령어로 인해 스왑공간으로 초기화된 swapfile을 활성화시키는 것이다.
7. 스왑공간 활성화 확인
sudo swapon -s
현재 활성화된 스왑공간을 확인할 수 있다. 의도한 대로 2GB의 스왑공간이 활성화 중이다.
- swapon -s : s는 활성화된 스왑 공간의 상태를 요약해서 보여주는 명령어이다.
8. 파일을 편집하여 부팅 시 자동으로 스왑파일 시작하도록 함
1. vi 편집기로 fstab 파일 열기
sudo vi /etc/fstab
2. i로 편집모드 진입
3. 파일 끝에 내용 추가
/swapfile swap swap defaults 0 0
4. wq! 입력하여 저장 후 나오기.
9. 메모리 재확인
작업이 완료된 후 free 명령어로 다시 메모리 상태를 확인해 보면
swap 영역에 2047mb의 사용가능한 공간이 생긴 걸 볼 수 있다.
'개발 공부 > etc' 카테고리의 다른 글
[XML] CDATA (0) | 2024.08.11 |
---|---|
맥에 VM WARE 설치하기 (1) | 2022.07.06 |