VM 실행 시간 제한


이 문서에서는 신규 또는 기존 가상 머신(VM) 인스턴스의 실행 시간을 제한하는 방법과 이러한 VM의 실행 시간을 모니터링하는 방법을 설명합니다. 관리형 인스턴스 그룹(MIG)은 대신 MIG 실행 시간 제한을 참조하세요.

VM 실행 시간을 제한할 경우 VM이 특정 시간 제한(기간 또는 시간)에 도달하면 자동으로 종료(중지 또는 삭제)되도록 예약할 수 있습니다. 시간 제한을 사용하면 VM 실행 시간이 자동으로 제한되어 임시 워크로드가 최적화될 수 있으므로 비용이 최소화하고 할당량을 확보할 수 있습니다.

VM을 즉시 중지하는 방법은 VM 중지 또는 다시 시작을 참조하세요. VM을 즉시 삭제하는 방법은 VM 삭제를 참조하세요.

VM 실행 시간을 자동으로 제한하는 다른 옵션은 다음 페이지를 참조하세요.

  • VM 시작 및 중지 예약: 인스턴스 일정을 사용하면 VM을 자동으로 시작하고 중지할 수 있습니다. 인스턴스 일정을 VM 여러 개에 연결하고 반복되는 워크로드에 자동으로 반복할 수 있습니다.

  • Batch: Batch 작업은 유한한 워크로드의 VM을 자동으로 만들고 삭제하며 개발자는 실행 시간 제한을 지정하거나 생략할 수 있습니다.

시작하기 전에

  • VM 실행 시간을 제한하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 Compute 인스턴스 관리자(v1)(roles/compute.instanceAdmin.v1) IAM 역할을 부여해 달라고 요청하세요. 역할 부여에 대한 자세한 내용은 액세스 관리를 참조하세요.

    커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.

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

    이 페이지의 샘플 사용 방법에 대한 탭을 선택하세요.

    콘솔

    Google Cloud 콘솔을 사용하여 Google Cloud 서비스 및 API에 액세스할 때는 인증을 설정할 필요가 없습니다.

    gcloud

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

      gcloud init
    2. 기본 리전 및 영역을 설정합니다.

    REST

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

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

      gcloud init

제한사항

VM 실행 시간을 제한하면 다음과 같은 제한사항이 적용됩니다.

  • 자동 종료 작업을 중지하거나 삭제해야 합니다. 시간 제한에 도달하면 VM이 자동으로 일시정지되도록 구성할 수 없습니다.

  • 최소 시간 제한은 30초이며 최대 시간 제한은 120일입니다.

  • 자동 종료는 VM을 중지하거나 삭제하기 위해 지정한 기간 또는 시간보다 최대 30초 더 걸릴 수 있습니다.

  • 기존 선점형 VM에서는 시간 제한을 사용할 수 없습니다. 대신 스팟 VM에서 시간 제한을 사용합니다.

  • VM이 시간 제한으로 인해 자동으로 중지되면 VM의 로컬 SSD 데이터를 보존할 수 없습니다. 자세한 내용은 로컬 SSD로 VM 중지를 참조하세요.

새 VM 실행 시간 제한

다음 섹션에서는 새 VM을 만드는 동안에 시간 제한을 구성하는 방법을 설명합니다. VM이 자동으로 종료되는 시간 제한을 기간(maxRunDuration) 또는 시간(terminationTime)으로 지정할 수 있습니다.

VM 시간 제한 유형을 결정할 때는 사용자 요청이나 호스트 이벤트에 의해 VM이 중단될 수 있음을 고려하세요. 시간 제한 동작은 중단 유형과 시간 제한 유형에 따라 다릅니다.

  • VM의 종료 타임스탬프(terminationTimestamp)는 계획된 자동 종료 시간을 나타내는 읽기 전용 필드이며 VM에 시간 제한이 있고 VM이 RUNNING 상태가 될 때마다 Compute Engine에서 이 타임스탬프를 자동으로 정의합니다.

  • 종료 타임스탬프는 VM이 중지되거나 일시중지될 때마다 자동으로 삭제됩니다. 하지만 VM을 재설정하거나 VM을 재부팅할 때는 종료 타임스탬프가 변경되지 않습니다.

  • 종료 타임스탬프는 VM이 개발자가 설정한 시간 제한 유형에 따라 다시 시작되거나 재개될 때마다 자동으로 재정의됩니다.

    • VM 기간을 설정한 경우 이 기간을 VM 최근 시작 시간에 추가하면 종료 타임스탬프가 다시 계산됩니다.
    • VM 시간을 설정하면 종료 타임스탬프가 해당 시간으로 설정됩니다. 하지만 시간은 미래여야 합니다. 그렇지 않으면 시간을 업데이트하거나 삭제할 때까지 VM 생성 또는 재실행 요청이 실패합니다.

