GCP e2-small 스왑 메모리 설정하기 (e2-small 메모리 늘리기)
cleanUrl: /GCP-e2-small-스왑-메모리-설정하기-(e2-small-메모리-늘리기)
😥 문제
- GCP의 e2-micro 인스턴스를 사용하고 있는데, 램 메모리가 1GB밖에 되지 않아 서버를 빌드하고 배포하는 도중 메모리 부족 현상으로 서버가 다운되는 문제 발생
🧐 원인
- GCP의 프리티어
e2-micro를 사용하고 있는데 램 메모리가 1GB 밖에 되지 않기 때문에 메모리가 부족한 현상
- GCP Compute Engine 무료 조건
- 오리건:
us-west1 - 아이오와:
us-central1 - 사우스캐롤라이나:
us-east1 - 30GB/월 표준 영구 디스크
다음 미국 내 리전 중 한 곳에서 비선점형 e2-micro VM 인스턴스 1개
😎 해결 방법
1. GCP 인스턴스 유형 변경
- 돈을 써서 인스턴스 유형을 e2-small 또는 더 높은 사양으로 변경하여 메모리 문제를 해결하는 방법
- 하지만, 이 방법은 비용이 증가할 수 있고, 단기적으로만 해결되는 경우이기 때문에 다른 대안을 찾아야 했다.
2. 스왑 메모리 설정
e2-micro인스턴스의 메모리는 1GB로 애플리케이션을 배포하기에는 부족
- 따라서, 디스크 공간을 임시 메모리로 사용하여 부족한 메모리 용량을 확장
1. swapfile 생성
sudo fallocate -l 4G /swapfile
저장공간 확인하기
df -h
ㅤ | Filesystem | Size | Used | Avail | Use% | Mounted on |
Before | /dev/root | 30G | 5.8G | 24G | 21% | / |
After | /dev/root | 30G | 9.8G | 20G | 34% | / |
2. swapfile 권한 설정
sudo chmod 600 /swapfile
3. swap 공간 생성
sudo mkswap /swapfile
- mkswap: Make Swap의 약자로 스왑 파티션이나 스왑 파일을 생성하는 명령어
Output
Setting up swapspace version 1, size = 4 GiB (4294963200 bytes) no label, UUID=dd9a48f1-...
4. swapfile 스왑 메모리 추가
sudo swapon /swapfile
5. swap 파일시스템 설정
- 시스템 부팅 시마다 자동으로 활성화되도록 파일시스템을 수정
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
6. free 명령어로 메모리 상태 확인
- 스왑 메모리로 4GB가 할당된 모습을 확인
free -h

3. 스왑 메모리 삭제
- 추후에 스왑 메모리를 삭제해야 할 수도 있어서 메모리에 삭제에 관한 부분도 기록 해둔다.
1. swapfile 비활성화
sudo swapoff -v /swapfile
2. free 명령어로 메모리 상태 확인
- 스왑 메모리가 삭제된 모습을 확인
free -h

3. /etc/fstab 파일에서 스왑 파일 entry를 제거
/swapfile none swap sw 0 0부분을 제거하거나 주석 처리
sudo vi /etc/fstab

4. swapfile 삭제
sudorm /swapfile
😎 논의
- 저장 공간 많이 안 쓰면 무조건 크게 잡는게 이득 아닌가?
- gcp 권장 스왑 공간은?
참고 문헌
![[GDGoC] GCP로 스프링 프로젝트 배포하기](https://velog.velcdn.com/images/dongkyun0713/post/f8343f09-ee59-4433-9b61-810980a447f4/image.png)
[GDGoC] GCP로 스프링 프로젝트 배포하기
GDG on Campus SKHU 서버 파트의 스터디를 위한 7주차 강의 자료입니다. 🎬 개요 지난 6번의 스터디 동안 자바와 스프링 부트의 기초를 다졌습니다. 하지만 모두 본인만 로컬 환경에서만 접근할 수 있었습니다. 오늘은 우리가 그동안 만든 프로그램을 다른 사
[AWS] EC2 스왑 메모리 설정하기 (EC2 메모리 늘리기) - Swap Memory
AWS의 EC2를 사용하고 있는데 프리티어를 사용하다 보면 램 메모리가 1GB 밖에 되지 않기 때문에 메모리가 부족한 현상을 겪을 수 있다. 이를 해결하기 위해 램이 높은 인스턴스 유형을 선택하면 되지만 비용이 들기 때문에 무료로 이용하는 사람들에게는 부담이 된다. 그래서 디스크 용량을 이용해서 부족한 메모리를 대체하는 방법을 공유하려고 한다. 1. AWS EC2 접속 스왑 메모리를 할당하려는 ec2에 접속한다. 2. swapfile 메모리 할당 128M x 16 = 2048, 2GB로 swapfile을 생성한다. 스왑 메모리는 램 메모리의 2배 또는 그 이상을 추천한다는데 프리티어를 사용하면 램은 1GB이기 때문에 스왑 메모리를 2GB로 설정했다. sudo dd if=/dev/zero of=/swapf..
GCP에 웹 서버 배포하기 3 - 스왑 메모리 사용
GCP에 웹 서버 배포하기 2 - 맥 터미널에서 GCP 인스턴스 접속하기 GCP에 웹 서버 배포하기 2 - 맥 터미널에서 GCP 인스턴스 접속하기 GCP에 웹 서버 배포하기 1 - GCP 무료 인스턴스 생성 GCP에 웹 서버 배포하기 1 - GCP 무료 인스턴스 생성 개요 포트폴리오를 만들어야겠다고 생각했다. 스크린샷으로 프로젝트를 표현하는 것 보다는, uzzam.dev 지난 글을 통해 인스턴스도 만들었고, 맥 터미널에서도 ssh를 이용하여 접근이 가능하게 했다. 하지만 무료 인스턴스인 e2-micro를 쓰다보면 왜 무료인지 알게 된다. 빌드가 세월아 네월아 끝나지 않는다. 맥북에서 10초면 될걸 5분이 걸린다 ㅋㅋ 빌드만 오래걸리면 괜찮다. 켜놓고 잠깐 쉬다오면 되는데 멈춰버리는게 문제다. 그러면, 인..
