이미지 계열을 사용하여 이미지 버전 관리를 간소화합니다. 이미지 계열에 이미지를 추가하고 최신 이미지 버전으로 설정합니다. 이미지 계열을 이전 이미지 버전으로 롤백해야 한다고 판단할 경우 계열의 최신 이미지를 지원 중단합니다.
이미지 계열 작업 시 권장사항은 이미지 계열 권장사항을 참조하세요.
원하는 경우 Google Cloud 콘솔, --storage-location
플래그를 지정한 gcloud compute images create
명령어 또는 images().insert
메서드를 사용하여 이미지의 스토리지 위치를 지정할 수 있습니다.
시작하기 전에
- 이 가이드의 명령줄 예시를 사용하려면 다음을 수행하세요.
- 최신 버전의 Google Cloud CLI를 설치하거나 업데이트합니다.
- 기본 리전 및 영역을 설정합니다.
- 이 가이드의 API 예시를 사용하려면 API 액세스를 설정합니다.
- 이미지 문서를 읽습니다.
이미지 계열에서 이미지 버전 설정
콘솔
Google Cloud 콘솔에서 이미지 만들기 페이지로 이동합니다.
이미지의 이름을 지정합니다. 예를 들면
image-v1
입니다.이미지를 만들 소스를 지정합니다. 소스는 영구 디스크, 스냅샷, 다른 이미지, Cloud Storage의 disk.raw 파일일 수 있습니다.
실행 중인 VM에 연결된 디스크에서 이미지를 만드는 경우 인스턴스 계속 실행을 선택하여 VM이 실행되는 동안 이미지를 만들 것임을 확인합니다. 이미지를 만들기 전에 VM을 준비할 수 있습니다.
소스 디스크 위치 기준(기본값) 드롭다운 목록에서 이미지를 저장할 위치를 지정합니다. 예를 들어
us
를 지정하여us
멀티 리전에 이미지를 저장하거나us-central1
을 지정하여us-central1
리전에 저장합니다. 선택하지 않으면 Compute Engine은 이미지의 소스 위치와 가장 가까운 멀티 리전에 이미지를 저장합니다.새 이미지의 이미지 계열을 지정합니다. 예를 들어
my-image-family
를 추가하여 이미지 계열의 일부로 이미지를 구성합니다.선택사항: 다른 이미지 속성을 지정합니다.
- 설명: 커스텀 이미지에 대한 설명입니다.
- 라벨: 리소스를 그룹화하는 라벨입니다.
암호화 키를 지정합니다. Google 관리 키, Cloud Key Management Service(Cloud KMS) 키 또는 고객 제공 암호화(CSEK) 키 중 한 가지를 선택할 수 있습니다. 암호화 키가 지정되지 않은 경우 이미지는 Google 관리 키를 사용하여 암호화됩니다.
만들기를 클릭하여 이미지를 만듭니다.
gcloud
gcloud compute images create image-v1 \ --source-disk disk-1 \ --source-disk-zone us-central1-f \ --family my-image-family
이미지 계열이 image-v1
을 가리킵니다. 계열에 두 번째 이미지를 추가합니다.
gcloud compute images create image-v2 \ --source-disk disk-2 \ --source-disk-zone us-central1-f \ --family my-image-family
API
images().insert
메서드에 대해 POST
요청을 실행합니다.
요청 본문에 이미지 계열을 지정합니다.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images { "name": "image-v2", "sourceDisk": "/zones/us-central1-f/disks/disk-2", "family":"my-image-family", }
image-v2
가 이미지 계열에 추가된 최신 이미지이므로 이미지 계열이 이 이미지를 가리킵니다.
gcloud
gcloud compute images describe-from-family
명령어를 실행하여 이미지 계열이 가리키는 이미지를 확인할 수 있습니다.
예를 들면 다음과 같습니다.
gcloud compute images describe-from-family my-image-family
family: my-image-family
id: '8904691942610171306'
kind: compute#image
name: image-v2
selfLink: https://compute.googleapis.com/compute/v1/projects/my-project/global/images/image-v2
sourceDisk: https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central1-f/disks/disk-v2
sourceDiskId: '1677449456001963379'
sourceType: RAW
status: READY
API
images().getFromFamily
메서드에 대해 GET
요청을 실행합니다.
요청 본문에 이미지 계열을 지정합니다.
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images/family { "resourceId":"my-image-family", }
이미지 계열이 더 이상 image-v2
를 가리키지 않도록 이미지 계열을 롤백해야 한다고 판단되는 경우 image-v2
를 지원 중단합니다. 그러면 계열에서 image-v1
을 다시 가리킵니다.
gcloud compute images deprecate image-v2 \ --state DEPRECATED \ --replacement image-v1
이미지 계열이 image-v1
을 가리키는지 확인합니다.
gcloud compute images describe-from-family my-image-family
family: my-image-family
id: '2741732787056801255'
kind: compute#image
name: image-v1
selfLink: https://compute.googleapis.com/compute/v1/projects/my-project/global/images/image-v1
sourceDisk: https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central1-f/disks/disk-v1
sourceDiskId: '1677449456001963379'
sourceType: RAW
status: READY