백업, 복구, 마이그레이션
1️⃣6️⃣ 백업, 복구, 마이그레이션
Vault는 보안 정보 저장소인 만큼, 장애나 데이터 손실 시 빠르게 복구할 수 있는 체계가 반드시 필요합니다. 이 포스팅에서는 Raft Snapshot 방식의 백업/복구, 파일 이관 전략, DR(Disaster Recovery) 클러스터 구성을 실무 예제와 함께 다룹니다.
1. Raft Snapshot 방식 백업/복원 실습
Vault가 내부 스토리지로 Raft Storage를 사용할 경우, vault operator raft snapshot
명령으로 전체 스토리지 상태를 백업할 수 있습니다.
📦 1-1. Snapshot 백업
vault operator raft snapshot save /backup/vault-snapshot.snap
🔐 이 스냅샷은 Vault의 모든 데이터(시크릿, 정책, 인증 설정 등)를 포함합니다.
💥 1-2. Snapshot 복원 (주의: 기존 데이터 삭제됨)
vault operator raft snapshot restore /backup/vault-snapshot.snap
🧨 복원 전에 기존 Vault 데이터를 초기화해야 하며, 복구 노드에서만 사용 가능합니다.
🖼️ Raft 백업/복구 흐름도
┌─────────────┐
│ Vault Raft│
└────┬────────┘
│
▼
[Snapshot 생성]──▶ [외부 저장소 전송 (S3, NFS 등)]
│
▼
[복원 시점 Vault] ◀── Snapshot 복원
2. 주요 파일 위치 및 이관 전략
Vault를 파일 시스템 기반으로 배포한 경우, 중요한 구성 파일과 데이터를 계획적으로 이관할 필요가 있습니다.
📁 2-1. 주요 파일 구조
파일/디렉토리 | 설명 |
---|---|
/etc/vault.d/ |
Vault 설정 파일 (config.hcl 등) |
/opt/vault/data/ |
Raft 저장소 (Raft 사용 시 중요) |
/var/log/vault.log |
로그 파일 |
/root/.vault-token |
인증 토큰 파일 (임시) |
🚚 2-2. 서버 마이그레이션 전략
# 예시: Vault 설정 파일 + 데이터 디렉토리 백업
rsync -avz /etc/vault.d/ new-server:/etc/vault.d/
rsync -avz /opt/vault/data/ new-server:/opt/vault/data/
✅ 서버 간 Vault 버전이 동일해야 하고, Unseal Key와 Token도 함께 이관 필요
🧱 체크포인트
- Vault 버전 일치 여부
- TLS 인증서 재적용 필요 여부
- systemd 서비스 설정 이관 여부
3. Disaster Recovery 클러스터 구성
Vault Enterprise에서는 DR 모드로 별도의 DR Cluster를 구성하여 실시간 Snapshot 복제 및 장애 시 빠른 전환이 가능합니다.
🧭 구성 방식
- Primary Cluster: 실 운영 중인 Vault
- DR Secondary Cluster: 비동기 복제 수신
- DR 모드는 Raft 클러스터와 별개로 구성
🖼️ DR 클러스터 아키텍처
┌────────────┐ ┌────────────┐
│ Vault Prod │ ───▶ │ Vault DR │
│ (Primary) │ │ (Secondary)│
└────┬───────┘ └────┬───────┘
│ Snapshot │
▼ ▼
[운영 데이터] [비동기 복제]
⚙️ DR 구성 예시 (Enterprise 버전)
vault write -f sys/replication/dr/secondary/enable \
token=<root_token> \
primary_api_addr="https://vault-primary:8200"
🛑 DR은 Vault Enterprise Edition에서만 사용 가능
✅ 실무 운영 점검 항목
항목 | 점검 포인트 |
---|---|
Snapshot 자동화 | cron + vault snapshot save 구성 |
복구 테스트 주기 | 월 1회 테스트 복원 수행 권장 |
DR 상태 모니터링 | Vault UI 또는 API 통해 동기화 상태 확인 |
TLS 인증서 갱신 | Snapshot 포함되지 않음 – 수동 이관 필요 |
🧠 요약 정리
구분 | 전략 |
---|---|
🧩 백업 | raft snapshot save 주기적 수행 |
🛠️ 복구 | raft snapshot restore 로 복구, 기존 데이터 초기화 필요 |
🚚 마이그레이션 | 설정파일 + Raft 데이터 + 인증 토큰 이관 |
🌐 DR 구성 | Vault Enterprise 기능 사용, 비동기 복제 가능 |
마지막 수정일자