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.mdsource 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/월 |
| 첫 스냅샷 | 디스크 전체 크기 |
| 이후 스냅샷 | 변경분만 (증분) |
모범 사례
- 명명 규칙:
(예:{disk}-{date}
)web-server-2024-01-15 - 정기 백업: 스케줄 정책 사용
- 보관 기간: 개발 7일, 프로덕션 30일
- 복원 테스트: 정기적으로 복원 테스트
주의사항
- 스냅샷 생성 중 I/O 성능 저하 가능
- 프로덕션은 비피크 시간에 생성 권장
- 스냅샷은 리전 독립적 (다른 리전에서 복원 가능)