예약 수정


이 문서에서는 기존 예약을 수정하는 방법을 설명합니다.

약정에 연결된 예약을 수정하려면 대신 약정에 연결된 예약 교체를 참조하세요.

시작하기 전에

  • 예약에 대해서는 요구사항제한사항을 참조하세요.
  • 아직 인증을 설정하지 않았다면 설정합니다. 인증은 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. Google Cloud CLI를 설치한 후 다음 명령어를 실행하여 초기화합니다.

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

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

        Google Cloud CLI를 설치한 후 다음 명령어를 실행하여 초기화합니다.

        gcloud init

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

필요한 역할

예약을 수정하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 Compute 관리자(roles/compute.admin) IAM 역할을 부여해 달라고 요청하세요. 역할 부여에 대한 자세한 내용은 액세스 관리를 참조하세요.

이 사전 정의된 역할에는 예약을 수정하는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 펼치세요.

필수 권한

예약을 수정하려면 다음 권한이 필요합니다.

  • 예약의 자동 삭제 옵션 또는 공유 예약의 소비자 프로젝트를 수정하려면 프로젝트에 대한 compute.reservations.update 권한이 필요합니다.
  • 예약에서 VM 수를 수정하려면 프로젝트에 대한 compute.reservations.resize 권한이 필요합니다.

커스텀 역할이나 다른 사전 정의된 역할을 사용하여 이 권한을 부여받을 수도 있습니다.

예약 수정

기존 예약을 다음과 같이 변경할 수 있습니다.

  • 예약 자동 삭제 수정

    이 섹션에서는 예약에서 자동 삭제 옵션을 사용 설정하거나 예약이 자동으로 삭제되는 날짜와 시간을 변경하거나 예약 자동 삭제를 중지하는 방법을 설명합니다.

  • 공유 예약에서 소비자 프로젝트 수정

    이 섹션에서는 공유 예약을 사용할 수 있는 소비자 프로젝트를 추가하거나 삭제하는 방법을 설명합니다. 공유 예약을 사용할 수 있는 프로젝트를 추가하려면 프로젝트가 예약이 생성된 프로젝트(소유자 프로젝트)와 동일한 조직에 있어야 합니다.

  • 예약에서 예약된 VM 수 수정

    이 섹션에서는 예약에서 예약된 가상 머신(VM) 인스턴스 수를 늘리거나 줄이는 방법을 설명합니다.

약정에 연결되지 않은 예약에서 다른 속성을 수정하려면 이 문서의 예약에서 다른 속성 변경을 참조하세요.

예약 자동 삭제 수정

다음 중 하나를 수행하여 Compute Engine에서 기존 예약을 자동으로 삭제하는 시기를 수정할 수 있습니다.

  • 자동 삭제 옵션을 사용 설정하거나 예약이 자동으로 삭제되는 시기를 변경합니다.

  • 자동 삭제 옵션을 중지합니다.

예약 자동 삭제를 수정하려면 Google Cloud 콘솔, gcloud CLI 또는 REST를 사용합니다.

콘솔

예약 자동 삭제를 수정하려면 다음 단계를 수행합니다.

  1. Google Cloud 콘솔에서 예약 페이지로 이동합니다.

    예약으로 이동

  2. 이름 열에서 수정할 예약의 이름을 클릭합니다.

    선택한 예약의 세부정보 페이지가 열립니다.

  3. 자동 삭제 시간 행에서 자동 삭제 시간 수정을 클릭합니다.

  4. 예약 업데이트 창에서 다음 중 하나를 수행합니다.

    • 특정 날짜와 시간에 예약을 삭제하려면 다음을 수행합니다.

      1. 자동 삭제 옵션이 아직 사용 설정되지 않은 경우 자동 삭제 사용 설정 전환 버튼을 클릭하여 사용 위치로 전환합니다.

      2. 자동 삭제 시간 필드에 Compute Engine에서 예약을 자동으로 삭제할 날짜와 시간을 입력합니다.

    • 그렇지 않으면 자동 삭제 사용 설정 전환 버튼을 클릭하여 중지 위치로 전환합니다.

  5. 제출을 클릭합니다.

    예약 수정을 완료하는 데 몇 초 정도 걸릴 수 있습니다.

gcloud

예약에서 자동 삭제 옵션을 사용 설정하면 예약을 삭제할 날짜와 시간을 지정하거나 예약을 삭제한 후의 기간을 지정할 수 있습니다.

