Claude-skill-registry gcp-snapshot

GCP 디스크 스냅샷 생성/복원/정리

install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/gcp-snapshot" ~/.claude/skills/majiayu000-claude-skill-registry-gcp-snapshot && rm -rf "$T"
manifest: skills/data/gcp-snapshot/SKILL.md
source content

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/월
첫 스냅샷디스크 전체 크기
이후 스냅샷변경분만 (증분)

모범 사례

  1. 명명 규칙:
    {disk}-{date}
    (예:
    web-server-2024-01-15
    )
  2. 정기 백업: 스케줄 정책 사용
  3. 보관 기간: 개발 7일, 프로덕션 30일
  4. 복원 테스트: 정기적으로 복원 테스트

주의사항

  • 스냅샷 생성 중 I/O 성능 저하 가능
  • 프로덕션은 비피크 시간에 생성 권장
  • 스냅샷은 리전 독립적 (다른 리전에서 복원 가능)