VPS에 Nextcloud 설치하기: Google Drive 대체 셀프 호스팅 클라우드 스토리지 2026

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 크레딧)에 가입하시면 크레딧을 받으실 수 있습니다. 추가 비용은 없습니다.