기간 설정

기간은 VM에 원하는 총 실행 시간을 나타냅니다. VM이 특정 기간 동안 실행된 후 자동으로 종료되는 VM을 만들려면 Google Cloud 콘솔, Google Cloud CLI 또는 Compute Engine API를 사용합니다.

콘솔

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

    인스턴스 만들기로 이동

  2. 가용성 정책 섹션에서 VM 프로비저닝 모델 고급 설정을 펼칩니다.

  3. VM 시간 제한 설정 체크박스를 선택합니다. 시간 제한 유형 필드가 표시됩니다.

  4. 시간 제한 유형 필드에서 시간 기준(기본값)을 선택하여 시간 제한을 기간으로 지정합니다. 다음 필드에 시간 단위로 기간을 입력합니다.

  5. VM 종료 시 목록에서 VM 실행 시간이 지정된 시간 제한에 도달하면 실행될 작업을 선택합니다.

    • VM을 자동으로 중지하려면 중지(기본값)를 선택합니다.
    • VM을 삭제하려면 삭제를 선택합니다.
  6. 선택사항: 다른 VM 옵션을 지정합니다. 자세한 내용은 VM 인스턴스 만들기 및 시작을 참조하세요.

  7. 만들기를 클릭하여 VM을 만들고 시작합니다.

gcloud

gcloud CLI에서 VM을 만들려면 gcloud beta compute instances create 명령어를 사용합니다.

  • 특정 기간이 지난 후에 자동으로 종료되는 VM을 만들려면 --max-run-duration 플래그를 포함해야 합니다.
  • 종료 작업을 지정하려면 --instance-termination-action 플래그를 포함합니다.
  • --discard-local-ssds-at-termination-timestamp 플래그를 구성합니다.
    • VM에 로컬 SSD가 있고 종료 작업(TERMINATION_ACTION)이 중지(STOP)되도록 설정된 경우에는 --discard-local-ssds-at-termination-timestamp=true 플래그를 포함해야 합니다.
    • 그렇지 않으면 --discard-local-ssds-at-termination-timestamp 플래그를 생략합니다.
gcloud beta compute instances create VM_NAME \
    --max-run-duration=DURATION \
    --instance-termination-action=TERMINATION_ACTION

다음을 바꿉니다.

  • VM_NAME: 새 VM의 이름입니다.
  • DURATION: 자동으로 종료되기 전에 이 VM이 실행할 기간입니다. 일, 시간, 분, 초를 각각 d, h, m, s로 지정하여 기간 형식을 지정합니다. 예를 들어 30분 기간에는 30m을 지정하거나 1일, 2시간, 3분, 4초 기간에는 1d2h3m4s를 지정합니다. 최소 기간은 30초(30s)이고 최대 기간은 120일(120d)입니다.
  • TERMINATION_ACTION: 이 VM의 종료 작업으로, 중지(STOP) 또는 삭제(DELETE)일 수 있습니다. 이 필드가 필수인지 또는 기본값이 있는지 여부는 VM의 프로비저닝 모델에 따라 다릅니다.
    • 스팟 VM인 경우(VM에서 --provisioning-model=SPOT 플래그를 사용하는 경우) --instance-termination-action=TERMINATION_ACTION 플래그는 선택사항입니다. 이 플래그를 생략하면 기본 종료 작업은 중지입니다.
    • 그렇지 않으면(기본값) --instance-termination-action=TERMINATION_ACTION 플래그가 필요합니다.

VM을 만들 때 지정할 수 있는 다른 옵션에 대한 자세한 내용은 VM 인스턴스 만들기 및 시작을 참조하세요.

REST

Compute Engine API에서 VM을 만들려면 베타 instances.insert 메서드를 사용합니다. VM의 이름, 머신 유형, 부팅 디스크를 지정해야 합니다.

특정 기간이 지난 후 자동으로 종료되는 VM을 만들려면 maxRunDuration 필드를 포함해야 합니다. 종료 작업을 지정하려면 스팟 VM에서 선택사항인 instanceTerminationAction 필드를 포함합니다.

POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances
{
  "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
  "name": "VM_NAME",
  "disks": [
    {
      "initializeParams": {
        "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
      },
      "boot": true
    }
  ]
  "scheduling":
  {
    "maxRunDuration":
    {
      "seconds": DURATION
    },
    "instanceTerminationAction": "TERMINATION_ACTION"
  },
}

다음을 바꿉니다.

  • PROJECT_ID: VM을 만들 프로젝트의 프로젝트 ID입니다.
  • ZONE: VM을 만들 영역입니다. 또한 영역은 새 VM에 사용할 머신 유형을 지원해야 합니다.
  • MACHINE_TYPE: 새 VM의 머신 유형입니다(사전 정의 또는 커스텀).
  • VM_NAME: 새 VM의 이름입니다.
  • IMAGE_PROJECT: 이미지가 포함된 프로젝트입니다. 예를 들어 family/debian-10을 이미지로 지정하면 debian-cloud를 이미지 프로젝트로 지정합니다.
  • IMAGE: 새 VM의 이미지입니다. 공개 이미지의 특정 버전 또는 이미지 계열을 지정할 수 있습니다. 예를 들어 family/debian-10을 이미지로 지정하고 debian-cloud를 이미지 프로젝트로 지정하면 Compute Engine이 Debian 10 이미지 계열에서 최신 버전의 OS 이미지를 사용하여 VM을 만듭니다.
  • DURATION: 자동으로 종료되기 전에 이 VM을 실행할 기간(초)입니다. 최소 기간은 30초(30s)이고 최대 기간은 120일(120d)입니다.
  • TERMINATION_ACTION: 이 VM의 종료 작업으로, 중지(STOP) 또는 삭제(DELETE)일 수 있습니다. 이 필드가 필수인지 또는 기본값이 있는지 여부는 VM의 프로비저닝 모델에 따라 다릅니다.
    • 스팟 VM인 경우(VM에서 "provisioningModel": "SPOT" 필드를 사용하는 경우) "instanceTerminationAction": "TERMINATION_ACTION" 필드는 선택사항입니다. 이 플래그를 생략하면 기본 종료 작업은 중지입니다.
    • 그렇지 않으면(기본값) "instanceTerminationAction": "TERMINATION_ACTION" 필드가 필요합니다.

VM을 만들 때 지정할 수 있는 옵션에 대한 자세한 내용은 VM 인스턴스 만들기 및 시작을 참조하세요.

시간 설정

시간은 VM을 종료할 날짜, 시간, 시간대를 나타냅니다. 특정 시간에 자동으로 종료되는 VM을 만들려면 Google Cloud 콘솔, Google Cloud CLI 또는 Compute Engine API를 사용합니다.

콘솔

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

    인스턴스 만들기로 이동

  2. 가용성 정책 섹션에서 VM 프로비저닝 모델 고급 설정을 펼칩니다.

  3. VM 시간 제한 설정 체크박스를 선택합니다. 시간 제한 유형 필드가 표시됩니다.

  4. 시간 제한 유형 필드에서 날짜 기준을 선택하여 시간 제한을 시간 및 날짜로 지정합니다. 다음 필드에서 날짜 및 시간 선택을 클릭하고 시간 제한의 날짜, 시간, 시간대를 선택합니다.

  5. VM 종료 시 목록에서 VM 실행 시간이 지정된 시간 제한에 도달하면 실행될 작업을 선택합니다.

    • VM을 자동으로 중지하려면 중지(기본값)를 선택합니다.
    • VM을 삭제하려면 삭제를 선택합니다.
  6. 선택사항: 다른 VM 옵션을 지정합니다. 자세한 내용은 VM 인스턴스 만들기 및 시작을 참조하세요.

  7. 만들기를 클릭하여 VM을 만들고 시작합니다.

gcloud

gcloud CLI에서 VM을 만들려면 gcloud beta compute instances create 명령어를 사용합니다.

  • 특정 시간에 자동으로 종료되는 VM을 만들려면 --termination-time 플래그를 포함해야 합니다.
  • 종료 작업을 지정하려면 --instance-termination-action 플래그를 포함합니다. 이 플래그는 스팟 VM에서 선택사항입니다.
  • --discard-local-ssds-at-termination-timestamp 플래그를 구성합니다.
    • VM에 로컬 SSD가 있고 종료 작업(TERMINATION_ACTION)이 중지(STOP)되도록 설정된 경우에는 --discard-local-ssds-at-termination-timestamp=true 플래그를 포함해야 합니다.
    • 그렇지 않으면 --discard-local-ssds-at-termination-timestamp 플래그를 생략합니다.
