컴퓨팅 인스턴스 전반에서 호스트 이벤트 관리

이 문서에서는 클러스터 디렉터 제품군에서 제공되는 호스트 유지관리 기능을 사용하는 방법을 설명합니다. 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

In the Google Cloud console, activate Cloud Shell.

Activate Cloud Shell

At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

REST

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

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

    gcloud init

    외부 ID 공급업체(IdP)를 사용하는 경우 먼저 제휴 ID로 gcloud CLI에 로그인해야 합니다.

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

필요한 역할

컴퓨팅 인스턴스 전반에서 호스트 유지관리 이벤트를 관리하는 데 필요한 권한을 얻으려면 관리자에게 다음 IAM 역할을 부여해 달라고 요청하세요.

  • 프로젝트에 대한 Compute 관리자(roles/compute.admin)
  • 시스템 이벤트 감사 로그에 대한 읽기 전용 액세스의 경우: 프로젝트에 대한 로그 뷰어 (roles/logging.viewer)

역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

이러한 사전 정의된 역할에는 컴퓨팅 인스턴스 전반에서 호스트 유지보수 이벤트를 관리하는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 펼치세요.

필수 권한

컴퓨팅 인스턴스 전반에서 호스트 유지보수 이벤트를 관리하려면 다음 권한이 필요합니다.

  • 인스턴스의 세부정보를 보려면 프로젝트에 대한 compute.instances.get 권한이 필요합니다.

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

개요

컴퓨팅 인스턴스의 유지보수를 최적화하려면 다음 단계를 완료하세요.

  1. 호스트 유지보수 이해 및 처리 머신 시리즈에 따라 인스턴스의 빈도와 유지보수 동작을 알아보고 호스트 유지보수를 처리하도록 워크로드를 준비하는 방법을 알아봅니다. 이 정보를 통해 중단을 최소화하고 데이터 손실을 방지할 수 있습니다.

  2. 알림 설정 인스턴스 유지보수가 예약, 시작 또는 완료될 때 알림을 받으려면 로그 기반 알림을 만드세요. 이 방법을 사용하면 활동을 사전 대응적으로 계획하고 예기치 않은 다운타임을 방지할 수 있습니다.

  3. 인스턴스 전반에서 유지보수 관리 인스턴스에 유지보수가 예약되어 있는지 확인합니다. 필요한 경우 인스턴스 전반에서 유지보수를 수동으로 시작할 수 있습니다. 이 프로세스를 통해 호스팅 이벤트에 대한 워크로드의 복원력을 높이고, 다운타임을 방지하고, 애플리케이션의 가용성을 극대화할 수 있습니다.

호스트 유지보수 이해 및 처리

Compute Engine 인스턴스 수명 주기 동안 인스턴스가 실행되는 호스트 머신에서 여러 호스트 이벤트가 발생합니다. 호스트 이벤트에는 다음이 포함될 수 있습니다.

  • Compute Engine 인프라의 계획된 유지보수입니다.
  • 호스트 오류 또는 장애가 있는 호스트 신고 후 Compute Engine 인프라를 복구하기 위한 계획되지 않은 긴급 유지보수입니다.

다음 표에서는 가속기 최적화 머신 유형의 호스트 유지보수 기능을 설명합니다.

머신 유형 예정된 일반 유지보수 이벤트 빈도 유지관리 동작 예정된 유지보수에 대한 고급 알림 긴급 유지보수에 대한 고급 알림 주문형 유지보수 유지보수 시뮬레이션
A4X Max 및 A4X 최소 90일 로컬 SSD 데이터 지속성으로 종료 90일 긴급 알림을 사용 설정한 경우 7일 그렇지 않으면 몇 시간입니다. 아니요
A4 최소 90일 로컬 SSD 데이터 지속성으로 종료 90일 긴급 알림을 사용 설정한 경우 7일 그렇지 않으면 몇 시간입니다. 아니요
A3 Ultra 최소 90일 로컬 SSD 데이터 지속성으로 종료 90일 긴급 알림을 사용 설정한 경우 7일 그렇지 않으면 몇 시간입니다. 아니요
A3 Mega 및 A3 High
(GPU 8개)
최소 90일 로컬 SSD 데이터 지속성으로 종료 90일 긴급 알림을 사용 설정한 경우 7일 그렇지 않으면 몇 시간입니다.

