name: gcp-snapshot description: "GCP 디스크 스냅샷 생성/복원/정리"
GCP Disk Snapshot
디스크 스냅샷을 생성, 복원, 관리합니다.
사용법
/gcp-snapshot # 스냅샷 목록 조회
/gcp-snapshot create my-disk # 디스크 스냅샷 생성
/gcp-snapshot restore snap-001 # 스냅샷에서 디스크 복원
/gcp-snapshot cleanup # 오래된 스냅샷 정리
Workflow
1. 스냅샷 목록 조회
PROJECT_ID=$(gcloud config get-value project)
gcloud compute snapshots list --project=$PROJECT_ID \
--format="table(name,sourceDisk.basename(),diskSizeGb,status,creationTimestamp.date())"
2. 디스크 목록 조회
gcloud compute disks list --project=$PROJECT_ID \
--format="table(name,zone.basename(),sizeGb,type.basename(),status,users.basename())"
3. 스냅샷 생성
# 기본 스냅샷
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. 스냅샷에서 디스크 복원
# 새 디스크 생성
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. 스냅샷 삭제
# 단일 삭제
gcloud compute snapshots delete SNAPSHOT_NAME
# 7일 이상 된 스냅샷 목록
gcloud compute snapshots list \
--filter="creationTimestamp<-P7D" \
--format="value(name)"
스냅샷 스케줄 설정
# 일일 스냅샷 스케줄 생성
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
출력 형식
## 스냅샷 목록
| 스냅샷 이름 | 소스 디스크 | 크기 | 상태 | 생성일 |
|-------------|-------------|------|------|--------|
| 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 성능 저하 가능
- 프로덕션은 비피크 시간에 생성 권장
- 스냅샷은 리전 독립적 (다른 리전에서 복원 가능)