gcloud beta compute instances create VM_NAME \
    --termination-time=TIME \
    --instance-termination-action=TERMINATION_ACTION

다음을 바꿉니다.

  • VM_NAME: 새 VM의 이름입니다.
  • TIME: 이 VM을 자동으로 종료할 시간입니다. 지정한 시간은 최소 30초 이후, 최대 120일 이후여야 합니다. 시간 형식을 RFC 3339 타임스탬프로 지정합니다.

    YYYY-MM-DDTHH:MM:SSOFFSET
    

    다음을 바꿉니다.

    • YYYY-MM-DD: 4자리 연도, 2자리 월, 2자리 일이 하이픈으로 구분된 형식의 날짜입니다.
    • HH:MM:SS: 24시간제의 2자리 시간, 2자리 분, 2자리 초가 콜론으로 구분된 형식의 시간입니다.
    • OFFSET: 협정 세계시(UTC)의 오프셋 형식으로 지정된 시간대입니다. 예를 들어 UTC보다 8시간 빠른 태평양 표준시(PST)를 사용하려면 -08:00을 지정합니다. 또는 오프셋(UTC+0)을 사용하지 않으려면 Z를 지정합니다.
  • TERMINATION_ACTION: 이 VM의 종료 작업으로, 중지(STOP) 또는 삭제(DELETE)일 수 있습니다. 이 필드가 필수인지 또는 기본값이 있는지 여부는 VM의 프로비저닝 모델에 따라 다릅니다.

    • 스팟 VM인 경우(VM에서 --provisioning-model=SPOT 플래그를 사용하는 경우) --instance-termination-action=TERMINATION_ACTION 플래그는 선택사항입니다. 이 플래그를 생략하면 기본 종료 작업은 중지입니다.
    • 그렇지 않으면(기본값) --instance-termination-action=TERMINATION_ACTION 플래그가 필요합니다.

VM을 만들 때 지정할 수 있는 다른 옵션에 대한 자세한 내용은 VM 인스턴스 만들기 및 시작을 참조하세요.

REST

Compute Engine API에서 VM을 만들려면 베타 instances.insert 메서드를 사용합니다. VM의 이름, 머신 유형, 부팅 디스크를 지정해야 합니다.

특정 시간에 자동으로 종료되는 VM을 만들려면 terminationTime 필드를 포함해야 합니다. 종료 작업을 지정하려면 스팟 VM에서 선택사항인 instanceTerminationAction 필드를 포함합니다.

POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances
{
  "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
  "name": "VM_NAME",
  "disks": [
    {
      "initializeParams": {
        "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
      },
      "boot": true
    }
  ]
  "scheduling":
  {
    "terminationTime": "TIME",
    "instanceTerminationAction": "TERMINATION_ACTION"
  },
}

다음을 바꿉니다.

  • PROJECT_ID: VM을 만들 프로젝트의 프로젝트 ID입니다.
  • ZONE: VM을 만들 영역입니다. 또한 영역은 새 VM에 사용할 머신 유형을 지원해야 합니다.
  • MACHINE_TYPE: 새 VM의 머신 유형입니다(사전 정의 또는 커스텀).
  • VM_NAME: 새 VM의 이름입니다.
  • IMAGE_PROJECT: 이미지가 포함된 프로젝트입니다. 예를 들어 family/debian-10을 이미지로 지정하면 debian-cloud를 이미지 프로젝트로 지정합니다.
  • IMAGE: 새 VM의 이미지입니다. 공개 이미지의 특정 버전 또는 이미지 계열을 지정할 수 있습니다. 예를 들어 family/debian-10을 이미지로 지정하고 debian-cloud를 이미지 프로젝트로 지정하면 Compute Engine이 Debian 10 이미지 계열에서 최신 버전의 OS 이미지를 사용하여 VM을 만듭니다.
  • TIME: 이 VM을 자동으로 종료할 시간입니다. 지정한 시간은 최소 30초 이후, 최대 120일 이후여야 합니다. 시간 형식을 RFC 3339 타임스탬프로 지정합니다.

    YYYY-MM-DDTHH:MM:SSOFFSET
    

    다음을 바꿉니다.

    • YYYY-MM-DD: 4자리 연도, 2자리 월, 2자리 일이 하이픈으로 구분된 형식의 날짜입니다.
    • HH:MM:SS: 24시간제의 2자리 시간, 2자리 분, 2자리 초가 콜론으로 구분된 형식의 시간입니다.
    • OFFSET: 협정 세계시(UTC)의 오프셋 형식으로 지정된 시간대입니다. 예를 들어 UTC보다 8시간 빠른 태평양 표준시(PST)를 사용하려면 -08:00을 지정합니다. 또는 오프셋(UTC+0)을 사용하지 않으려면 Z를 지정합니다.
  • TERMINATION_ACTION: 이 VM의 종료 작업으로, 중지(STOP) 또는 삭제(DELETE)일 수 있습니다. 이 필드가 필수인지 또는 기본값이 있는지 여부는 VM의 프로비저닝 모델에 따라 다릅니다.

    • 스팟 VM인 경우(VM에서 "provisioningModel": "SPOT" 필드를 사용하는 경우) "instanceTerminationAction": "TERMINATION_ACTION" 필드는 선택사항입니다. 이 플래그를 생략하면 기본 종료 작업은 중지입니다.
    • 그렇지 않으면(기본값) "instanceTerminationAction": "TERMINATION_ACTION" 필드가 필요합니다.

