Homelab #21 VPS에 Proxmox Backup Server 설치 + S3 스토리지 연동 />
HOMELAB

Homelab #21 VPS에 Proxmox Backup Server 설치 + S3 스토리지 연동

Thất Nghiệp Thất Nghiệp
Oct 26, 2025 2 min read 0 조회
블로그로 돌아가기

17편에서 이미 백업을 한 번 써봤다. 그런데 Proxmox Backup Server(PBS)는 왜 필요할까?
이 질문은 예전에도 Thuận Bùi 형님 블로그에서 다뤄졌다.
이 질문은 예전에도 Thuận Bùi 형님 블로그에서 다뤄졌다

PBS 선택: PVE에 VM으로? 독립 PBS?

나도 꽤 고민했다. Proxmox 포럼에서는 PBS를 VM에서 돌리지 말라는 Myth가 있었고,
공식 포럼에서도 staff가 권장하지 않았다.
PBS 선택: PVE에 VM으로? 독립 PBS? - 17편에서 이미 백업을 한 번 써봤다
선배들에게도 물어봤다.
PBS 선택: PVE에 VM으로? 독립 PBS? - 17편에서 이미 백업을 한 번 써봤다
결정적으로, 예전에 같이 프로젝트 했던 친구가 VPSTTT의 3개월 1TB 무료 버킷 소식을 알려줬다. 버킷은 PBS에서 쓰는 용도라 PBS로 가기로 했다.

게다가 Thuận Bùi 형님의 글을 보니 PBS를 Docker+VPS에서 돌리는 게 가능했다. 그래서 1년짜리 VPS에 올리기로 결정했다.

설치 진행

나는 Hypercore VPS를 사용했다. (Hypercore는 내 선택 =))
Hypercore VPS는 Proxmox 기반이라, Debian VM 위에서 Docker를 돌리는 구조다. PVE에서 LXC 위에 Docker를 올리는 것과 크게 다르지 않다.

사용한 repo: https://github.com/ayufan/pve-backup-server-dockerfiles
PBS용 폴더와 docker-compose.yml 생성

mkdir ~/pbs
cd ~/pbs
nano docker-compose.yml

내용은 다음과 같다.

services:
  pbs:
    image: ayufan/proxmox-backup-server:latest
    ports:
      - 8007:8007
    mem_limit: 2G
    volumes:
      - ./pbs_etc:/etc/proxmox-backup
      - ./pbs_logs:/var/log/proxmox-backup
      - ./pbs_lib:/var/lib/proxmox-backup
      - ./backups:/backups
    tmpfs:
      - /run
    cap_add: # smartctl support
      - SYS_RAWIO
    #devices:
    # - /dev/sda
    restart: unless-stopped
    stop_signal: SIGHUP

VPS는 가상 디스크라 devices:는 주석 처리했다. 환경에 맞게 수정 가능하다.
접속 방법은 3가지.

방법 1: VPN 사용
방법 2: Firewall 허용 후 http://<VPS-IP>:8007로 접속

sudo ufw allow 8007/tcp
sudo ufw reload
sudo ufw status

방법 3: Cloudflared
처음엔 Cloudflared를 썼지만, 나중엔 Token Verify 문제가 있어 PVE↔PBS 연결이 안 됐다. 그래서 추천하지 않는다.

PBS 첫 로그인

기본 계정 정보:

Username: admin
Password: pbspbs
Realm: Proxmox Backup authentication server

PBS 첫 로그인 - Username: admin
Password: pbspbs
Realm: Proxmox Backup authentication server
로그인 후 Access Control에서 Add를 눌러 새 계정을 만들고,
PBS 첫 로그인 - Username: admin
Password: pbspbs
Realm: Proxmox Backup authentication server
Permission 탭에서 Add로 admin 권한을 부여한다.
PBS 첫 로그인 - Username: admin
Password: pbspbs
Realm: Proxmox Backup authentication server
(이 부분은 Thuận Bùi 형님의 글 일부를 참고했다.)

S3 스토리지 추가

PBS UI에서 다음 위치로 이동한다.
S3 스토리지 추가 - 로그인 후 Access Control에서 Add를 눌러 새 계정을 만들고,

Permission 탭에서 Add로 admin 권한을 부여한다
여기에 S3 제공 업체의 정보를 입력한다. 나는 VPSTTT의 MinIO를 사용했다.
S3 스토리지 추가 - 로그인 후 Access Control에서 Add를 눌러 새 계정을 만들고,

