호스트 유지보수 이벤트 모니터링 및 계획


모든 가상 머신(VM) 인스턴스에서 유지보수는 VM을 만들 때 선택한 호스트 유지보수 정책에 따라 결정됩니다. 일부 VM은 미리 VM의 유지보수 일정을 볼 수 있는 추가 옵션을 제공합니다.

이 페이지에서는 Compute Engine VM에서 호스트 유지보수 이벤트를 모니터링하고 계획하는 방법을 설명합니다. VM의 유지보수 일정을 보려면 VM이 다음 머신 계열 중 하나에서 머신 유형을 실행 중이어야 합니다.

  • 범용 C3 VM
  • 범용 C3D VM
  • 스토리지 최적화 Z3 VM
  • 메모리 최적화 M1, M2, M3 VM

시작하기 전에

  • 아직 인증을 설정하지 않았다면 설정합니다. 인증은 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 유지보수를 관리하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대해 Compute 인스턴스 관리자(v1)(roles/compute.instanceAdmin.v1) IAM 역할을 부여해 달라고 요청하세요. 역할 부여에 대한 자세한 내용은 액세스 관리를 참조하세요.

이 사전 정의된 역할에는 VM을 만들고 VM 유지보수를 관리하는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 펼치세요.

필수 권한

VM을 만들고 VM 유지보수를 관리하려면 다음 권한이 필요합니다.

  • VM에 대한 정보를 가져오려면 compute.instances.get 권한이 필요합니다.
  • VM을 만들려면 compute.instances.create 권한이 필요합니다.

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

유지보수 알림 모니터링

Google은 여러 방법을 통해 예정된 VM 유지보수에 대한 알림을 보냅니다. VM, 메타데이터 서버, Cloud Logging을 쿼리하여 알림을 찾을 수 있습니다. 예약된 유지보수 기간이 시작되면 Google Cloud가 VM에서 유지보수를 자동으로 수행합니다. VM의 예약된 유지보수 기간을 모니터링하면 최소한의 중단으로 예정된 유지보수를 처리할 수 있도록 워크로드를 사전에 준비할 수 있습니다.

유지보수 이벤트 알림이 있는 VM은 다음과 같은 특성을 갖습니다.

  • 유지보수 이벤트 감소: 일반적으로 유지보수 기간이 반복되는 VM은 유지보수 이벤트 수가 감소합니다.
  • 유지보수 알림 기간 증가: 적절한 계획을 위해 빠른 시간 내에 계획된 유지보수 이벤트에 대한 알림을 얻습니다.
  • 모니터링 및 계획: Cloud Logging을 사용하여 유지보수 일정을 추적합니다. 이슈 및 알림을 사용해서 최신 정보를 확인합니다.
  • 주문형 유지보수 제어: 알림 기간 중 유지보수를 시작하여 사용자 일정에 맞게 VM을 업데이트합니다.

VM의 유지보수 이벤트 알림 확인

Google Cloud CLI, REST 메서드, 메타데이터 서버를 사용해서 예정된 VM 유지보수 이벤트가 있는지 확인합니다.

gcloud

VM에 예정된 유지보수 기간을 보려면 gcloud compute instances describe 명령어를 사용합니다. --zone=[ZONE_NAME]을 포함해야 합니다.

gcloud compute instances describe VM_NAME \
  --zone=ZONE

다음을 바꿉니다.

  • VM_NAME: VM의 이름입니다.
  • ZONE: VM이 있는 영역입니다.

응답은 다음과 같습니다.

  upcomingMaintenance:{
    "canReschedule":True
    "latestWindowStartTime": "2023-12-01T19:00:01Z"
    "maintenanceStatus":"PENDING"
    "type":"SCHEDULED"
    "windowEndTime": "2023-12-01T22:00:00Z"
    "windowStartTime": "2023-12-01T19:00:00Z"
  }

이 응답에서 canRescheduleTrue로 설정되고 maintenanceStatusPENDING으로 설정됩니다. 유지보수는 표시된 날짜 및 시간에 예약됩니다. 이러한 설정은 이 이벤트를 수동으로 미리 트리거할 수 있음을 나타냅니다.

REST

VM에 예정된 유지보수가 있는지 확인하려면 instances.get 명령어를 실행합니다.

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONE/instances/VM_NAME

다음을 바꿉니다.

  • PROJECT_NAME: 프로젝트 이름
  • ZONE: VM이 있는 영역
  • VM_NAME: VM의 이름