VM을 만들 때 지정할 수 있는 옵션에 대한 자세한 내용은 VM 인스턴스 만들기 및 시작을 참조하세요.

기존 VM 실행 시간 제한

VM 일정을 업데이트하여 기존 VM 실행 시간을 제한할 수 있습니다. 아직 시간 제한 설정을 구성하는 방법을 모르는 경우 먼저 앞선 새 VM 실행 시간 제한 방법에 대한 섹션을 참조하세요.

이 섹션의 설명대로 Google Cloud 콘솔, Google Cloud CLI 또는 Compute Engine API를 사용하여 VM의 예약 관련 속성을 업데이트할 수 있습니다. 이 방법을 사용하려면 먼저 VM을 중지하고 속성을 업데이트한 후 다시 시작해야 합니다. 또는 추가 VM 속성을 동시에 업데이트하고 VM을 자동으로 중지하고 다시 시작하려면 대신 인스턴스 속성 업데이트를 참조하세요.

콘솔

  1. Google Cloud 콘솔에서 VM 인스턴스 페이지로 이동합니다.

    VM 인스턴스로 이동

  2. 이름 열에서 업데이트할 VM의 이름을 클릭합니다.

  3. VM 인스턴스 세부정보 페이지에서 다음 단계를 완료합니다.

    1. VM이 실행 중이면 중지를 클릭하여 VM을 중지합니다.
    2. VM을 수정하려면 수정을 클릭합니다.
    3. 인스턴스 수정 페이지에서 다음 단계를 완료합니다.

      1. 가용성 정책 섹션에서 VM 시간 제한 설정 체크박스와 그 아래에 있는 모든 필드를 원하는 대로 수정합니다.

        시간 제한 속성을 구성하는 방법에 대한 자세한 내용은 새 VM 실행 시간 제한을 참조하세요.

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

    4. 선택사항: 지금 VM을 실행하려면 시작을 클릭합니다.

gcloud