Permission 탭에서 Add로 admin 권한을 부여한다
포트는 9000을 사용했다.
S3 스토리지 추가 - 로그인 후 Access Control에서 Add를 눌러 새 계정을 만들고,

Permission 탭에서 Add로 admin 권한을 부여한다

PBS에 Datastore 생성

왼쪽 메뉴에서 Add Datastore를 눌러 다음과 같이 입력한다. Backing Path는 /backups이며, docker-compose.yml 11번째 줄에서 선언한 경로다.
PBS에 Datastore 생성 - PBS UI에서 다음 위치로 이동한다

Datastore가 생성되면 Show Connection Information에서 접속 정보를 확인한다. IP로 바로 접속할 수도 있지만, 나는 도메인을 쓰고 싶어서 다음 단계로 진행했다.
PBS에 Datastore 생성 - 왼쪽 메뉴에서 Add Datastore를 눌러 다음과 같이 입력한다

Caddy로 Reverse Proxy 구성

Caddy를 한 번 써보고 싶어서 선택했다. 자동으로 SSL을 받아준다.

sudo apt update -y
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl

curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list

sudo apt update -y
sudo apt install -y caddy

sudo systemctl enable caddy
sudo systemctl start caddy
sudo systemctl status caddy --no-pager

nano /etc/caddy/Caddyfile 후 아래처럼 수정:

도메인-이름 {
    reverse_proxy https://127.0.0.1:8007 {
        transport http {
            tls_insecure_skip_verify
        }
    }
}

그리고 PBS의 docker-compose.yml에서 포트를 localhost로 바꾼다.

services:
  pbs:
    image: ayufan/proxmox-backup-server:latest
    ports:
      - 127.0.0.1:8007:8007
    mem_limit: 2G
    volumes:
      - ./pbs_etc:/etc/proxmox-backup
      - ./pbs_logs:/var/log/proxmox-backup
      - ./pbs_lib:/var/lib/proxmox-backup
      - ./backups:/backups
    tmpfs:
      - /run
    cap_add: # smartctl support
      - SYS_RAWIO
    #devices:
    # - /dev/sda
    restart: unless-stopped
    stop_signal: SIGHUP

도메인 관리에서 A record를 VPS IP로 지정한다.
Caddy로 Reverse Proxy 구성 - 도메인-이름 {
    reverse_proxy https://127
끝.

PBS를 PVE에 연결

PBS를 PVE에 연결 - services:
  pbs:
    image: ayufan/proxmox-backup-server:latest
    ports:
      - 127
앞에서 확인한 Show Connection Information을 참고해 연결하면 된다.

사용 방법은 17편과 비슷하지만, 백업 대상 디스크를 PBS로 선택하는 점이 다르다.

성공을 기원한다!

자주 묻는 질문

FAQ
PBS 선택: PVE에 VM으로? 독립 PBS?

나도 꽤 고민했다. Proxmox 포럼에서는 PBS를 VM에서 돌리지 말라는 Myth가 있었고, 공식 포럼에서도 staff가 권장하지 않았다. 선배들에게도 물어봤다. 결정적으로, 예전에 같이 프로젝트 했던 친구가 VPSTTT의 3개월 1TB 무료 버킷 소식을 알려줬다. 버킷은 PBS에서 쓰는 용도라 PBS로 가기로 했다.

S3 스토리지 추가이란?

PBS UI에서 다음 위치로 이동한다. 여기에 S3 제공 업체의 정보를 입력한다. 나는 VPSTTT의 MinIO를 사용했다. 포트는 9000을 사용했다.

PBS에 Datastore 생성이란?

왼쪽 메뉴에서 Add Datastore를 눌러 다음과 같이 입력한다. Backing Path는 /backups이며, docker-compose.yml 11번째 줄에서 선언한 경로다.

PBS를 PVE에 연결이란?

앞에서 확인한 Show Connection Information을 참고해 연결하면 된다.

이 글 공유하기

Twitter LinkedIn
Thất Nghiệp

Thất Nghiệp 작성

깔끔한 코드, 창의적인 자유, 완벽한 개발 환경을 추구하는 개발자. 하나의 컴포넌트씩 디지털 공간을 만들어가고 있습니다.

Comments

Join the conversation

Leave a comment

Won't be published

이런 글도 있어요