자동 삭제 옵션을 사용 설정하거나 예약을 삭제할 시간을 변경하려면 다음 중 하나를 수행합니다.

  • 특정 날짜와 시간에 예약을 삭제하려면 --delete-at-time 플래그와 함께 gcloud beta compute reservations update 명령어를 사용합니다.

    gcloud beta compute reservations update RESERVATION_NAME \
        --delete-at-time=DELETE_AT_TIME \
        --project=PROJECT_ID \
        --zone=ZONE
    

    다음을 바꿉니다.

    • RESERVATION_NAME: 기존 예약 이름

    • DELETE_AT_TIME: RFC 3339 타임스탬프 형식의 날짜 및 시간으로, 다음과 같아야 합니다.

      YYYY-MM-DDTHH:MM:SSOFFSET
      

      다음을 바꿉니다.

      • YYYY-MM-DD: 4자리 연도, 2자리 월, 2자리 일이 하이픈(-)으로 구분된 형식의 날짜입니다.

      • HH:MM:SS: 24시간제의 2자리 시간, 2자리 분, 2자리 초가 콜론(:)으로 구분된 형식의 시간입니다.

      • OFFSET: 협정 세계시(UTC)의 오프셋 형식으로 지정된 시간대입니다. 예를 들어 태평양 표준시(PST)를 사용하려면 -08:00을 지정합니다. 또는 오프셋을 사용하지 않으려면 Z를 지정합니다.

    • PROJECT_ID: 예약이 있는 프로젝트의 ID

    • ZONE: 예약이 있는 영역

  • 특정 기간이 지난 후 예약을 삭제하려면 gcloud beta compute reservations update 명령어--delete-after-duration 플래그와 함께 사용합니다.

    gcloud beta compute reservations update RESERVATION_NAME \
        --delete-after-duration=DELETE_AFTER_DURATION \
        --project=PROJECT_ID \
        --zone=ZONE
    

    다음을 바꿉니다.

    • RESERVATION_NAME: 기존 예약 이름

    • DELETE_AFTER_DURATION: 예약이 자동으로 삭제되기 전의 일, 시간, 분 또는 초 단위의 기간입니다. 예를 들어 30분의 경우에는 30m을, 1일 2시간 3분 4초의 경우에는 1d2h3m4s를 지정합니다.

    • PROJECT_ID: 예약이 있는 프로젝트의 ID

    • ZONE: 예약이 있는 영역

자동 삭제 옵션을 중지하려면 --disable-auto-delete 플래그와 함께 gcloud beta compute reservations update 명령어를 사용합니다.

gcloud beta compute reservations update RESERVATION_NAME \
    --disable-auto-delete \
    --project=PROJECT_ID \
    --zone=ZONE

다음을 바꿉니다.

  • RESERVATION_NAME: 기존 예약 이름

  • PROJECT_ID: 예약이 있는 프로젝트의 ID

  • ZONE: 예약이 있는 영역

REST

예약에서 자동 삭제 옵션을 사용 설정하면 예약을 삭제할 날짜와 시간을 지정하거나 예약을 삭제한 후의 기간을 지정할 수 있습니다.

자동 삭제 옵션을 사용 설정하거나 예약을 삭제할 시간을 변경하려면 다음 중 하나를 수행합니다.

  • 특정 날짜 및 시간에 예약을 삭제하려면 deleteAtTime으로 설정된 paths 쿼리 매개변수를 사용하여 PATCH 요청을 beta.reservations.update 메서드로 보냅니다.

    PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME?paths=deleteAtTime
    
    {
      "name": "RESERVATION_NAME",
      "deleteAtTime": "DELETE_AT_TIME"
    }
    

    다음을 바꿉니다.

    • PROJECT_ID: 예약이 있는 프로젝트의 ID

    • ZONE: 예약이 있는 영역

    • RESERVATION_NAME: 기존 예약 이름

    • DELETE_AT_TIME: RFC 3339 타임스탬프 형식의 날짜 및 시간으로, 다음과 같아야 합니다.

      YYYY-MM-DDTHH:MM:SSOFFSET
      

      다음을 바꿉니다.

      • YYYY-MM-DD: 4자리 연도, 2자리 월, 2자리 일이 하이픈(-)으로 구분된 형식의 날짜입니다.

      • HH:MM:SS: 24시간제의 2자리 시간, 2자리 분, 2자리 초가 콜론(:)으로 구분된 형식의 시간입니다.

      • OFFSET: 협정 세계시(UTC)의 오프셋 형식으로 지정된 시간대입니다. 예를 들어 태평양 표준시(PST)를 사용하려면 -08:00을 지정합니다. 또는 오프셋을 사용하지 않으려면 Z를 지정합니다.

  • 특정 기간이 지난 후 예약을 삭제하려면 deleteAfterDuration으로 설정된 paths 쿼리 매개변수를 사용하여 PATCH 요청을 beta.reservations.update 메서드로 보냅니다.

    PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME?paths=deleteAfterDuration
    
    {
      "name": "RESERVATION_NAME",
      "deleteAfterDuration": {
        "seconds": "DELETE_AFTER_DURATION"
      }
    }
    

    다음을 바꿉니다.

    • PROJECT_ID: 예약이 있는 프로젝트의 ID

    • ZONE: 예약이 있는 영역

    • RESERVATION_NAME: 기존 예약 이름

    • DELETE_AFTER_DURATION: 예약이 자동으로 삭제되기 전까지의 기간(초)입니다. 예를 들어 86,400초(1일)의 경우 86400을 지정합니다.