이전 표에 표시된 유지보수 빈도는 대략적인 수치이며 보장되지 않습니다. Compute Engine에서 유지보수를 더 자주 수행할 수도 있습니다.

데이터 또는 진행 상황이 손실되지 않도록 호스트 유지보수를 처리하도록 워크로드를 구성하세요. 예를 들어 워크로드가 중지되기 전에 임시 데이터와 진행 상황을 저장하려면 다음 기법을 사용하세요.

컴퓨팅 인스턴스에 대한 알림 설정

로그 기반 알림 정책을 만들어 인스턴스의 예약된, 시작된 또는 완료된 유지보수 이벤트에 대한 알림을 받을 수 있습니다.

인스턴스 유지보수 이벤트에 대한 알림을 만들려면 다음 절차를 완료하세요. 만들려는 각 알림에 대해 이 절차를 반복합니다.

  1. Google Cloud 콘솔에서 로그 탐색기 페이지로 이동합니다.

    로그 탐색기로 이동

    검색창을 사용하여 이 페이지를 찾은 경우 부제목이 Logging인 결과를 선택합니다.

  2. 쿼리 표시 전환 버튼을 클릭하여 설정 위치로 전환합니다.

  3. 쿼리 창에서 다음 쿼리 중 하나를 빌드합니다. 이러한 쿼리는 로그 항목을 필터링하여 특정 유지보수 이벤트를 식별합니다. 여러 쿼리를 사용하려면 이 절차를 반복하여 각 쿼리에 대해 고유한 알림을 만드세요.

    • 인스턴스 유지보수가 예약될 때 알림을 받으려면 다음 단계를 따르세요.

      protoPayload.methodName="compute.instances.upcomingMaintenance" severity>=DEFAULT
      protoPayload.status.message =~ "scheduled"
      
    • 인스턴스의 유지보수 기간이 시작될 때 알림을 받으려면 다음 단계를 따르세요.

      protoPayload.methodName="compute.instances.upcomingMaintenance" severity>=DEFAULT
      protoPayload.status.message =~ "ongoing"
      
    • 인스턴스 유지보수가 시작될 때 알림을 받으려면 다음 단계를 따르세요.

      protoPayload.methodName="compute.instance.terminateOnHostMaintenance" severity>=DEFAULT
      
    • 인스턴스 유지보수가 완료되면 알림을 받으려면 다음 단계를 따르세요.

      protoPayload.methodName="compute.instances.upcomingMaintenance" severity>=DEFAULT
      protoPayload.status.message =~ "completed"
      
  4. 쿼리를 검사하려면 쿼리 실행을 클릭합니다. 쿼리가 유효하면 쿼리 결과 창에 쿼리와 일치하는 로그 항목이 표시됩니다.

  5. 쿼리 결과 툴바에서 작업 목록을 클릭한 후 로그 알림 만들기를 선택합니다. 로그 기반 알림 정책 만들기 창이 표시됩니다.

  6. 알림 세부정보 섹션에서 다음을 수행합니다.

    1. 알림 정책 이름 필드에 정책 이름을 입력합니다.

    2. 정책 심각도 수준 목록에서 경고 (또는 더 높은 심각도)를 선택합니다.

    3. 다음을 클릭합니다.

  7. 알림에 포함할 로그 선택 섹션에서 다음을 클릭합니다.

  8. 알림 빈도 및 자동 종료 기간 설정 섹션에서 다음을 지정합니다.

    1. 알림 간 시간 목록에서 알림을 받을 빈도를 선택합니다.

    2. 사고 자동 종료 기간 목록에서 Cloud Logging이 알림 전송을 중지하고 사고를 자동으로 종료하는 기간을 선택합니다.

    3. 다음을 클릭합니다.

  9. 알림 수신 대상 섹션에서 로깅이 알림을 보낼 알림 채널을 지정합니다.

  10. 저장을 클릭합니다.

