요금제 페이지는 RAM을 앞세우지만, 디스크가 꽉 차도 서버는 똑같이 멈춥니다. "No space left on device"가 뜨면 남은 메모리가 아무리 많아도 데이터베이스는 쓰기를 멈추고 웹사이트는 응답을 멈춥니다. 무엇이 늘어나는지 알면 디스크 사용량은 쉽게 예측할 수 있습니다. 당사 이미지로 새 서버를 띄우고 흔한 원인을 하나씩 측정했습니다.
새 서버가 차지하는 공간
첫 부팅 직후 측정했습니다:
| 시스템 | 사용 공간 |
|---|---|
| Alpine Linux 3.21 | 153 MB |
| Debian 12 | 1.2 GB |
| Ubuntu 24.04 | 2.7 GB |
| Windows Server 2022 | 14.0 GB |
Linux에서는 15GB Nano의 거의 전부를 첫날부터 쓸 수 있습니다. Windows는 아무것도 설치하기 전에 50GB 중 4분의 1 이상을 쓰고, 아래에서 보듯 업데이트가 더 많이 가져갑니다.
Ubuntu의 2.7GB 중 일부는 쉽게 되찾았습니다. 440MB는 첫 부팅 때 업데이트에서 남은 패키지 캐시였고, 실제로 쓰는 커널은 하나인데 세 개가 설치되어 있었습니다. 명령 두 개로 사용량이 2.16GB가 되었습니다:
sudo apt clean
sudo apt autoremove --purge
Docker: 이미지는 금방 쌓인다
Docker 자체를 설치하는 데 약 300MB가 늘었습니다. 중요한 것은 이미지입니다. 흔히 쓰는 이미지 8개를 하나씩 받으면서 매번 디스크가 얼마나 늘었는지 쟀습니다:
| 이미지 | 늘어난 공간 |
|---|---|
nginx:alpine | 91 MB |
nginx:latest | 232 MB |
postgres:16 | 501 MB |
python:3.12-slim | 59 MB |
node:22 | 1,564 MB |
mariadb:11 | 437 MB |
wordpress:latest | 960 MB |
redis:7-alpine | 55 MB |
| 합계 | 3.9 GB |
베이스가 같은 이미지는 그 레이어를 재사용합니다. python:3.12-slim이 59MB만 늘린 것은 nginx:latest와 postgres:16이 같은 Debian 베이스를 이미 가져왔기 때문입니다. Alpine 기반 이미지는 전체 이미지보다 몇 배 작습니다. node:22 하나만 1.5GB이니, 가능하면 node:22-slim이나 node:22-alpine으로 빌드하세요.
이미지는 업데이트할 때마다 쌓입니다. docker compose pull을 할 때마다 이전 버전이 남기 때문입니다. 테스트 서버에서는 명령 하나로 모두 지웠습니다:
docker system df
docker system prune -a
4.1GB를 회수했다고 나왔습니다. prune -a는 어떤 컨테이너도 쓰지 않는 이미지를 모두 지우므로 스택이 실행 중일 때 돌리세요. --volumes를 붙이지 않으면 볼륨은 건드리지 않습니다.
로그: 하룻밤에 디스크를 채우는 것
Docker는 컨테이너가 출력하는 모든 것을 저장하며, 기본값은 크기 제한이 없습니다. 헬스 체크나 디버그 모드가 내는 것 같은 짧은 한 줄을 반복 출력하는 컨테이너를 돌렸습니다. 30초 뒤 로그 파일은 6MB였습니다. 이 속도라면 하루 약 17GB를 써서 Micro 요금제의 디스크 전체보다 많습니다.
/etc/docker/daemon.json에서 모든 새 컨테이너에 제한을 거세요:
{
"log-driver": "local",
"log-opts": { "max-size": "10m", "max-file": "3" }
}
그다음 sudo systemctl restart docker를 실행하고 컨테이너를 다시 만드세요(docker compose up -d --force-recreate). 기존 컨테이너는 만들어질 때의 설정을 유지합니다. 제한을 건 뒤 같은 테스트 컨테이너의 로그는 30초 후 4MB였고, 30MB를 넘을 수 없습니다.
시스템 저널에는 이미 상한이 있습니다. 25GB Ubuntu 서버에서 journald는 파일 시스템의 10분의 1인 2.3GB로 스스로를 제한합니다. 사용량은 15MB였습니다.
Windows: 업데이트에는 공간이 필요하다
당사 Windows Server 2022 이미지는 2022년 것이라 업데이트했습니다. 첫 번째 누적 업데이트가 설치되는 동안 사용량은 12.6GB에서 20.8GB로 늘었고, 두 번째 이후에는 24.5GB에 달했습니다. Windows는 업데이트가 교체하는 시스템 파일마다 이전 버전을 보관합니다. 정리 후 14.6GB로 돌아왔고, 업데이트된 이미지로 만든 새 서버는 이제 14GB에서 시작합니다. 다음 업데이트를 위해 최소 10GB는 비워 두세요. 정리 명령은 Windows 업데이트 가이드에 있습니다.
무엇을 고를까
| 실행하는 것 | 넉넉한 디스크 | 요금제 |
|---|---|---|
| 봇, VPN, 작은 정적 사이트 | 15 GB | Nano, 월 $3 |
| 이미지 몇 개짜리 Docker 스택 | 25 GB | Micro, 월 $5 |
| 데이터베이스와 업로드가 있는 WordPress, 여러 스택 | 35 GB | Small, 월 $8 |
| 큰 데이터베이스, 많은 이미지, 로컬 백업 | 45 GB | Medium, 월 $12 |
| Windows Server 2022 | 50–60 GB | Windows-Small, 월 $11 |
어떤 요금제든 더 오래 쓰게 해 주는 규칙은 두 가지입니다. 배포 전에 컨테이너 로그에 제한을 걸 것, 그리고 백업은 서버 디스크에 두지 말고 서버 밖으로 복사할 것. 서버가 이미 가득 찼다면 디스크 공간 확보 가이드가 단계별로 안내합니다. 메모리 쪽 용량 산정은 VPS에 필요한 RAM을 참고하세요. 모든 요금제는 VPS 페이지에 있으며, 결제는 Base, Ethereum, Polygon 네트워크에서 USDT, USDC, ETH로 합니다.
댓글
아직 댓글이 없습니다. 첫 번째가 되세요.