본문 바로가기
CSP (Cloud Service Provider)/GCP

GCP의 Image Service : Machine Image & Snapshot

by BTC_.tf 2023. 7. 21.

베하! 즐거운 금요일입니다. 무더위와 폭우 대비 잘 하시고, 오늘의 포스팅 시작하겠습니다.

 

오늘은 GCP의 Image Service에 대해 알아보겠습니다.

 

첫째로, Machine Image에 대해 알아볼까요?

Machine Image는 VM Instance의 여러 Disk에 있는 모든 구성, Metadata, 권한, Data를 저장하는 Compute Engine 리소스입니다. 이러한 Machine Image는 VM Instance 수준에서 백업을 지원하는데, 여러 디스크를 한 번에 백업하거나 VM Instance를 Clone하는 작업 등에 사용됩니다.

 

Machine Image는 Source Instance에서 다음과 같은 정보를 수집합니다.

우선 VM Instance 구성 정보를 수집하는데, Machine Type, Instance Metadata, Description, Label, Network Tag, Maintenance Policy 등이 이에 해당합니다.

또한, Source Instance의 Persistent Disk와 SSD를 만드는 데 사용된 Volume MappingPersistent Disk에 저장되는 Data도 수집됩니다.

반대로 Memory의 Data, Local SSD의 Data, Source Instance의 이름과 IP Address 등은 수집되지 않습니다.

 

Machine Image 생성 CLI입니다.

gcloud compute machine-images create [Machine Image명] \
    --source-instance=[Source Instance명]

 

다음은 Snapshot에 대해 알아보겠습니다.

Snapshot은 Persistent Disk 의 Data를 증분식으로 백업합니다. Disk의 현재 상태를 캡처한 Snapshot을 생성 후, 이를 사용하여 해당 Data를 새로운 Disk에 복원하는 용도로 사용할 수 있습니다.

 

Snapshot은 실행중인 VM Instance에 연결된 Disk로도 생성이 가능합니다. 또한 Snapshot Schedule로 정기적인 Data의 백업도 가능하며, 전역 리소스이므로 동일한 Project 내의 모든 리소스가 모든 Snapshot에 액세스할 수도 있습니다.

 

Snapshot의 제한사항은 다음과 같습니다.

첫째로, Snapshot의 저장소 위치를 지정하지 않으면 Snapshot은 Persistent Disk Region과 가장 가까운 Multi Region에 저장되는데, 이때 기존 Snapshot의 Storage 위치는 변경할 수 없습니다.

둘째로, 최대 10분에 한 번씩만 Snapshot을 생성할 수 있습니다. 즉, 1시간에 최대 6개의 Snapshot 생성 요청을 할 수 있는 것입니다. 참고로 이 제한을 초과하면 다음과 같은 오류가 반환됩니다.

"code": "RESOURCE_OPERATION_RATE_EXCEEDED",
"message": "Operation rate exceeded for resource 'projects/project-id/zones/zone-id/disks/disk-name'.
Too frequent operations from the source resource."

마지막으로, Snapshot에 저장된 Data는 수정할 수 없으며 삭제된 Snapshot은 복구가 불가능합니다.

 

Snapshot 생성 CLI입니다.

Zonal Persistent Disk 기반의 Snapshot 생성 CLI :

gcloud compute snapshots create [Snapshot명] \
    --source-disk [Source Disk] \
    --snapshot-type [Snapshot Type] \
    --source-disk-zone [Source Disk Zone]

Regional Persistent Disk 기반의 Snapshot 생성 CLI :

gcloud compute snapshots create [Snapshot명] \
    --source-disk [Source Disk] \
    --source-disk-region=[Source Disk Region]
    --snapshot-type=[Snapshot Type]

Hyper Disk 기반의 Snapshot 생성 CLI :

gcloud compute snapshots create [Snapshot명] \
 --source-disk [Source Disk] \
 --source-disk-zone [Source Disk Zone] \
 --storage-location [Storage Location] \
 --snapshot-type [Snapshot Type]

 

원래는 다른 Image Service도 설명하려 했지만, 생각보다 포스팅의 내용이 길어져 남은 Image Service들은 다음 시간에 알아보도록 하겠습니다.

 

부족한 포스팅 봐주셔서 감사합니다!

댓글