응답은 다음과 같습니다.

  upcomingMaintenance:{
    "canReschedule":True
    "latestWindowStartTime": "2023-12-01T19:00:01Z"
    "maintenanceStatus":"PENDING"
    "type":"SCHEDULED"
    "windowEndTime": "2023-12-01T22:00:00Z"
    "windowStartTime": "2023-12-01T19:00:00Z"
  }

이 응답에서 canRescheduleTRUE로 설정되고 maintenanceStatusPENDING으로 설정됩니다. 유지보수는 표시된 날짜 및 시간에 예약됩니다.

메타데이터 서버

게스트 OS에서 메타데이터 서버에 쿼리를 수행하여 다음 유지보수 이벤트를 확인합니다.

$ curl http://metada.google.internal/computeMetadata/v1/instance/upcoming-maintenance?alt=json -H "Metadata-Flavor: Google"

Cloud Logging의 유지보수 이벤트 알림 확인

Google은 VM 유지보수 전에 Cloud Logging에 알림을 전송합니다. Cloud Logging은 로그 탐색기에서 시스템 이벤트를 생성합니다. VM의 예약된 유지보수는 Cloud Logging에 compute.instances.upcomingMaintenance로 표시됩니다.

VM 구성에 따라 Cloud Logging은 다음 방식으로 이벤트를 표시합니다.

  • 유지보수를 위해 라이브 마이그레이션을 사용하도록 구성된 VM의 경우 메서드 이름 compute.instances.migrateOnHostMaintenance를 사용해서 이벤트가 표시됩니다.
  • 유지보수 종료 및 자동 다시 시작을 사용하도록 구성된 VM의 경우 메서드 이름 compute.instances.terminateOnHostMaintenance를 사용해서 이벤트가 표시됩니다.

VM이 라이브 마이그레이션을 사용하도록 구성된 경우 유지보수가 완료된 후 알림이 해제되었음을 나타내는 compute.instances.upcomingMaintenance가 표시됩니다.

유지보수 알림을 수신하도록 알림 설정 이점을 활용할 수 있습니다. 자세한 내용은 로그 기반 알림 구성알림 채널 만들기 및 관리를 참조하세요.

유지보수 상태 정의

다음 상태 정의는 VM 유지보수 쿼리에 대한 응답을 설명합니다. 이러한 응답은 VM 유지보수와 관련된 정보를 제공합니다. Google Cloud CLI, REST, 메타데이터 서버는 다음과 같은 동일한 응답을 사용합니다.

  • windowStartTime: 유지보수가 수행되는 시작 시간입니다.
  • windowEndTime: 유지보수가 수행되는 종료 시간입니다.
  • latestWindowStartTime: 기간을 이동할 수 있는 가장 이른 시간입니다.
  • maintenanceType: 수행할 유지보수의 유형입니다.
    • NONE: 이 VM에 예약된 유지보수가 없습니다.
    • SCHEDULED: 유지보수에 7일 알림이 사용됩니다.
    • UNSCHEDULED: 유지보수가 알림 시간이 훨씬 더 짧은 중요 업데이트를 알립니다.
  • canReschedule: 이 VM의 알림 기간 중에 유지보수를 트리거할 수 있는지 여부입니다.
    • TRUE: 알림 기간 중에 고객이 트리거하는 유지보수를 수행할 수 있습니다.
    • FALSE: 이 VM에서 고객이 트리거하는 유지보수를 수행할 수 없습니다. VM에 유지보수가 진행 중인 기간에 자주 발생합니다.
  • maintenanceStatus: 현재 유지보수 작업의 상태입니다.
    • ONGOING: 유지보수 작업이 진행 중입니다.
    • PENDING: 유지보수 작업이 예약되었지만 아직 시작되지 않았습니다.

유지보수 상태 동작

유지보수 일정을 관리하는 동안 canReschedule=maintenanceStatus=의 상태를 확인합니다. 이러한 응답 조합은 기능의 예상 동작을 설명하고 다음 상태 조합 중 하나를 표시합니다.

  • canReschedule=YesmaintenanceStatus=Pending이면 VM에서 유지보수를 트리거할 수 있습니다.
  • canReschedule=NomaintenanceStatus=Ongoing이면 유지보수가 이미 진행 중입니다.
  • canReschedule=NomaintenanceStatus=Pending이면 VM에서 수동으로 트리거된 유지보수를 지원하지 않습니다.

다음 단계