로그 탐색기에서 유지보수 이벤트 알림의 예를 보려면 Compute Engine 문서의 유지보수 알림 예시를 참고하세요.

컴퓨팅 인스턴스 전반에서 유지보수 관리

다음 중 하나 이상을 수행하여 인스턴스의 유지보수를 확인하고 제어할 수 있습니다.

컴퓨팅 인스턴스의 유지보수 상태 보기

인스턴스 메타데이터의 upcomingMaintenance 필드 값을 확인하여 인스턴스의 상태와 예정된 유지보수 시간을 확인할 수 있습니다. 인스턴스에 upcomingMaintenance 필드가 포함되지 않으면 인스턴스에 대해 예약된 호스트 유지보수 이벤트가 없습니다. upcomingMaintenance의 필드에 대한 자세한 내용은 Compute Engine 문서의 유지보수 상태 정의를 참고하세요.

또한 인스턴스 유지보수가 예약된 경우 upcomingGroupMaintenance 필드에 maintenanceReasons 필드가 포함됩니다. 이 필드는 다음 표에 설명된 대로 인스턴스에 유지보수가 예약된 이유를 설명합니다.

유지보수 유형 유지보수 이유 컴퓨팅 인스턴스 상태
장애가 있는 호스트 신고 후 계획된 유지보수 FAILURE_GPU_CUSTOMER_REPORTED 장애가 있는 것으로 신고한 호스트에서 실행되는 인스턴스에만 적용됩니다.
정기 유지보수를 위한 계획된 유지보수
  • PLANNED_UPDATE: 계획된 인프라 유지보수
  • PLANNED_NETWORK_UPDATE: 계획된 네트워크 유지보수
실행 중, 중지됨 또는 정지된 인스턴스에 적용됩니다.
예정되지 않은 긴급 유지관리
  • FAILURE_DISK: 인스턴스에 연결된 디스크의 오류로 인해 예약된 계획되지 않은 유지보수입니다.
  • FAILURE_GPU: GPU 관련 오류로 인해 예약된 계획되지 않은 유지보수입니다.
  • FAILURE_GPU_TEMPERATURE: GPU가 고온에 도달한 후 GPU 관련 오류로 인해 예정된 계획되지 않은 유지관리입니다.
  • FAILURE_GPU_XID: GPU 관련 오류로 인해 Xid 메시지를 수신한 후 계획되지 않은 유지보수입니다.
  • FAILURE_INFRA: 인프라 오류로 인해 예약된 계획되지 않은 유지보수입니다.
  • FAILURE_INTERFACE: NIC 오류로 인해 예정되지 않은 유지보수가 예약되었습니다.
  • FAILURE_MEMORY: 인스턴스 메모리 오류로 인해 예약된 계획되지 않은 유지보수입니다.
  • FAILURE_NETWORK: 네트워크 오류로 인해 예정되지 않은 유지보수가 예정되어 있습니다.
  • FAILURE_NVLINK: NVLink 오류로 인해 예약된 계획되지 않은 유지보수입니다.
실행 중인 인스턴스에만 적용됩니다.

인스턴스에서 maintenanceReasons 필드를 보려면 gcloud CLI 또는 REST API를 사용해야 합니다. 여러 컴퓨팅 인스턴스의 유지보수 상태를 동시에 보려면 Google Cloud 콘솔 또는 REST API를 사용해야 합니다. 그렇지 않으면 다음 옵션 중 하나를 선택합니다.

콘솔

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

    VM 인스턴스로 이동

  2. 유지보수 상태 열에 인스턴스의 유지보수 상태가 표시됩니다. VM 인스턴스 표에 이 열이 표시되지 않으면 view_column 열 표시 옵션을 클릭하고 유지보수 상태 체크박스를 선택한 후 확인을 클릭합니다.

