이미지 계열에서 이미지 버전 설정


이미지 계열을 사용하여 이미지 버전 관리를 간소화합니다. 이미지 계열에 이미지를 추가하고 최신 이미지 버전으로 설정합니다. 이미지 계열을 이전 이미지 버전으로 롤백해야 한다고 판단할 경우 계열의 최신 이미지를 지원 중단합니다.

이미지 계열 작업 시 권장사항은 이미지 계열 권장사항을 참조하세요.

원하는 경우 Google Cloud 콘솔, --storage-location 플래그를 지정한 gcloud compute images create 명령어 또는 images().insert 메서드를 사용하여 이미지의 스토리지 위치를 지정할 수 있습니다.

시작하기 전에

이미지 계열에서 이미지 버전 설정

콘솔

  1. Google Cloud 콘솔에서 이미지 만들기 페이지로 이동합니다.

    이미지 만들기로 이동

  2. 이미지의 이름을 지정합니다. 예를 들면 image-v1입니다.

  3. 이미지를 만들 소스를 지정합니다. 소스는 영구 디스크, 스냅샷, 다른 이미지, Cloud Storage의 disk.raw 파일일 수 있습니다.

  4. 실행 중인 VM에 연결된 디스크에서 이미지를 만드는 경우 인스턴스 계속 실행을 선택하여 VM이 실행되는 동안 이미지를 만들 것임을 확인합니다. 이미지를 만들기 전에 VM을 준비할 수 있습니다.

  5. 소스 디스크 위치 기준(기본값) 드롭다운 목록에서 이미지를 저장할 위치를 지정합니다. 예를 들어 us를 지정하여 us 멀티 리전에 이미지를 저장하거나 us-central1을 지정하여 us-central1 리전에 저장합니다. 선택하지 않으면 Compute Engine은 이미지의 소스 위치와 가장 가까운 멀티 리전에 이미지를 저장합니다.

  6. 새 이미지의 이미지 계열을 지정합니다. 예를 들어 my-image-family를 추가하여 이미지 계열의 일부로 이미지를 구성합니다.

  7. 선택사항: 다른 이미지 속성을 지정합니다.

    • 설명: 커스텀 이미지에 대한 설명입니다.
    • 라벨: 리소스를 그룹화하는 라벨입니다.
  8. 암호화 키를 지정합니다. Google 관리 키, Cloud Key Management Service(Cloud KMS) 키 또는 고객 제공 암호화(CSEK) 키 중 한 가지를 선택할 수 있습니다. 암호화 키가 지정되지 않은 경우 이미지는 Google 관리 키를 사용하여 암호화됩니다.

  9. 만들기를 클릭하여 이미지를 만듭니다.

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