gcloud CLI를 사용하여 VM 시간 제한을 업데이트하려면 다음 단계를 완료합니다.

  1. VM이 실행 중인 경우 gcloud compute instances stop 명령어를 사용하여 VM을 중지합니다.

    gcloud compute instances stop VM_NAME
    

    VM_NAME을 업데이트할 VM의 이름으로 바꿉니다.

  2. gcloud beta compute instances set-scheduling 명령어를 사용하여 VM 시간 제한을 업데이트합니다.

    gcloud beta compute instances set-scheduling VM_NAME \
        --max-run-duration=DURATION \
        --termination-time=TIME \
        --instance-termination-action=TERMINATION_ACTION \
        --discard-local-ssds-at-termination-timestamp=true
    

    다음 플래그를 구성합니다.

    • 시간 제한을 시간 또는 기간으로 각각 설정하려면 --max-run-duration 플래그나 --termination-time 플래그를 생략해야 합니다.
    • --instance-termination-action 플래그를 포함하여 종료 작업을 설정합니다.
    • VM에 로컬 SSD가 있고 종료 작업(TERMINATION_ACTION)이 중지(STOP)되도록 설정된 경우에는 --discard-local-ssds-at-termination-timestamp=true 플래그를 포함해야 합니다. 그렇지 않으면 --discard-local-ssds-at-termination-timestamp=true 플래그를 생략합니다.

    그런 다음 다음을 바꿉니다.

    • VM_NAME: 업데이트할 VM의 이름입니다.
    • DURATION: 자동으로 종료되기 전에 이 VM이 실행할 기간입니다. 일, 시간, 분, 초를 각각 d, h, m, s로 지정하여 기간 형식을 지정합니다. 예를 들어 30분 기간에는 30m을 지정하거나 1일, 2시간, 3분, 4초 기간에는 1d2h3m4s를 지정합니다. 최소 기간은 30초(30s)이고 최대 기간은 120일(120d)입니다.
    • TIME: 이 VM을 자동으로 종료할 시간입니다. 지정한 시간은 최소 30초 이후, 최대 120일 이후여야 합니다. 시간 형식을 RFC 3339 타임스탬프로 지정합니다.

      YYYY-MM-DDTHH:MM:SSOFFSET
      

      다음을 바꿉니다.

      • YYYY-MM-DD: 4자리 연도, 2자리 월, 2자리 일이 하이픈으로 구분된 형식의 날짜입니다.
      • HH:MM:SS: 24시간제의 2자리 시간, 2자리 분, 2자리 초가 콜론으로 구분된 형식의 시간입니다.
      • OFFSET: 협정 세계시(UTC)의 오프셋 형식으로 지정된 시간대입니다. 예를 들어 UTC보다 8시간 빠른 태평양 표준시(PST)를 사용하려면 -08:00을 지정합니다. 또는 오프셋(UTC+0)을 사용하지 않으려면 Z를 지정합니다.
    • TERMINATION_ACTION: 이 VM의 종료 작업으로, 중지(STOP) 또는 삭제(DELETE)일 수 있습니다. 이 필드가 필수인지 또는 기본값이 있는지 여부는 VM의 프로비저닝 모델에 따라 다릅니다.

      • 스팟 VM인 경우(VM에서 --provisioning-model=SPOT 플래그를 사용하는 경우) --instance-termination-action=TERMINATION_ACTION 플래그는 선택사항입니다. 이 플래그를 생략하면 기본 종료 작업은 중지입니다.
      • 그렇지 않으면(기본값) --instance-termination-action=TERMINATION_ACTION 플래그가 필요합니다.
  3. VM을 실행하려면 gcloud compute instances start 명령어를 사용하여 VM을 시작합니다.

    gcloud compute instances start VM_NAME
    

    VM_NAME을 VM의 이름으로 바꿉니다.

REST