gcloud

인스턴스의 유지보수 상태를 보려면 --flatten=resourceStatus.upcomingMaintenance 플래그와 함께 gcloud compute instances describe 명령어를 사용합니다.

gcloud compute instances describe INSTANCE_NAME \
    --flatten=resourceStatus.upcomingMaintenance \
    --zone=ZONE

다음을 바꿉니다.

  • INSTANCE_NAME: 인스턴스의 이름

  • ZONE: 인스턴스가 있는 영역

출력은 다음 중 하나와 비슷합니다.

  • 인스턴스에 호스트 유지보수 이벤트가 예약된 경우 출력은 다음과 유사합니다.

    ---
    canReschedule: true
    latestWindowStartTime: '2025-11-01T19:00:00Z'
    maintenanceReasons:
    - 'PLANNED_UPDATE'
    - 'PLANNED_NETWORK_UPDATE'
    maintenanceStatus: 'PENDING'
    type: 'SCHEDULED'
    windowEndTime: '2025-11-01T22:00:00Z'
    windowStartTime: '2025-11-01T19:00:00Z'
    
  • 인스턴스에 호스트 유지보수 이벤트가 예약되어 있지 않으면 출력은 다음과 유사합니다.

    ---
    null
    

REST

인스턴스의 유지보수 상태를 보려면 다음 GET 요청 중 하나를 실행하세요. 요청 시 인스턴스의 이름, 머신 유형, 예정된 유지보수만 표시하려면 fields 쿼리 매개변수를 포함해야 합니다. 특정 머신 유형으로만 인스턴스를 필터링하려면 filter 쿼리 매개변수도 포함해야 합니다.

  • 모든 영역의 인스턴스를 보려면 instances.aggregatedList 메서드를 사용합니다.

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/aggregated/instances?fields=items.name,items.machineType,items.upcomingMaintenance&filter=machineType%3AMACHINE_TYPE
    
  • 특정 영역의 인스턴스를 보려면 instances.list 메서드를 사용합니다.

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances?fields=items.name,items.machineType,items.upcomingMaintenance&filter=machineType%3AMACHINE_TYPE
    

다음을 바꿉니다.

  • PROJECT_ID: 인스턴스를 만든 프로젝트의 ID

  • ZONE: 인스턴스가 있는 영역입니다.

  • MACHINE_TYPE: 인스턴스를 필터링할 머신 유형입니다.

인스턴스에 호스트 유지보수 이벤트가 예약된 경우 인스턴스에 upcomingMaintenance 필드가 포함됩니다.

{
  "items": [
    {
      "name": "vm-01",
      "machineType": "https://www.googleapis.com/compute/v1/projects/example-project/zones/europe-west1-b/machineTypes/a3-ultragpu-8g",
      "resourceStatus": {
        "upcomingMaintenance": {
          "canReschedule": true,
          "latestWindowStartTime": "2024-11-01T19:00:00Z",
          "maintenanceStatus": "PENDING",
          "maintenanceReasons": [
            "PLANNED_UPDATE",
            "PLANNED_NETWORK_UPDATE"
          ],
          "type": "SCHEDULED",
          "windowEndTime": "2024-11-01T22:00:00Z",
          "windowStartTime": "2024-11-01T19:00:00Z"
        }
      }
    },
    ...
  ]
}

원하는 경우 인스턴스 목록을 더 좁히려면 filter 쿼리 매개변수를 다른 필터 표현식으로 설정합니다.

메타데이터 서버

