GCP Disk Snapshot
디스크 스냅샷을 생성, 복원, 관리합니다.
사용법
code
/gcp-snapshot # 스냅샷 목록 조회 /gcp-snapshot create my-disk # 디스크 스냅샷 생성 /gcp-snapshot restore snap-001 # 스냅샷에서 디스크 복원 /gcp-snapshot cleanup # 오래된 스냅샷 정리
Workflow
1. 스냅샷 목록 조회
bash
PROJECT_ID=$(gcloud config get-value project) gcloud compute snapshots list --project=$PROJECT_ID \ --format="table(name,sourceDisk.basename(),diskSizeGb,status,creationTimestamp.date())"
2. 디스크 목록 조회
bash
gcloud compute disks list --project=$PROJECT_ID \ --format="table(name,zone.basename(),sizeGb,type.basename(),status,users.basename())"
3. 스냅샷 생성
bash
# 기본 스냅샷 gcloud compute disks snapshot DISK_NAME \ --zone=ZONE \ --snapshot-names=SNAPSHOT_NAME # 설명 추가 gcloud compute disks snapshot DISK_NAME \ --zone=ZONE \ --snapshot-names=SNAPSHOT_NAME \ --description="Before upgrade - $(date +%Y-%m-%d)" # 여러 디스크 동시에 gcloud compute disks snapshot DISK1 DISK2 \ --zone=ZONE \ --snapshot-names=SNAP1,SNAP2
4. 스냅샷에서 디스크 복원
bash
# 새 디스크 생성 gcloud compute disks create NEW_DISK_NAME \ --zone=ZONE \ --source-snapshot=SNAPSHOT_NAME \ --type=pd-balanced # VM에 연결 gcloud compute instances attach-disk VM_NAME \ --zone=ZONE \ --disk=NEW_DISK_NAME
5. 스냅샷 삭제
bash
# 단일 삭제 gcloud compute snapshots delete SNAPSHOT_NAME # 7일 이상 된 스냅샷 목록 gcloud compute snapshots list \ --filter="creationTimestamp<-P7D" \ --format="value(name)"
스냅샷 스케줄 설정
bash
# 일일 스냅샷 스케줄 생성 gcloud compute resource-policies create snapshot-schedule daily-backup \ --region=asia-northeast3 \ --max-retention-days=7 \ --daily-schedule \ --start-time=02:00 # 디스크에 스케줄 적용 gcloud compute disks add-resource-policies DISK_NAME \ --zone=ZONE \ --resource-policies=daily-backup
출력 형식
code
## 스냅샷 목록 | 스냅샷 이름 | 소스 디스크 | 크기 | 상태 | 생성일 | |-------------|-------------|------|------|--------| | snap-2024-01-15 | my-disk | 50GB | READY | 2024-01-15 | | snap-2024-01-14 | my-disk | 50GB | READY | 2024-01-14 | --- 총 2개 스냅샷, 100GB 사용 중 예상 월 비용: ~$5 (스냅샷 $0.05/GB/월)
스냅샷 비용
| 항목 | 비용 |
|---|---|
| 스냅샷 저장 | $0.05/GB/월 |
| 첫 스냅샷 | 디스크 전체 크기 |
| 이후 스냅샷 | 변경분만 (증분) |
모범 사례
- •명명 규칙:
{disk}-{date}(예:web-server-2024-01-15) - •정기 백업: 스케줄 정책 사용
- •보관 기간: 개발 7일, 프로덕션 30일
- •복원 테스트: 정기적으로 복원 테스트
주의사항
- •스냅샷 생성 중 I/O 성능 저하 가능
- •프로덕션은 비피크 시간에 생성 권장
- •스냅샷은 리전 독립적 (다른 리전에서 복원 가능)