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


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

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

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

시작하기 전에

  • 이미지 문서를 읽습니다.
  • 아직 인증을 설정하지 않았다면 설정합니다. 인증은 Google Cloud 서비스 및 API에 액세스하기 위해 ID를 확인하는 프로세스입니다. 로컬 개발 환경에서 코드 또는 샘플을 실행하려면 다음 옵션 중 하나를 선택하여 Compute Engine에 인증하면 됩니다.

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. REST

      로컬 개발 환경에서 이 페이지의 REST API 샘플을 사용하려면 gcloud CLI에 제공한 사용자 인증 정보를 사용합니다.

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

      자세한 내용은 Google Cloud 인증 문서의 REST 사용을 위한 인증을 참고하세요.

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

콘솔

  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 소유 및 Google 관리 키인 Cloud Key Management Service (Cloud KMS) 또는 고객 제공 암호화 키 (CSEK) 사이에서 선택할 수 있습니다. 암호화 키가 지정되지 않은 경우 이미지는 Google 소유 및 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

REST

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

REST

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