OffshoreVps
보안2026년 10월 8일읽는 시간 8분작성: OffshoreVps 팀

restic으로 VPS 백업하기: 자동화와 암호화

3-2-1 규칙, 백업 대상, 암호화된 restic 설정, cron 스크립트, 그리고 복원 테스트가 반드시 필요한 이유를 다룹니다. 제공업체의 스냅샷만으로는 충분하지 않습니다.

VPS는 고장 나거나, 실수로 삭제되거나, 잘못된 업데이트로 망가질 수 있습니다. 유일한 보호 수단은 테스트해 본 백업입니다. 이 가이드는 무료 도구로 간단하고 자동화된 암호화 백업을 설정합니다.

VPS를 백업하는 데 사용하는 명령어를 보여 주는 VPS의 터미널 창으로, “sudo apt install -y restic”로 시작함
이 가이드에서 서버에서 실행하게 될 명령어의 종류입니다.

3-2-1 규칙

데이터 사본을 3개 보관하고, 2가지 서로 다른 종류의 저장소에 두며, 1개는 완전히 다른 곳에 두세요. VPS의 경우 보통 라이브 데이터, 로컬 스냅샷, 그리고 다른 제공업체나 다른 국가의 오프사이트 사본을 뜻합니다.

백업할 대상

  • 웹사이트 파일과 업로드 (/var/www).
  • 데이터베이스는 먼저 파일로 덤프하세요 (라이브 데이터베이스 파일을 복사하지 마세요).
  • 설정: /etc/nginx, /etc 변경 사항, Docker Compose 파일과 볼륨.
  • Cron 작업과 모든 사용자 지정 스크립트.

운영 체제는 몇 분이면 다시 설치할 수 있습니다. 다시 설치할 수 없는 것은 데이터와 설정입니다.

restic으로 암호화되고 중복 제거된 백업 만들기

sudo apt install -y restic
export RESTIC_REPOSITORY=sftp:backup@other-server:/backups/vps1
export RESTIC_PASSWORD_FILE=/root/.restic-pass
restic init

긴 무작위 문자열로 비밀번호 파일을 만들고 사본을 안전한 곳에 보관하세요. 이 비밀번호를 잃어버리면 백업을 열 수 없습니다. restic은 S3 호환 스토리지도 지원하므로 어떤 오브젝트 스토어로든 보낼 수 있습니다.

이 가이드의 단계를 순서대로 나열하면 다음과 같습니다. 1. 3-2-1 규칙; 2. 백업 대상; 3. 암호화 및 중복 제거 백업에 restic 사용; 4. 백업 스크립트; 5. 복원 테스트; 6. 스냅샷은 도움이 되지만 충분하지 않음
이 가이드의 단계를 순서대로 나열한 것입니다.

백업 스크립트

#!/bin/bash
set -e
export RESTIC_REPOSITORY=sftp:backup@other-server:/backups/vps1
export RESTIC_PASSWORD_FILE=/root/.restic-pass

mysqldump --single-transaction --all-databases | gzip > /var/backups/db.sql.gz
restic backup /var/www /etc /var/backups/db.sql.gz
restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --prune

/usr/local/bin/backup.sh로 저장하고, 실행 가능하게 만든 뒤 일정을 등록하세요.

sudo chmod +x /usr/local/bin/backup.sh
echo "30 3 * * * root /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1" | sudo tee /etc/cron.d/backup

복원 테스트

restic snapshots
restic restore latest --target /tmp/restore-test --include /etc/nginx

한 번도 복원해 보지 않은 백업은 희망일 뿐입니다. 분기마다 한 번, 그리고 무언가를 변경한 뒤에는 항상 테스트하세요.

스냅샷은 도움이 되지만 충분하지 않습니다

제공업체 스냅샷은 빠르고 위험한 변경 전에 편리하지만, 같은 제공업체와 같은 계정에 존재합니다. 편의 기능으로 여기고 독립적인 오프사이트 사본을 따로 보관하세요.