인스턴스의 유지보수 상태를 보려면 다음 단계를 따르세요.

  1. 아직 연결하지 않았다면 Linux 또는 Windows 인스턴스에 연결합니다.

  2. 예정된 유지보수 일정을 보려면 upcoming-maintenance 엔드포인트를 쿼리합니다.

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

    인스턴스에 호스트 유지보수 이벤트가 예약된 경우 출력은 다음과 유사합니다.

    "Upcoming maintenance": {
      "can_reschedule": "true",
      "latest_window_start_time": "2024-12-01T19:00:01Z",
      "maintenance_reasons": [
        "PLANNED_UPDATE",
        "PLANNED_NETWORK_UPDATE"
      ],
      "maintenance_status": "PENDING",
      "type": "SCHEDULED",
      "window_end_time": "2024-12-01T21:00:01Z",
      "window_start_time": "2024-12-01T19:00:01Z"
    }
    

    호스트 유지보수 이벤트가 예약되어 있지 않으면 출력은 다음과 비슷합니다.

    { }
    
  3. VM의 현재 유지보수 상태를 보려면 maintenance-event 엔드포인트를 쿼리하세요.

    curl http://metadata.google.internal/computeMetadata/v1/instance/maintenance-event -H "Metadata-Flavor: Google"
    

    이러한 쿼리의 출력에 대한 자세한 내용은 출력 검토를 참고하세요.

컴퓨팅 인스턴스에서 유지보수 수동 시작

예약된 시간을 기다리지 않고 인스턴스의 유지보수를 수동으로 시작할 수 있습니다.

인스턴스의 유지보수 상태에 따라 다음이 발생합니다.

유지보수 상태 설명 결과
예약됨 Compute Engine에서 인스턴스에 대한 정기 유지보수를 예약했습니다. 예약된 시간 전에 유지보수를 수동으로 시작할 수 있습니다.
  • Google Cloud 콘솔에서 유지관리 상태가 실행 준비됨 - DATE에서 실행됨으로 표시됩니다.
  • gcloud CLI 또는 REST API에서 Compute Engine은 maintenanceStatus 필드를 PENDING으로 설정합니다.
진행 중 유지보수가 진행 중입니다. 일정을 변경할 수 없습니다.
  • Google Cloud 콘솔에서 유지보수 상태가 Running으로 표시됩니다.
  • gcloud CLI 또는 REST API에서 Compute Engine은 maintenanceStatus 필드를 ONGOING으로 설정합니다.
완료 유지보수가 완료되었습니다. Compute Engine에서 인스턴스의 모든 유지보수 알림을 삭제했습니다.
  • Google Cloud 콘솔에서 유지보수 상태가 최신으로 표시됩니다.
  • gcloud CLI 또는 REST API에서 Compute Engine은 maintenanceStatus 필드를 COMPLETE으로 설정합니다.

여러 인스턴스를 동시에 유지보수하거나 개별 인스턴스를 유지보수할 수 있습니다. 여러 인스턴스의 경우 Google Cloud 콘솔을 사용하고 동일 영역에 있는 인스턴스의 경우 gcloud CLI를 사용합니다. 개별 인스턴스의 경우 다음 옵션을 선택합니다.

콘솔

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

    VM 인스턴스로 이동

  2. 유지보수를 시작할 인스턴스의 행을 선택합니다.

  3. 유지보수 실행을 클릭합니다.

  4. 확인하려면 유지관리 실행을 클릭합니다.

gcloud

동일한 영역 내에서 하나 이상의 인스턴스의 유지보수를 수동으로 시작하려면 gcloud compute instances perform-maintenance 명령어를 사용합니다.

gcloud compute instances perform-maintenance INSTANCE_NAMES \
    --zone=ZONE

다음을 바꿉니다.

  • INSTANCE_NAMES: 공백으로 구분된 인스턴스 이름 목록입니다(예: vm-01 vm-02 vm-03).

  • ZONE: 인스턴스가 있는 영역입니다.

REST

인스턴스의 유지보수를 수동으로 시작하려면 POST 요청을 instances.performMaintenance 메서드에 보냅니다.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/performMaintenance

다음을 바꿉니다.

  • PROJECT_ID: 만든 인스턴스가 속한 프로젝트의 ID

  • ZONE: 인스턴스가 있는 영역

  • INSTANCE_NAME: 인스턴스의 이름

다음 단계