자동 삭제 옵션을 중지하려면 PATCH 요청을 beta.reservations.update 메서드로 보냅니다. 요청에서 paths=deleteAtTime&paths=deleteAfterDuration 쿼리 매개변수를 지정하고 요청 본문을 생략합니다.

PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME?paths=deleteAtTime&paths=deleteAfterDuration

다음을 바꿉니다.

  • PROJECT_ID: 예약이 있는 프로젝트의 ID

  • ZONE: 예약이 있는 영역

  • RESERVATION_NAME: 기존 예약 이름

공유 예약에서 소비자 프로젝트 수정

기존 공유 예약의 소비자 프로젝트를 수정할 수 있습니다. 소비자 프로젝트는 공유 예약이 공유되고 예약을 사용할 수 있는 프로젝트입니다.

공유된 예약을 소비할 수 있는 소비자 프로젝트를 수정한 후에는 예약 소비가 변경될 수 있습니다. 예를 들어 소비자 프로젝트를 삭제하면 예약에서 리소스 소비가 중지됩니다. 또한 예약이 예약 속성과 일치하는 VM에서 자동으로 사용되도록 구성된 경우(기본 동작) 모든 추가된 소비자 프로젝트에서 예약의 리소스를 사용할 수 있습니다. 예약 사용을 모니터링하려면 예약 사용 확인 방법을 참조하세요.

공유 예약을 사용할 수 있는 소비자 프로젝트를 수정하려면 Google Cloud 콘솔, gcloud CLI 또는 REST를 사용합니다.

콘솔

공유 예약을 위한 소비자 프로젝트를 수정하려면 다음 단계를 수행합니다.

  1. Google Cloud 콘솔에서 예약 페이지로 이동합니다.

    예약으로 이동

  2. 이름 열에서 설명하려는 예약의 이름을 클릭합니다.

    예약의 세부정보 페이지가 열립니다.

  3. 수정을 클릭합니다.

  4. 선택한 프로젝트 섹션에서 다음 중 하나를 수행합니다.

    • 특정 소비자 프로젝트와의 예약 공유를 중지하려면 삭제를 클릭합니다.

    • 특정 프로젝트 하나 이상과 예약 공유를 시작하려면 다음을 수행합니다.

      1. 프로젝트 추가를 클릭합니다.

      2. 예약을 공유하려는 소유자 프로젝트의 조직에서 각 프로젝트의 체크박스를 선택합니다.

      3. 선택을 클릭합니다.

  5. 변경사항을 확인하려면 저장을 클릭합니다.

    예약 수정을 완료하는 데 몇 초 정도 걸릴 수 있습니다.

gcloud

공유 예약을 위한 소비자 프로젝트를 수정하는 경우 공유 예약을 사용하도록 허용하거나 허용을 중지하려는 프로젝트의 쉼표로 구분된 ID 목록을 지정해야 합니다. 이러한 프로젝트는 소유자 프로젝트와 동일한 조직에 있어야 합니다. 목록에 소유자 프로젝트를 지정하지 마세요. 기본적으로 이미 공유 예약을 사용하도록 허용되어 있습니다.

