Google Drive 월 구독료, VPS로 절약하자
Google One 2TB 플랜은 월 12,900원(약 $9.99)이다. 연간 약 15만 원. 하지만 VPS 하나를 빌려 Nextcloud를 운영하면, 같은 가격으로 50GB 이상의 클라우드 스토리지를 소유할 수 있다. 프라이버시도 보장된다.
이 가이드에서는 Docker Compose로 Nextcloud를 설치하고, Let’s Encrypt SSL까지 적용하는 전체 과정을 다룬다. 설치 시간은 약 30분.
1. Nextcloud란?
Nextcloud는 오픈소스 셀프 호스팅 클라우드 스토리지 플랫폼이다. Google Drive, Dropbox, OneDrive의 셀프 호스팅 대안이다.
주요 기능
| 기능 | Nextcloud | Google Drive |
|---|---|---|
| 파일 동기화 | 지원 (데스크톱/모바일) | 지원 |
| 파일 공유 | 링크/사용자/그룹 | 링크/사용자 |
| 캘린더 | Nextcloud Calendar | Google Calendar |
| 연락처 | Nextcloud Contacts | Google Contacts |
| 오피스 문서 | Collabora/OnlyOffice | Google Docs |
| 사진 관리 | Nextcloud Memories | Google Photos |
| 저장공간 | VPS 디스크만큼 | 구독 플랜 한도 |
| 프라이버시 | 완전 통제 | Google 정책 |
| 월 비용 | VPS 비용 ($4-12) | $1.99-9.99 |
비용 비교: Google Drive vs Nextcloud on VPS
| 옵션 | 저장공간 | 월 비용 | 연간 비용 |
|---|---|---|---|
| Google One 2TB | 2TB | $9.99 | $120 |
| Vultr 50GB | 50GB (+확장 가능) | $6 | $72 (첫 해 $0) |
| Hetzner 40GB | 40GB (+확장 가능) | €3.29 (~$3.59) | $43 |
| DigitalOcean 50GB | 50GB (+확장 가능) | $6 | $72 (첫 해 $0) |
핵심: Google Drive는 저장공간이 고정되지만, Nextcloud는 VPS 디스크를 늘리면 무제한으로 확장할 수 있다. Object Storage를 연결하면 비용을 더 낮출 수 있다.
2. VPS 준비
Nextcloud는 RAM을 많이 사용하므로 최소 2GB RAM을 권장한다.
추천 VPS 스펙
| 스펙 | 최소 | 권장 | 최적 |
|---|---|---|---|
| vCPU | 1 | 2 | 2 |
| RAM | 2GB | 4GB | 4GB |
| Disk | 40GB | 80GB | 160GB NVMe |
| OS | Ubuntu 22.04 | Ubuntu 24.04 LTS | Ubuntu 24.04 LTS |
추천 VPS
| Provider | 스펙 | 월 비용 | 특징 |
|---|---|---|---|
| Vultr | 2vCPU/4GB/80GB | $24/월 | 서울 리전, $100 크레딧 |
| Hetzner | 2vCPU/4GB/40GB | €6.59/월 | 압도적 가성비 |
| DigitalOcean | 2vCPU/4GB/80GB | $24/월 | $200 크레딧 |
가성비를 원한다면 Hetzner CX22 (€6.59/월)를 추천한다. 한국 속도가 중요하다면 Vultr Seoul을 선택한다.
3. Docker + Docker Compose 설치
3.1 Docker 설치
curl -fsSL https://get.docker.com | sh
sudo systemctl enable docker
sudo systemctl start docker
3.2 Docker Compose 확인
Docker 24+에는 Compose 플러그인이 포함되어 있다:
docker compose version
4. Nextcloud Docker Compose 설정
4.1 디렉토리 구조
mkdir -p ~/nextcloud/{data,db,html,config}
cd ~/nextcloud
4.2 docker-compose.yml 작성
version: "3.8"
services:
db:
image: mariadb:10.11
restart: always
command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW
volumes:
- ./db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=CHANGE_THIS_STRONG_PASSWORD
- MYSQL_PASSWORD=nextcloud_db_password
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
networks:
- nextcloud-net
app:
image: nextcloud:apache
restart: always
ports:
- 8080:80
links:
- db
volumes:
- ./html:/var/www/html
- ./data:/var/www/html/data
- ./config:/var/www/html/config
environment:
- MYSQL_PASSWORD=nextcloud_db_password
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_HOST=db
- NEXTCLOUD_ADMIN_USER=admin
- NEXTCLOUD_ADMIN_PASSWORD=CHANGE_THIS_ADMIN_PASSWORD
- NEXTCLOUD_TRUSTED_DOMAINS=cloud.example.com
- OVERWRITEPROTOCOL=https
networks:
- nextcloud-net
depends_on:
- db
cron:
image: nextcloud:apache
restart: always
volumes:
- ./html:/var/www/html
- ./data:/var/www/html/data
- ./config:/var/www/html/config
entrypoint: /cron.sh
depends_on:
- app
networks:
- nextcloud-net
networks:
nextcloud-net:
보안 주의: 비밀번호를 반드시 강력한 값으로 변경하세요.
CHANGE_THIS_*부분을 모두 교체해야 합니다.
4.3 컨테이너 실행
docker compose up -d
이제 http://[VPS-IP]:8080에서 Nextcloud 초기 설정 화면이 나온다.
5. Nginx Reverse Proxy + SSL
Nextcloud를 HTTPS로 서비스하려면 Nginx + Let’s Encrypt가 필요하다.
5.1 Nginx 설치
sudo apt update
sudo apt install -y nginx certbot python3-certbot-nginx
5.2 Nginx 설정
sudo tee /etc/nginx/sites-available/nextcloud <<'EOF'
server {
listen 80;
server_name cloud.example.com;
client_max_body_size 10G;
client_body_timeout 300s;
proxy_read_timeout 300s;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
EOF
sudo ln -s /etc/nginx/sites-available/nextcloud /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
5.3 SSL 인증서 발급
sudo certbot --nginx -d cloud.example.com --non-interactive --agree-tos -m admin@example.com --redirect
자동 갱신은 certbot timer로 설정된다:
sudo systemctl status certbot.timer
5.4 신뢰할 수 있는 도메인 설정
Nextcloud config에 프록시 설정을 추가:
'trusted_proxies' => ['127.0.0.1'],
'trusted_domains' => ['cloud.example.com'],
'overwrite.cli.url' => 'https://cloud.example.com',
'overwritehost' => 'cloud.example.com',
'overwriteprotocol' => 'https',
6. Nextcloud 최적화
6.1 PHP 메모리 증가
대용량 파일 업로드를 위해 PHP 메모리를 늘린다:
docker exec -it nextcloud-app-1 bash -c "
echo 'memory_limit = 1024M' >> /usr/local/etc/php/conf.d/nextcloud.ini
echo 'upload_max_filesize = 10G' >> /usr/local/etc/php/conf.d/nextcloud.ini
echo 'post_max_size = 10G' >> /usr/local/etc/php/conf.d/nextcloud.ini
"
6.2 Redis 캐싱 (선택)
성능 향상을 위해 Redis를 추가할 수 있다. docker-compose.yml에:
redis:
image: redis:alpine
restart: always
networks:
- nextcloud-net
config.php에:
'memcache.local' => '\\OC\\Memcache\\Redis',
'memcache.distributed' => '\\OC\\Memcache\\Redis',
'memcache.locking' => '\\OC\\Memcache\\Redis',
'redis' => [
'host' => 'redis',
'port' => 6379,
],
6.3 자동 백업
VPS 백업 가이드를 참고하여 cron + rsync로 자동 백업을 설정:
0 3 * * * rsync -avz ~/nextcloud/ /mnt/backup/nextcloud/
7. 모바일/데스크톱 클라이언트
Nextcloud는 공식 클라이언트를 제공한다:
| 플랫폼 | 앱 | 기능 |
|---|---|---|
| Windows/Mac/Linux | Nextcloud Desktop | 파일 동기화 |
| iOS | App Store “Nextcloud” | 파일 동기화 + 자동 업로드 |
| Android | Play Store “Nextcloud” | 파일 동기화 + 자동 업로드 |
| Web | 브라우저 접속 | 전체 기능 |
모바일 앱에서 “자동 업로드”를 켜면 Google Photos 대체가 가능하다.
8. 보안 강화
8.1 2FA (2단계 인증)
Nextcloud 관리자 설정 → Security → Two-Factor Authentication 활성화. TOTP 앱(Google Authenticator, Authy)으로 설정한다.
8.2 방화벽
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
VPS 보안 완벽 가이드에서 SSH hardening, SSL, 방화벽 전체 설정을 확인하세요.
8.3 fail2ban (무차별 대입 공격 방지)
sudo apt install -y fail2ban
sudo systemctl enable fail2ban
9. FAQ
Q. Google Drive에서 Nextcloud로 마이그레이션은 어떻게 하나요?
Google Takeout으로 데이터를 다운로드한 후, Nextcloud Desktop 클라이언트로 동기화 폴더에 복사하면 됩니다. 대용량(100GB+)이라면 rsync로 VPS에 직접 업로드하는 것이 빠릅니다.
Q. 저장공간이 부족하면?
두 가지 옵션이 있습니다:
1. VPS 디스크를 업그레이드 (provider 콘솔에서 1클릭)
2. S3 호환 Object Storage를 외부 스토리지로 연결 (Nextcloud Primary Storage 모드)
Q. Nextcloud가 느린데 어떻게 최적화하나요?
Redis 캐싱 활성화 + PHP-FPM 튜닝 + 이미지 미리보기 생성 cron job 설정이 핵심입니다. 4GB RAM 이상의 VPS를 권장합니다.
Q. 다른 사람과 공유할 수 있나요?
네. Nextcloud는 사용자 계정을 만들어 가족/팀원과 공유할 수 있습니다. 각 사용자에게 저장공간 한도를 설정할 수도 있습니다. 소규모 팀 클라우드로 완벽합니다.
요약
| 단계 | 내용 | 시간 |
|---|---|---|
| VPS 준비 | Vultr/Hetzner/DO에서 2vCPU/4GB 인스턴스 생성 | 5분 |
| Docker 설치 | get.docker.com 원라인 설치 | 3분 |
| Nextcloud 배포 | docker-compose.yml 작성 + 실행 | 10분 |
| Nginx + SSL | Reverse Proxy + Let’s Encrypt | 10분 |
| 최적화 | Redis + PHP 튜닝 + 백업 | 10분 |
| 클라이언트 설치 | 데스크톱/모바일 앱 설정 | 5분 |
총 설치 시간 약 40분으로, 월 $4-12 비용으로 Google Drive 대체 클라우드 스토리지를 소유할 수 있다.
관련 글
어필리에이트 공개문구: 이 글의 링크를 통해 Vultr ($100 크레딧), DigitalOcean ($200 크레딧)에 가입하시면 크레딧을 받으실 수 있습니다. 추가 비용은 없습니다.



















