개인용 서버를 운영하면서 처음에는 10GB면 충분하겠지 싶어 작게 디스크 용량을 설정했었습니다.
하지만 Node.js, MySQL 및 다양한 도구들을 설치하다보니 예상보다 빠르게 부족해졌습니다. 특히 n8n 셀프 호스팅을 위해 Docker를 구성하다보니 여유 공간이 급격히 줄어들고 있었습니다.
이에 따라 EC2 인스턴스의 EBS 볼륨 및 파일시스템 확장을 진행했습니다.
스토리지 볼륨 확장
먼저 AWS EC2 인스턴스에서 사용 중인 디스크는 EBS (Elastic Block Store) 볼륨으로 관리됩니다. EC2 인스턴스를 중지하지 않고도 볼륨의 크기를 확장할 수 있는 장점을 가지고 있습니다.
EBS 용량을 늘리기 위해서는 AWS 관리 콘솔 → EC2 → Elastic Block Store → 볼륨으로 이동합니다.
그리고 인스턴스에 연결된 볼륨을 우클릭 후 볼륨 수정을 누릅니다
gp2, gp3 관계없이 프리 티어 기준 30GB까지 무료로 제공되므로 30GB로 늘려주었습니다.
변경 후 5~10분 정도 기다리면 상태가 optimizing → 사용중 으로 변경되며 볼륨 확장이 완료됩니다.
파티션 확장
물리적인 볼륨 크기는 늘어났지만, OS가 인식할 수 있도록 파티션을 확장하고 파일 시스템을 확장해주어야 합니다.
파티션 확인
먼저 아래 명령어를 통해 크기를 조정할 파티션 확인합니다.
파티션의 이름은 인스턴스 종류마다 다르다고 합니다.
전 t2.micro 를 사용중이며, 디스크는 30GB로 늘어났지만 파티션은 여전히 9GB만 사용중인걸 확인할 수 있습니다.
$ lsblk
파티션 확장
1번 파티션(xvda1)에 30GB를 할당해주겠습니다.
/dev/xvda 는 확장 대상 디스크를 가리키며, 1은 확장할 파티션의 번호를 가리킵니다.
$ sudo growpart /dev/xvda 1
다시 lsblk
명령어를 통해 아래와 같이 추가된 공간만큼 xvda1 파티션이 확장된 걸 확인할 수 있습니다.
파일 시스템 확장
growpart로 파티션을 확장한 확장된 파티션을 파일 시스템에서 사용할 수 있도록 마운트해주어야 진짜로 30GB를 사용할 수 있게 됩니다.
$ sudo resize2fs /dev/xvda1
마지막으로 아래 명령어를 통해 루트 디렉토리의 크기가 9GB -> 29GB(시스템 용량 제외)로 정상적으로 늘어난 걸 확인할 수 있습니다.
$ df -h
마무리
처음 서버를 구축할 때는 보통 서비스 규모가 크지 않기 때문에, 스토리지 용량을 작게 설정하는 경우가 많습니다.
저 역시 개인용 서버로는 10GB 정도면 충분하겠지라고 생각했었습니다. 하지만 운영을 계속하다 보니 예상보다 빠르게 디스크 공간이 부족해지는 경험을 해볼 수 있었습니다.
이번 작업을 통해 EC2의 EBS 스토리지를 사용하면 서비스 중단 없이 디스크 용량을 유연하게 확장할 수 있다는 점이 큰 장점이라고 느꼈습니다.
특히 서비스의 성장 속도나 데이터 증가량에 맞춰 필요한 만큼만 용량을 늘리고, 그에 따라 비용도 탄력적으로 조절할 수 있다는 점에서 매우 실용적이라는 생각이 들었습니다.
참고
'Backend' 카테고리의 다른 글
AWS EC2 npm run build 시 멈추는 문제 (0) | 2025.05.19 |
---|