공유 예약을 위한 소비자 프로젝트를 수정하려면 다음 방법 중 하나를 선택합니다.

  • 프로젝트 하나 이상에서 공유 예약을 사용하도록 허용하려면 --add-share-with 플래그와 함께 gcloud compute reservations update 명령어를 사용합니다.

    gcloud compute reservations update RESERVATION_NAME \
        --project=PROJECT_ID \
        --add-share-with=CONSUMER_PROJECT_IDS \
        --zone=ZONE
    

    다음을 바꿉니다.

    • RESERVATION_NAME: 기존 공유 예약의 이름

    • PROJECT_ID: 공유 예약을 만드는 데 사용되는 프로젝트인 소유자 프로젝트의 ID

    • CONSUMER_PROJECT_IDS: 예약을 공유할 프로젝트의 쉼표로 구분된 ID 목록. 예를 들어 project-1,project-2를 지정합니다.

    • ZONE: 공유 예약이 있는 영역

  • 프로젝트 하나 이상에서 공유 예약을 사용하도록 허용하지 않으려면 --remove-share-with 플래그와 함께 gcloud compute reservations update 명령어를 사용합니다.

    gcloud compute reservations update RESERVATION_NAME \
        --project=PROJECT_ID \
        --remove-share-with=CONSUMER_PROJECT_IDS \
        --zone=ZONE
    

    다음을 바꿉니다.

    • RESERVATION_NAME: 기존 공유 예약의 이름

    • PROJECT_ID: 공유 예약을 만드는 데 사용되는 프로젝트인 소유자 프로젝트의 ID

    • CONSUMER_PROJECT_IDS: 예약 공유를 중지할 프로젝트의 쉼표로 구분된 ID 목록. 예를 들어 project-1,project-2를 지정합니다.

    • ZONE: 공유 예약이 있는 영역

  • 공유 예약을 사용할 수 있는 프로젝트 목록을 바꾸려면 --share-with 플래그와 함께 gcloud compute reservations update 명령어를 사용합니다.

    gcloud compute reservations update RESERVATION_NAME \
        --project=PROJECT_ID \
        --share-with=CONSUMER_PROJECT_IDS \
        --zone=ZONE
    

    다음을 바꿉니다.

    • RESERVATION_NAME: 기존 공유 예약의 이름

    • PROJECT_ID: 공유 예약을 만드는 데 사용되는 프로젝트인 소유자 프로젝트의 ID

    • ZONE: 공유 예약이 있는 영역

    • CONSUMER_PROJECT_IDS: 예약을 공유할 프로젝트의 쉼표로 구분된 ID 목록. 예를 들어 project-1,project-2를 지정합니다.

REST

공유 예약을 위한 소비자 프로젝트를 수정하는 경우 공유 예약을 사용하도록 허용하거나 중지하려는 프로젝트의 ID를 지정해야 합니다. 이러한 프로젝트는 소유자 프로젝트와 동일한 조직에 있어야 합니다. 소유자 프로젝트는 지정하지 않습니다. 기본적으로 이미 공유 예약을 사용하도록 허용되어 있습니다.

공유 예약을 위한 소비자 프로젝트를 수정하려면 다음 방법 중 하나를 선택합니다.

  • 하나 이상의 프로젝트가 공유 예약을 사용하도록 허용하려면 reservations.update 메서드에 대해 PATCH 요청을 실행합니다. 요청 URL에서 예약을 공유하려는 각 프로젝트의 paths=shareSettings.projectMap.PROJECT_ID 쿼리 매개변수를 포함합니다.

    예를 들어 두 프로젝트가 공유 예약을 사용하도록 허용하려면 다음 PATCH 요청을 수행합니다.

    PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME?paths=shareSettings.projectMap.CONSUMER_PROJECT_ID_1&paths=shareSettings.projectMap.CONSUMER_PROJECT_ID_2
    
    {
      "name": "RESERVATION_NAME",
      "shareSetting": {
        "projectMap": {
          "CONSUMER_PROJECT_ID_1": {
            "projectId": "CONSUMER_PROJECT_ID_1"
          },
          "CONSUMER_PROJECT_ID_2": {
            "projectId": "CONSUMER_PROJECT_ID_2"
          }
        }
      }
    }
    

    다음을 바꿉니다.

    • PROJECT_ID: 공유 예약을 만드는 데 사용되는 프로젝트인 소유자 프로젝트의 ID

    • ZONE: 공유 예약이 있는 영역

    • RESERVATION_NAME: 기존 공유 예약의 이름

    • CONSUMER_PROJECT_ID_1CONSUMER_PROJECT_ID_2: 예약을 공유할 두 프로젝트의 ID입니다.

  • 하나 이상의 프로젝트가 공유 예약을 사용하도록 허용하지 않으려면 reservations.update 메서드에 대해 PATCH 요청을 실행합니다. 요청 URL에서 예약 공유를 중지하려는 각 프로젝트의 paths=shareSettings.projectMap.PROJECT_ID 쿼리 매개변수를 포함합니다. 또한 요청 본문에서 shareSetting 필드를 생략해야 합니다.

    예를 들어 두 프로젝트가 공유 예약을 사용하도록 허용하지 않으려면 다음 PATCH 요청을 수행합니다.

    PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME?paths=shareSettings.projectMap.CONSUMER_PROJECT_ID_1&paths=shareSettings.projectMap.CONSUMER_PROJECT_ID_2
    
    {
      "name": "RESERVATION_NAME"
    }
    

    다음을 바꿉니다.

    • PROJECT_ID: 공유 예약을 만드는 데 사용되는 프로젝트인 소유자 프로젝트의 ID

    • ZONE: 공유 예약이 있는 영역

    • RESERVATION_NAME: 기존 공유 예약의 이름

    • CONSUMER_PROJECT_ID_1CONSUMER_PROJECT_ID_2: 예약 공유를 중지할 두 프로젝트의 ID

