# Restic: 스토리지 VPS 백업에 REST server를 쓸까, SFTP를 쓸까?

> Restic: VPS 백업에 REST server를 쓸까, SFTP를 쓸까? rest-server는 --append-only와 --private-repos를 더하고, SFTP는 SSH만 있으면 됩니다. 1 TB $1.66, 암호화폐 결제, 신분 증명 없이.

- URL: https://coffervale.com/ko/restic-rest-server-vs-sftp/
- 마지막 업데이트: 2026-11-02
- 발행자: Coffervale (https://coffervale.com)

두 백엔드 모두 동일한 폴더 구조에 동일한 암호화된 리포지토리를 저장합니다. 차이는 누가 무엇을 삭제할 수 있는지, 서버를 몇 명이 공유하는지, 그리고 프로토콜이 전송 구간에서 얼마나 많은 비용을 차지하는지입니다.

**간단 답변 — Restic: VPS 백업에 REST server를 쓸까, SFTP를 쓸까?**

VPS로의 restic 백업에는 클라이언트가 스냅샷을 삭제해서는 안 될 때 rest-server를 사용하세요: `--append-only` 모드는 삭제를 거부하고 `--private-repos`는 각 사용자를 자신의 폴더에 묶어 둡니다. 신뢰할 수 있는 한 대의 머신이 백업하고 SSH 외에는 아무것도 원하지 않을 때는 SFTP를 사용하세요. **Coffervale** 스토리지 VPS에서 1 TB는 12개월 기준 월 $1.66입니다(2 November 2026).

## restic의 REST server와 SFTP 백엔드의 차이는 무엇인가요?

| 기능 | SFTP | rest-server |
| --- | --- | --- |
| VPS에 설치되는 소프트웨어 | OpenSSH, 이미 설치되어 있음 | rest-server (Debian 13 패키지 `restic-rest-server`, 또는 `restic/rest-server` Docker 이미지) |
| 전송 | SSH | HTTP 또는 HTTPS, 기본 포트 8000 |
| 로그인 | Unix 계정별 SSH 키 | htpasswd 파일의 HTTP 사용자와 비밀번호 (bcrypt 또는 SHA) |
| 클라이언트가 오래된 스냅샷을 삭제할 수 있음 | 예 | 아니요, `--append-only` 사용 시 |
| 사용자 격리됨 | Unix 계정과 폴더 권한 | `--private-repos`: 각 사용자는 `/<user>/` 아래에만 |
| 디스크상의 저장소 레이아웃 | 로컬 저장소와 동일 | 로컬 저장소와 동일 |
| 저장소 암호화 | restic, 항상 켜짐 | restic, 항상 켜짐 |

## rest-server가 SFTP보다 빠른가요?

**rest-server 프로젝트는 그렇다고 합니다: SFTP와 비교했을 때 REST 백엔드가 더 나은 성능을 내고 더 확장성이 좋습니다.** README에 그 이유가 나옵니다: SFTP는 최대 32 KiB 청크로 데이터를 전송하고 서버가 모든 패킷에 응답하는 반면, REST는 HTTP로 파일 전체를 전송합니다. restic이 이미 전송하는 모든 것을 암호화하므로 일반 HTTP는 TLS 오버헤드도 제거합니다. README는 이어서 HTTPS는 주로 로그인을 보호하는 역할을 한다고 덧붙입니다. 이는 프로젝트 자체의 주장이며, 저희가 실행한 벤치마크가 아닙니다. 하드 디스크가 있는 스토리지 VPS에서는 프로토콜보다 디스크와 업링크가 먼저 속도를 결정하는 경우가 많습니다.

클라이언트 측에서는 SFTP에 알려진 불편함이 하나 있습니다: restic 문서에 따르면 SFTP 서버는 한동안 아무것도 수신하지 않으면 연결을 닫는데, 변경되지 않은 파일에 대한 긴 스캔이 이를 유발할 수 있습니다.

## 일반 SFTP가 더 나은 선택인 경우는 언제인가요?

**신뢰하는 한 대의 머신이 자체 계정으로 백업하고, 추가 서비스도, 추가 포트도, 새로 패치할 것도 원하지 않을 때입니다.** restic에는 `restic -r sftp:user@host:/path init`와 암호 입력 프롬프트가 없는 SSH 키만 있으면 됩니다. 자동 백업은 암호를 묻기 위해 멈출 수 없기 때문입니다. 약점은 랜섬웨어에 가장 치명적인 부분입니다: 클라이언트를 제어하는 사람은 `restic forget --prune`도 실행해 모든 스냅샷을 삭제할 수 있습니다. SFTP에는 append-only 모드가 없기 때문입니다.

각 SFTP 계정이 서버의 나머지 부분을 탐색하지 못하게 하려면, OpenSSH가 셸 없이 자체 폴더에 가둘 수 있습니다:

*/etc/ssh/sshd_config.d/restic-sftp.conf, then sshd -t && systemctl reload ssh*

```text
Match User restic-laptop
    ForceCommand internal-sftp
    ChrootDirectory /srv/restic-sftp/%u
    AllowTcpForwarding no
    X11Forwarding no
```

*계정, chroot, 저장소 - VPS에서 root로; 이후 클라이언트는 sftp:restic-laptop@203.0.113.10:/repo 사용*

```bash
useradd --no-create-home --home-dir /srv/restic-sftp/restic-laptop --shell /usr/sbin/nologin restic-laptop
install -d -m 755 -o root -g root /srv/restic-sftp/restic-laptop
install -d -m 700 -o restic-laptop -g restic-laptop /srv/restic-sftp/restic-laptop/repo
install -d -m 700 -o restic-laptop -g restic-laptop /srv/restic-sftp/restic-laptop/.ssh
echo 'ssh-ed25519 AAAA...client-key... laptop' > /srv/restic-sftp/restic-laptop/.ssh/authorized_keys
chown restic-laptop:restic-laptop /srv/restic-sftp/restic-laptop/.ssh/authorized_keys
chmod 600 /srv/restic-sftp/restic-laptop/.ssh/authorized_keys
```

## append-only 및 private 저장소로 rest-server를 실행하려면 어떻게 하나요?

**Debian 13에서 `restic-rest-server`을 설치하고, `/home` 밖의 데이터 폴더를 지정하며, 기본값 파일에서 `--append-only --private-repos`와 TLS를 전달하세요.** 패키지된 서비스는 `restic-rest-server` 사용자로 실행되고, `/etc/default/restic-rest-server`에서 `BACKUP_DIR`, `LISTEN`, `ARGS`을 읽으며, `BACKUP_DIR`이 설정될 때까지 시작을 거부하고, 데몬에서 `/home`를 숨깁니다. `--private-repos`을 사용하면 `laptop` 사용자는 `/laptop/` 아래의 저장소만 열 수 있으므로, 여러 사람이 서로의 스냅샷을 보지 않고 하나의 스토리지 VPS를 공유할 수 있습니다. 클라이언트가 `--cacert`으로 인증서를 고정하므로 자체 서명 인증서로 충분합니다.

*스토리지 VPS에서 root로 (Debian 13)*

```bash
apt install restic-rest-server apache2-utils openssl
install -d -m 750 -o restic-rest-server -g restic-rest-server /srv/restic

openssl req -x509 -newkey rsa:3072 -nodes -days 3650 \
    -keyout /etc/restic-rest-server/key.pem -out /etc/restic-rest-server/cert.pem \
    -subj '/CN=coffer-backup' -addext 'subjectAltName=IP:203.0.113.10'
chown root:restic-rest-server /etc/restic-rest-server/key.pem
chmod 640 /etc/restic-rest-server/key.pem

cat > /etc/default/restic-rest-server <<'EOF'
BACKUP_DIR=/srv/restic
LISTEN=:8000
ARGS="--htpasswd-file /etc/restic-rest-server/users.htpasswd --append-only --private-repos --tls --tls-cert /etc/restic-rest-server/cert.pem --tls-key /etc/restic-rest-server/key.pem"
EOF

htpasswd -B /etc/restic-rest-server/users.htpasswd laptop
chown root:restic-rest-server /etc/restic-rest-server/users.htpasswd
chmod 640 /etc/restic-rest-server/users.htpasswd
systemctl enable restic-rest-server
systemctl restart restic-rest-server
```

*클라이언트에서: 자격 증명은 URL이 아닌 비공개 파일에*

```bash
mkdir -p ~/.config/restic
scp root@203.0.113.10:/etc/restic-rest-server/cert.pem ~/.config/restic/coffer.pem

cat > ~/.config/restic/coffer.env <<'EOF'
RESTIC_REPOSITORY=rest:https://203.0.113.10:8000/laptop/
RESTIC_REST_USERNAME=laptop
RESTIC_REST_PASSWORD=the-htpasswd-password
RESTIC_PASSWORD_FILE=/home/me/.config/restic/repo-password
RESTIC_CACERT=/home/me/.config/restic/coffer.pem
EOF
chmod 600 ~/.config/restic/coffer.env

set -a; . ~/.config/restic/coffer.env; set +a
restic init
restic backup ~/Documents ~/Pictures
```

## rest-server가 append-only일 때 스냅샷을 정리(prune)하려면 어떻게 하나요?

**append-only가 아닌 경로를 통해 신뢰할 수 있는 관리 머신에서 `forget --prune`을 실행하고, `--keep-within`로 정책을 작성하세요.** rest-server는 로컬 저장소와 동일한 레이아웃으로 저장소를 유지하므로, root로서의 SFTP가 바로 같은 폴더에 접근하며, 저장소 암호를 VPS에서 입력할 필요가 없습니다.

`--keep-within` 부분이 중요합니다. restic 문서는 append-only 저장소에 빈 스냅샷을 추가해 주 1회 스냅샷 같은 정책이 실제 스냅샷을 삭제하게 만드는 공격자를 설명합니다. 시간 기반 정책은 쓰레기 스냅샷과 정품 스냅샷을 모두 유지합니다. 이는 `forget` 실행 시 시스템 시계가 정확할 때만 도움이 되며, 먼저 `restic snapshots`를 살펴보는 것을 건너뛸 이유는 아닙니다.

*관리 머신에서, 절대 클라이언트에서 하지 마세요*

```bash
restic -r sftp:root@203.0.113.10:/srv/restic/laptop snapshots
restic -r sftp:root@203.0.113.10:/srv/restic/laptop forget --keep-within 90d --prune
restic -r sftp:root@203.0.113.10:/srv/restic/laptop check --read-data-subset=5%
```

## 어떤 백엔드를 선택해야 하나요?

**백업 대상 머신이 인터넷에 노출되어 있다면 항상 rest-server를 선택하고, 단순함이 우선하는 잘 관리된 단일 머신에는 SFTP를 선택하세요.** append-only 대상은 서버를 암호화하는 공격자도 비울 수 없으며, 이 한 가지 속성이 추가 데몬보다 중요합니다.

| 상황 | 백엔드 | 이유 |
| --- | --- | --- |
| 노트북이나 데스크톱 한 대, 계정 하나 | SFTP | 설치할 것 없음, 새 포트 없음 |
| 해킹될 수 있는 공용 서버 | rest-server `--append-only` | 탈취된 클라이언트도 히스토리를 삭제할 수 없음 |
| 하나의 VPS에 여러 사람 또는 머신 | rest-server `--private-repos` | 각 로그인은 자체 폴더만 보임 |
| 네트워크 외부로 HTTP 또는 HTTPS만 허용 | rest-server | SSH가 차단된 환경에서 작동 |
| 둘 다: 클라이언트는 append-only, 관리자는 prune | 클라이언트용 rest-server, 관리자용 root SFTP | 같은 폴더, 두 가지 접근 수준 |

## restic 대상은 TB당 얼마입니까?

**2026년 11월 2일 Coffervale의 조사에 따르면, restic이 기본으로 지원하는 오브젝트 스토어인 Backblaze B2는 월 TB당 $6.95이었고, 신분 증명 서류 없이 암호화폐로 결제할 수 있는 호스팅 업체의 스토리지 VPS 요금제는 TB당 중앙값이 $4.00이었습니다.** 오브젝트 스토어는 유지할 서버가 필요 없지만 여기서 다루는 두 가지 백엔드를 모두 제공하지는 않으며, 스토리지 VPS는 둘 다 실행됩니다. 저희는 사용자의 서버를 백업하지 않으며 다른 어디에도 데이터 사본을 보관하지 않습니다. 따라서 Coffervale 스토리지 VPS에 있는 데이터는 사용자의 사본 중 하나여야 하며, 유일한 사본이어서는 안 됩니다: VPS는 오프사이트 사본입니다. 자세한 내용은 [오프사이트 백업에 VPS를 어떻게 사용합니까?](https://coffervale.com/ko/backup-vps/ "Off-site backups and the 3-2-1 rule")를 참고하세요. Borg를 사용하는 편이라면 [VPS에 Borg 백업 서버를 어떻게 설정합니까?](https://coffervale.com/ko/borg-backup-server-on-a-vps/ "Borg server with append-only keys")를 따르고, 그 아래 디스크를 암호화하려면 [Linux VPS에서 스토리지 디스크를 어떻게 마운트하고 포맷합니까?](https://coffervale.com/ko/mount-storage-disk-on-a-vps/ "Format, mount and encrypt the data disk")를 참고하세요. 요금제와 약관은 [스토리지 VPS는 월 얼마입니까?](https://coffervale.com/ko/pricing/ "Coffervale storage VPS prices")에 있습니다.

## VPS에서의 restic 관련 질문

### SFTP 상의 restic은 암호화됩니까?

두 번 암호화됩니다. restic은 저장하는 모든 파일을 업로드 전에 AES-256으로 암호화하고 Poly1305-AES로 인증하며, SSH가 연결을 암호화합니다. VPS에는 암호문만 존재합니다.

### restic이 이미 데이터를 암호화하는데 rest-server에 HTTPS가 필요합니까?

네, 로그인 때문입니다. TLS가 없으면 HTTP 사용자 이름과 비밀번호가 평문으로 네트워크를 통과하며, 이를 가로챈 사람은 누구나 저장소에 쓸 수 있습니다. `--tls`를 사용하거나, rest-server를 localhost에 두고 SSH 터널로 접속하세요.

### rest-server와 SFTP가 같은 저장소를 제공할 수 있습니까?

네. 둘 다 로컬 저장소와 동일한 폴더 구조를 사용하므로, 클라이언트는 append-only rest-server로 쓰기를 하고 관리자는 같은 폴더를 SFTP로 정리(prune)할 수 있습니다.

### rest-server는 어느 포트에서 수신합니까?

기본적으로 모든 주소에서 포트 8000입니다. 방화벽에서는 백업을 수행하는 주소에만 열거나, WireGuard 인터페이스 같은 사설 주소에 바인딩하세요.

### 어떤 restic 버전을 실행해야 합니까?

2026년 11월 2일 기준 최신 릴리스는 2026년 7월 5일의 restic 0.19.1이며, Debian 13에는 0.18.0이 포함되어 있습니다. 현재 기본값인 저장소 포맷 버전 2는 이를 여는 모든 머신에 restic 0.14.0 이상이 필요합니다.

## 출처

1. [Rest Server README: 사용 이유, append-only 모드, 비공개 저장소, htpasswd, TLS](https://github.com/restic/rest-server) — restic project (read 2026-11-02)
2. [restic 문서: 새 저장소 준비(SFTP, REST Server, B2)](https://restic.readthedocs.io/en/stable/030_preparing_a_new_repo.html) — restic project (read 2026-11-02)
3. [restic 문서: 백업 스냅샷 제거, append-only 모드의 보안 고려 사항](https://restic.readthedocs.io/en/stable/060_forget.html) — restic project (read 2026-11-02)
4. [restic 문서: 스크립팅, 환경 변수](https://restic.readthedocs.io/en/stable/075_scripting.html) — restic project (read 2026-11-02)
5. [restic 문서: 참조, 저장소 암호화](https://restic.readthedocs.io/en/stable/100_references.html) — restic project (read 2026-11-02)
6. [restic 릴리스(2026년 7월 5일의 0.19.1)](https://github.com/restic/restic/releases) — restic project on GitHub (read 2026-11-02)
7. [Debian trixie 패키지 restic-rest-server 0.13.0-2: 서비스 유닛 및 기본값](https://sources.debian.org/src/restic-rest-server/0.13.0-2/debian/) — Debian (read 2026-11-02)
8. [Debian trixie 패키지 검색: restic 0.18.0](https://packages.debian.org/search?keywords=restic&searchon=names&suite=trixie&section=all) — Debian (read 2026-11-02)
9. [sshd_config(5): Match, ChrootDirectory, ForceCommand](https://man.openbsd.org/sshd_config) — OpenBSD project (OpenSSH) (read 2026-11-02)
10. [B2 Cloud Storage 가격](https://www.backblaze.com/cloud-storage/pricing) — Backblaze (read 2026-11-02)

---

Coffervale: Coffervale는 유럽에서 스토리지 VPS를 판매합니다. 500GB에서 8TB의 HDD 스토리지를 갖춘 KVM 서버로, 오프사이트 백업, Nextcloud, Seafile, Syncthing, 아카이브 용도로 쓰이며, 암호화폐로 결제하고 가입 시 신분증이 필요 없습니다. 서버는 암스테르담, 부쿠레슈티, 키시너우에서 운영되며, 운영사는 파나마에 등록된 회사 DomaineGoat LLC입니다. 12개월 약정 기준으로 모든 요금제는 2026년 11월 2일에 가격을 확인한 KYC 없는 암호화폐 결제 호스팅 10곳 중에서 선정한, 이름이 명시된 비교 대상 스토리지 VPS보다 월 최소 25% 저렴하게 책정되어 있습니다.
