프로젝트를 빌드하려는데 자꾸 빌드가 멈췄다. 원인을 찾아보니 프리티어 인스턴스는 메모리가 극히 적기 때문이었는데, 이를 해결하기 위해선 스왑을 사용해야 했다. 그러나 디스크(볼륨) 또한 용량이 적어 스왑이 불가능했기 때문에 EC2의 용량부터 늘리는 게 급선무였다.
1. 메모리 부족 문제 확인(No space left on device)
- 스왑 메모리를 할당하려 했으나 실패했다
- 문구 그대로 디바이스에 용량이 없는 상태이다
2. 디스크 용량 부족 문제 확인
df -h
- df -h를 입력하여 Use 100%인 것을 확인했다
3. 볼륨 수정
- EC2 > Elastic Block Store > 볼륨 > 작업 > "볼륨 수정"에서 적절하게 볼륨을 수정해준다(나는 25GiB로 수정했다, 참고로 프리티어는 최대 30GiB)
- 여기서 늘린 볼륨은 루트 볼륨이다
lsblk
- 루트 볼륨(/dev/xvda)는 늘었지만, 사용중인 파티션(/dev/xvda1)는 아직 그대로이다
- 파티션을 확장해줘야 한다
4. 파티션 크기 늘리기 → 또 다시 No space left on device 문제 발생 → 문제 해결
- 파티션을 늘려주려고 했으나 마찬가지로 "No space left on device"에러가 발생했다.
sudo mount -o size=10M,rw,nodev,nosuid -t tmpfs tmpfs /tmp // 먼저 입력 - tmpfs 탑재
sudo growpart /dev/xvda 1 // 다음에 입력 - 파티션 확장
- AWS 솔루션에 따라 sudo mount -o size=10M,rw,nodev,nosuid -t tmpfs tmpfs /tmp를 입력하고 재차 시도하면 해결된다
- 이는 임시 파일 시스템 tmpfs를 /tmp 탑재 지점에 탑재하는 것이다
5. 파일 시스템 크기 늘리기
sudo resize2fs /dev/xvda1
- 마지막으로 파일 시스템 크기까지 늘려주면 끝이 난다
- df -h 명령어로 용량을 확인해보자
'인프라 > AWS' 카테고리의 다른 글
[AWS] EC2에 직접 연결하기 (0) | 2022.07.19 |
---|