Compute Engine API를 사용하여 VM 시간 제한을 업데이트하려면 다음 단계를 완료합니다.

  1. VM이 실행 중인 경우 instances.stop 메서드를 사용하여 VM을 중지합니다.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/stop
    

    다음을 바꿉니다.

    • PROJECT_ID: 스냅샷이 포함된 프로젝트의 프로젝트 ID입니다.
    • ZONE: VM이 포함된 영역입니다.
    • VM_NAME: 업데이트할 VM의 이름입니다.
  2. 베타 instances.setScheduling 메서드를 사용하여 VM 시간 제한 필드를 포함한 VM의 scheduling 속성을 업데이트합니다. maxRunDuration 필드 또는 terminationTime 필드를 포함하여 시간 제한을 각각 기간 또는 시간으로 설정합니다.

    • 기간을 설정하려면 다음 요청을 사용합니다.

      POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setScheduling
      {
        "maxRunDuration":
        {
          "seconds": DURATION
        },
        "instanceTerminationAction": "TERMINATION_ACTION"
      }
      
    • 시간을 설정하려면 다음 요청을 사용합니다.

      POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setScheduling
      {
        "terminationTime": "TIME",
        "instanceTerminationAction": "TERMINATION_ACTION"
      }
      

    다음을 바꿉니다.

    • PROJECT_ID: VM을 만들 프로젝트의 프로젝트 ID입니다.
    • ZONE: VM을 만들 영역입니다. 또한 영역은 새 VM에 사용할 머신 유형을 지원해야 합니다.
    • MACHINE_TYPE: 새 VM의 머신 유형입니다(사전 정의 또는 커스텀).
    • VM_NAME: 새 VM의 이름입니다.
    • IMAGE_PROJECT: 이미지가 포함된 프로젝트입니다. 예를 들어 family/debian-10을 이미지로 지정하면 debian-cloud를 이미지 프로젝트로 지정합니다.
    • IMAGE: 새 VM의 이미지입니다. 공개 이미지의 특정 버전 또는 이미지 계열을 지정할 수 있습니다. 예를 들어 family/debian-10을 이미지로 지정하고 debian-cloud를 이미지 프로젝트로 지정하면 Compute Engine이 Debian 10 이미지 계열에서 최신 버전의 OS 이미지를 사용하여 VM을 만듭니다.
    • DURATION: 자동으로 종료되기 전에 이 VM을 실행할 기간(초)입니다. 최소 기간은 30초(30s)이고 최대 기간은 120일(120d)입니다.
    • TIME: 이 VM을 자동으로 종료할 시간입니다. 지정한 시간은 최소 30초 이후, 최대 120일 이후여야 합니다. 시간 형식을 RFC 3339 타임스탬프로 지정합니다.

      YYYY-MM-DDTHH:MM:SSOFFSET
      

      다음을 바꿉니다.

      • YYYY-MM-DD: 4자리 연도, 2자리 월, 2자리 일이 하이픈으로 구분된 형식의 날짜입니다.
      • HH:MM:SS: 24시간제의 2자리 시간, 2자리 분, 2자리 초가 콜론으로 구분된 형식의 시간입니다.
      • OFFSET: 협정 세계시(UTC)의 오프셋 형식으로 지정된 시간대입니다. 예를 들어 UTC보다 8시간 빠른 태평양 표준시(PST)를 사용하려면 -08:00을 지정합니다. 또는 오프셋(UTC+0)을 사용하지 않으려면 Z를 지정합니다.
    • TERMINATION_ACTION: 이 VM의 종료 작업으로, 중지(STOP) 또는 삭제(DELETE)일 수 있습니다. 이 필드가 필수인지 또는 기본값이 있는지 여부는 VM의 프로비저닝 모델에 따라 다릅니다.

      • 스팟 VM인 경우(VM에서 "provisioningModel": "SPOT" 필드를 사용하는 경우) "instanceTerminationAction": "TERMINATION_ACTION" 필드는 선택사항입니다. 이 플래그를 생략하면 기본 종료 작업은 중지입니다.
      • 그렇지 않으면(기본값) "instanceTerminationAction": "TERMINATION_ACTION" 필드가 필요합니다.
  3. VM을 실행하려면 instances.start 메서드를 사용하여 VM을 시작합니다.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/start
    

    다음을 바꿉니다.

    • PROJECT_ID: 스냅샷이 포함된 프로젝트의 프로젝트 ID입니다.
    • ZONE: VM이 포함된 영역입니다.
    • VM_NAME: VM의 이름입니다.

VM 실행 시간 모니터링

다음 옵션을 사용하여 시간 제한이 있는 VM의 실행 시간을 모니터링할 수 있습니다.

  • 실행 중인 VM이 자동으로 종료되도록 예약된 시간을 확인하려면 VM 종료 타임스탬프를 봅니다.

    1. VM 세부정보를 봅니다.
    2. 출력에서 종료 타임스탬프의 VM 필드를 봅니다.
      • Google Cloud 콘솔을 사용하는 경우 최대 기간 필드를 확인합니다.
      • Google Cloud CLI 또는 Compute Engine API를 사용하는 경우 terminationTimestamp 필드를 확인합니다.
  • VM이 자동으로 종료되었는지 확인하려면 VM 작업을 봅니다.

    1. VM 작업을 봅니다.
    2. 출력에서 다음 유형의 작업을 찾아 시간 제한으로 인해 발생한 VM 작업을 식별할 수 있습니다.

      • compute.instances.deferredStop은 중지 자동 종료 작업을 나타냅니다.
      • compute.instances.deferredDelete는 삭제 자동 종료 작업을 나타냅니다.

다음 단계

  • VM을 추가로 최적화하는 방법을 알아보세요.

    • 워크로드가 내결함성이 있는 경우 스팟 VM을 사용하여 상당한 할인과 선택적 전용 할당량을 얻을 수 있습니다.
    • VM이 종료되기 전에 자동으로 명령어를 실행하도록 하려면 종료 스크립트를 사용하면 됩니다.
  • VM 실행 시간을 자동으로 제한하는 더 많은 옵션을 알아보세요.