소규모 서버를 위한 백업 전략 세우기
백업은 거창한 시스템이 아니어도 됩니다. 중요한 것은 '복구해 본 적 있는 백업'을 정기적으로 만드는 것입니다.
3-2-1 백업 원칙
전통적으로 권장되는 백업 원칙은 3-2-1 규칙입니다. 데이터 사본을 3개 보유하고, 서로 다른 2종류의 저장 매체에 저장하며, 그중 1개는 물리적으로 분리된 장소(또는 별도 클라우드)에 보관하는 방식입니다.
무엇을 백업할 것인가
- 데이터베이스 덤프 파일
- 사용자 업로드 파일
- 애플리케이션 설정 파일 및 환경 변수
- 서버 설정(Nginx, systemd 유닛 등)
자동화된 백업 스크립트
cron과 간단한 셸 스크립트만으로도 매일 새벽 데이터베이스를 덤프하고 압축한 뒤 별도 스토리지로 전송하는 자동화를 구성할 수 있습니다.
#!/bin/bash
DATE=$(date +%Y%m%d)
mysqldump -u root mydb | gzip > /backup/mydb_$DATE.sql.gz
find /backup -mtime +14 -delete
복구 테스트의 중요성
백업 파일이 있다고 안심해서는 안 됩니다. 정기적으로 실제 복구 절차를 테스트해 보아야 백업이 진짜로 동작하는지 확인할 수 있습니다. 복구해 본 적 없는 백업은 백업이 아니라는 말도 있을 정도입니다.