예약에서 예약된 VM 수 수정

기존 예약을 수정하여 예약된 VM 수를 늘리거나 줄일 수 있습니다.

예약에서 예약된 VM 수를 수정하기 전에 다음을 확인합니다.

  • 예약에서 예약된 VM 수를 늘리려면 다음 제한사항이 적용됩니다.

    • 예약이 있는 영역에 충분한 리소스가 있어야 합니다.

    • 예약하는 추가 리소스에 충분한 할당량이 있어야 합니다.

  • 예약의 소비 유형이 지정되어 있고 예약에서 예약된 VM 수를 줄이려면 예약을 사용하는 VM 수가 원하는 예약 크기를 초과하지 않도록 해야 합니다. 다음 방법을 사용하여 이를 수행할 수 있습니다.

    그렇지 않으면 오류가 발생합니다.

예약에서 예약된 VM 수를 수정하려면 Google Cloud 콘솔, gcloud CLI 또는 REST를 사용합니다.

콘솔

예약에서 예약된 VM 수를 수정하려면 다음 단계를 수행합니다.

  1. Google Cloud 콘솔에서 예약 페이지로 이동합니다.

    예약으로 이동

  2. 이름 열에서 수정할 예약의 이름을 클릭합니다.

    예약의 세부정보 페이지가 열립니다.

  3. 수정을 클릭합니다.

  4. VM 인스턴스 수 필드에 예약할 VM의 업데이트된 수를 입력합니다.

  5. 확인하려면 저장을 클릭합니다.

    예약 수정을 완료하는 데 몇 초 정도 걸릴 수 있습니다.

gcloud

예약에서 예약된 VM 수를 수정하려면 gcloud compute reservations update 명령어를 사용합니다.

gcloud compute reservations update RESERVATION_NAME \
    --project=PROJECT_ID \
    --vm-count=NUMBER_OF_VMS \
    --zone=ZONE

다음을 바꿉니다.

  • RESERVATION_NAME: 기존 예약 이름

  • PROJECT_ID: 예약이 있는 프로젝트의 ID

  • NUMBER_OF_VMS: 예약할 새 VM 수

  • ZONE: 예약이 있는 영역

REST

예약에서 예약된 VM 수를 수정하려면 POST 요청을 reservations.resize 메서드로 보냅니다.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME/resize

{
  "specificSkuCount": "NUMBER_OF_VMS"
}

다음을 바꿉니다.

  • PROJECT_ID: 예약이 있는 프로젝트의 ID

  • ZONE: 예약이 있는 영역

  • RESERVATION_NAME: 기존 예약 이름

  • NUMBER_OF_VMS: 예약할 새 VM 수

예약의 다른 속성 변경

기존 예약에서 다른 속성을 변경하려면 다음을 수행합니다.

  1. 업데이트된 속성을 사용하여 새 단일 프로젝트 또는 공유 예약을 만듭니다.

  2. 기존 예약을 삭제합니다.

문제 해결

예약 업데이트 문제 해결 방법을 알아보세요.

다음 단계