GCP의 Compute Engine에서 정기 스냅샷 얻기
소개
Google Cloud Platform에서 compute engine을 정기 스냅샷을 얻고 싶습니다.
2019년 12월 19일 추가
→보다 간단한 방법이 있었으므로, 얼른 끝내고 싶은 분은 여기를 참조해 주세요.
개요
매일 야간에 스냅샷 받기
7일 이상 이전 스냅샷 삭제
환경
클라우드: Google Cloud Platform
OS:CentOS 8
tool:Google Cloud SDK
Google Cloud SDK를 사용하는 방법을 모르는 사람은 여기을 참조하십시오.
사용법
인스턴스 목록 검색
[google@ap-srv1 ~]$ gcloud compute instances list
NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP STATUS
ap-srv1 asia-northeast1-a f1-micro 192.168.5.3 xx.xx.xxx.xxx RUNNING
ap-srv2 asia-northeast1-a g1-small 192.168.5.4 xx.xx.xxx.xxx RUNNING
web-srv1 asia-northeast1-a g1-small 192.168.5.7 xx.xx.xxx.xxx RUNNING
인스턴스 목록에서 필터를 지정하여 인스턴스를 좁히기
예: 'web'로 시작하는 인스턴스만 표시
[google@ap-srv1 ~]$ gcloud compute instances list --filter="name ~ ^web"
NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP STATUS
web-srv1 asia-northeast1-a g1-small 192.168.5.7 xx.xx.xxx.xxx RUNNING
다른 사용법은 본가 구글의 해설 페이지을 참조하십시오.
수동으로 스냅샷 가져오기
우선은 수동으로 스냅샷을 취득해 본다.
명령은 이렇게
gcloud compute disks snapshot -q 인스턴스 이름 --zone=존 이름 --snapshot-names=스냅샷 이름
[google@ap-srv1 ~]$ gcloud compute disks snapshot -q ap-srv1 --zone=asia-northeast1-a --snapshot-names=temporary-snapshot-20191213
Creating snapshot(s) temporary-snapshot-20191213...done.
가능한지 확인
[google@ap-srv1 ~]$ gcloud compute snapshots list --filter="name ~ ^temp"
NAME DISK_SIZE_GB SRC_DISK STATUS
temporary-snapshot-20191213 100 asia-northeast1-b/disks/server1 READY
할 수있는 것 같습니다.
수동으로 스냅샷 삭제
[google@ap-srv1 ~]$ gcloud compute snapshots delete temporary-snapshot-20191213
The following snapshots will be deleted:
- [temporary-snapshot-20191213]
Do you want to continue (Y/n)? Y
Deleted [https://www.googleapis.com/compute/v1/projects/yourproject-000000/global/snapshots/temporary-snapshot-20191213].
삭제할 수 있었지만, 계속해 좋은지 확인이 들어가는 것 같으므로, 옵션에 quiet를 붙인다.
gcloud compute snapshots delete temporary-snapshot-20191213 --quiet
확인 없이 삭제되게 되었지만, 7일 이상 전의 녀석을 삭제하고 싶기 때문에, 이하의 커멘드로 타임 스탬프를 취득
gcloud compute snapshots list --filter="creationTimestamp
또한 uri를 지정하여 삭제할 수 있으므로 uri 옵션을 붙여 삭제 대상을 필터링합니다.
gcloud compute snapshots list --filter="creationTimestamp
스크립트 만들기
snapshot.shINSTANCE_NAME=ap-srv1
SNAPSHOT_ZONE_NAME=asia-northeast1-a
DAYS_OLD="$(date -d "-7 days" +%Y%m%d)"
# create the snapshot
gcloud compute disks snapshot -q ${INSTANCE_NAME} --zone=${SNAPSHOT_ZONE_NAME} --snapshot-names=${INSTANCE_NAME}-`date +'%Y%m%d'`
#
# DELETE OLD SNAPSHOTS (OLDER THAN 7 DAYS)
#
gcloud compute snapshots list --filter="creationTimestamp<$DAYS_OLD" --uri | while read SNAPSHOT_URI; do
#echo $SNAPSHOT_URI
gcloud compute snapshots delete $SNAPSHOT_URI
done
스크립트를 crontab에 등록하면 정기적으로 스냅샷을 얻을 수 있습니다.
끝에
GCP 콘솔에서도 확인했다.
좋아. 제대로 된 것 같다.
…
응? !
콘솔에서 할 수 있게 된거야!
몰랐다~, 모~
Reference
이 문제에 관하여(GCP의 Compute Engine에서 정기 스냅샷 얻기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/average_nobody/items/9f6487c879207f87c20b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
인스턴스 목록 검색
[google@ap-srv1 ~]$ gcloud compute instances list
NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP STATUS
ap-srv1 asia-northeast1-a f1-micro 192.168.5.3 xx.xx.xxx.xxx RUNNING
ap-srv2 asia-northeast1-a g1-small 192.168.5.4 xx.xx.xxx.xxx RUNNING
web-srv1 asia-northeast1-a g1-small 192.168.5.7 xx.xx.xxx.xxx RUNNING
인스턴스 목록에서 필터를 지정하여 인스턴스를 좁히기
예: 'web'로 시작하는 인스턴스만 표시
[google@ap-srv1 ~]$ gcloud compute instances list --filter="name ~ ^web"
NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP STATUS
web-srv1 asia-northeast1-a g1-small 192.168.5.7 xx.xx.xxx.xxx RUNNING
다른 사용법은 본가 구글의 해설 페이지을 참조하십시오.
수동으로 스냅샷 가져오기
우선은 수동으로 스냅샷을 취득해 본다.
명령은 이렇게
gcloud compute disks snapshot -q 인스턴스 이름 --zone=존 이름 --snapshot-names=스냅샷 이름
[google@ap-srv1 ~]$ gcloud compute disks snapshot -q ap-srv1 --zone=asia-northeast1-a --snapshot-names=temporary-snapshot-20191213
Creating snapshot(s) temporary-snapshot-20191213...done.
가능한지 확인
[google@ap-srv1 ~]$ gcloud compute snapshots list --filter="name ~ ^temp"
NAME DISK_SIZE_GB SRC_DISK STATUS
temporary-snapshot-20191213 100 asia-northeast1-b/disks/server1 READY
할 수있는 것 같습니다.
수동으로 스냅샷 삭제
[google@ap-srv1 ~]$ gcloud compute snapshots delete temporary-snapshot-20191213
The following snapshots will be deleted:
- [temporary-snapshot-20191213]
Do you want to continue (Y/n)? Y
Deleted [https://www.googleapis.com/compute/v1/projects/yourproject-000000/global/snapshots/temporary-snapshot-20191213].
삭제할 수 있었지만, 계속해 좋은지 확인이 들어가는 것 같으므로, 옵션에 quiet를 붙인다.
gcloud compute snapshots delete temporary-snapshot-20191213 --quiet
확인 없이 삭제되게 되었지만, 7일 이상 전의 녀석을 삭제하고 싶기 때문에, 이하의 커멘드로 타임 스탬프를 취득
gcloud compute snapshots list --filter="creationTimestamp
또한 uri를 지정하여 삭제할 수 있으므로 uri 옵션을 붙여 삭제 대상을 필터링합니다.
gcloud compute snapshots list --filter="creationTimestamp
스크립트 만들기
snapshot.sh
INSTANCE_NAME=ap-srv1
SNAPSHOT_ZONE_NAME=asia-northeast1-a
DAYS_OLD="$(date -d "-7 days" +%Y%m%d)"
# create the snapshot
gcloud compute disks snapshot -q ${INSTANCE_NAME} --zone=${SNAPSHOT_ZONE_NAME} --snapshot-names=${INSTANCE_NAME}-`date +'%Y%m%d'`
#
# DELETE OLD SNAPSHOTS (OLDER THAN 7 DAYS)
#
gcloud compute snapshots list --filter="creationTimestamp<$DAYS_OLD" --uri | while read SNAPSHOT_URI; do
#echo $SNAPSHOT_URI
gcloud compute snapshots delete $SNAPSHOT_URI
done
스크립트를 crontab에 등록하면 정기적으로 스냅샷을 얻을 수 있습니다.
끝에
GCP 콘솔에서도 확인했다.
좋아. 제대로 된 것 같다.
…
응? !
콘솔에서 할 수 있게 된거야!
몰랐다~, 모~
Reference
이 문제에 관하여(GCP의 Compute Engine에서 정기 스냅샷 얻기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/average_nobody/items/9f6487c879207f87c20b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)