고가용성을 위한 VM 복구 정보


이 문서에서는 관리형 인스턴스 그룹(MIG)이 그룹에서 오류가 발생하여 비정상적인 VM을 복구하여 애플리케이션의 고가용성을 제공하는 방법을 설명합니다.

MIG는 그룹에서 실행 중인 VM 수를 사전에 유지관리하여 애플리케이션의 작동 및 가용성을 유지합니다. 그룹의 VM이 작동 중지되면 MIG는 다음 방법으로 VM을 다시 사용할 수 있도록 VM을 다시 만들어 복구합니다.

  • 오류가 발생한 VM 자동 복구: MIG에서 시작하지 않은 작업에 의해 VM이 실패하거나 삭제되면 MIG가 오류가 발생한 VM을 자동으로 복구합니다. 이 문서에서 오류가 발생한 VM 자동 복구를 참조하세요.
  • 애플리케이션 상태 점검 기반의 VM 복구: 비정상 VM을 복구하여 고가용성을 더욱 개선하는 방법입니다. 애플리케이션 기반 상태 점검을 구성하고 애플리케이션이 상태 점검에 실패하면 MIG가 해당 VM을 비정상으로 표시하고 복구합니다. 애플리케이션 상태 점검을 기반으로 VM을 복구하는 것을 자동 복구라고도 합니다. 이 문서에서 애플리케이션 상태 점검을 기준으로 VM 복구를 참조하세요.

오류가 발생한 VM 자동 복구

MIG의 VM에 오류가 발생하면 MIG에서 오류가 발생한 VM을 다시 만들어 자동으로 복구합니다. VM에 오류가 발생하는 이유는 다음과 같습니다.

  • 하드웨어 오류와 같은 예상치 못한 이유
  • MIG에서 시작하지 않는 작업. 예:
    • Spot VM 선점
    • VM 인스턴스가 라이브 마이그레이션으로 설정되지 않은 경우의 인프라 유지보수 이벤트
    • instances.delete 메서드 또는 gcloud compute instances delete 명령어를 사용하여 그룹에서 VM 삭제

MIG에서 의도적으로 VM을 중지하는 경우(예: 자동 확장 처리에서 VM을 삭제하는 경우) MIG에서 해당 VM을 복구하지 않습니다.

애플리케이션 상태 점검에 따라 VM 복구

오류가 발생한 VM의 자동 복구 외에도 VM에서 실행 중인 애플리케이션이 중단 또는 다운되거나 메모리가 부족하면 VM을 복구해야 할 수 있습니다. 애플리케이션이 예상대로 응답하도록 하려면 애플리케이션 기반 상태 점검을 구성하면 됩니다.

애플리케이션 기반 상태 점검은 MIG의 각 VM에서 애플리케이션이 예상대로 응답하는지 주기적으로 확인합니다. VM의 애플리케이션이 응답하지 않으면 MIG가 해당 VM을 비정상으로 표시합니다. 그런 후 MIG가 비정상 VM을 복구합니다. 애플리케이션 상태 점검을 기반으로 VM을 복구하는 것을 자동 복구라고 합니다.

MIG가 일부 VM에서 계속 실행되도록 하기 위해 이 그룹은 모든 VM을 동시에 자동 복구하지 않습니다. 예를 들어 잘못된 상태 점검이 불필요한 복구를 트리거하거나, 잘못 구성된 방화벽 규칙으로 인해 상태 점검의 VM 프로브를 방지하거나, 정상 VM을 비정상으로 잘못 식별하는 네트워크 연결 또는 인프라 문제가 있는 경우에 유용합니다. 그러나 영역 MIG에 VM이 한 개만 있거나 리전 MIG에 영역당 VM이 한 개만 있는 경우 VM이 비정상 상태가 되면 MIG에서 VM을 자동 복구합니다.

자동 복구 정책

각 MIG에는 상태 점검을 구성하고 초기 지연 시간을 설정할 수 있는 자동 복구 정책이 있습니다. 초기 지연 시간은 새 VM이 시작 스크립트를 초기화하고 실행하는 데 걸리는 시간입니다. MIG가 VM의 currentAction 필드를 VERIFYING으로 변경하면 초기 지연 타이머가 시작됩니다. VM의 초기 지연 기간 동안 MIG는 VM이 시작 프로세스에 있을 수 있으므로 실패한 상태 점검을 무시합니다. 이렇게 하면 MIG가 VM을 조기에 다시 만들 수 없습니다. 초기 지연 중에 상태 점검이 정상 응답을 받으면 시작 프로세스가 완료되고 VM이 준비된 것입니다.

자동 복구 정책 구성에 대한 자세한 내용은 애플리케이션 상태 점검 및 자동 복구 설정을 참조하세요.

애플리케이션 상태 변경 모니터링

MIG에 애플리케이션 기반 상태 점검을 구성한 경우 MIG에 있는 각 VM의 상태를 확인할 수 있습니다. 자세한 내용은 상태 확인을 참조하세요.

VM의 상태 변경을 모니터링할 수도 있습니다. 자세한 내용은 상태 변경 모니터링을 참조하세요.

가격 책정

애플리케이션 기반 상태 점검을 설정할 때 Compute Engine은 기본적으로 관리형 인스턴스의 상태가 변경될 때마다 로그 항목을 기록합니다. Cloud Logging은 데이터 볼륨으로 로깅 가격이 책정되기 전의 월별 무료 할당량을 제공합니다. 비용이 부과되지 않도록 하려면 상태 변경 로그를 사용 중지할 수 있습니다.

복구 중 동작

다음 섹션에서는 자동 복구 및 애플리케이션 상태 점검을 기반으로 한 복구 중 동작을 설명합니다.

복구 시 업데이트

기본적으로 복구 중에 MIG는 VM을 만드는 데 사용했던 원래 인스턴스 템플릿을 사용하여 VM을 다시 만듭니다. 예를 들어 instance-template-a를 사용하여 VM을 만들었지만 MIG를 업데이트하여 OPPORTUNISTIC 모드에서 instance-template-b를 사용하더라도 MIG는 여전히 instance-template-a를 사용하여 VM을 다시 만듭니다.

MIG에서 복구 중에 최신 인스턴스 템플릿 및 인스턴스당 구성을 사용하도록 하려면 그룹을 복구 중 구성 업데이트 적용에 구성하면 됩니다.

디스크 취급

복구 중에 템플릿을 기준으로 VM을 다시 만들 때 MIG는 여러 유형의 디스크를 다르게 처리합니다. 일부 디스크 구성에서는 VM을 다시 만들려고 할 때 복구 기능이 작동하지 않을 수도 있습니다.

디스크 유형 autodelete 복구 중 동작
새로운 영구 디스크 true 인스턴스 템플릿에 지정된 대로 디스크가 다시 만들어집니다. 디스크와 VM을 다시 만들면 디스크에 기록되었던 모든 데이터가 손실됩니다.
새로운 영구 디스크 false 디스크가 보존되어 MIG가 VM을 다시 만들 때 다시 연결됩니다.
기존 영구 디스크 true 이전 디스크가 삭제됩니다. Compute Engine이 삭제된 디스크를 VM에 다시 연결할 수 없으므로 VM을 다시 만들지 못합니다. 하지만 기존 읽기/쓰기 디스크의 경우 단일 영구 디스크가 읽기/쓰기 모드에서 여러 VM에 연결될 수 없으므로 MIG에는 VM 한 개만 있을 수 있습니다.
기존 영구 디스크 false 이전 디스크가 인스턴스 템플릿에 지정된 대로 다시 연결됩니다. 디스크의 데이터도 보존됩니다. 하지만 기존 읽기/쓰기 디스크의 경우 단일 영구 디스크가 읽기/쓰기 모드에서 여러 VM에 연결될 수 없으므로 MIG에는 VM 한 개만 있을 수 있습니다.
새로운 로컬 SSD 해당 사항 없음 인스턴스 템플릿에 지정된 대로 디스크가 다시 만들어집니다. VM을 다시 만들거나 삭제하면 로컬 SSD의 데이터가 손실됩니다.

MIG는 VM을 만든 후 VM에 수동으로 연결한 디스크와 같이 인스턴스 템플릿 또는 인스턴스당 구성에서 지정되지 않은 디스크를 다시 연결하지 않습니다.

따라서 디스크에 작성된 중요 데이터를 보존하려면 다음과 같은 주의사항을 따라야 합니다.

VM에 보존하려는 중요한 설정이 있으면 인스턴스 템플릿에 커스텀 이미지를 사용하는 것이 좋습니다. 커스텀 이미지에는 필요한 모든 커스텀 설정이 포함되어 있습니다. 인스턴스 템플릿에 커스텀 이미지를 지정하면 MIG에서 필요한 커스텀 설정이 포함된 커스텀 이미지를 사용하여 VM을 다시 만듭니다.

복구 사용 중지

MIG에서 자동으로 수행되는 복구를 사용 중지할 수 있습니다. 복구를 중지하면 실패한 VM 복구와 애플리케이션 상태 점검에 따른 복구가 사용 중지됩니다.

다음과 같은 시나리오에서 MIG에서 복구를 사용 중지하는 것이 좋습니다.

  • 자동 복구의 중단 없이 실패한 VM을 조사하거나 디버깅하려는 경우
  • VM을 수동으로 복구하거나 자체 복구 로직을 구현하려는 경우
  • 일괄 작업이 진행되는 동안 새 VM 등록을 방지하려는 경우
  • 비정상 VM을 복구하지 않고 애플리케이션 상태를 관찰하려는 경우
  • 거짓 트리거 복구 없이 상태 점검 구성을 미세 조정하려는 경우

복구를 사용 중지하면 그룹의 VM이 실패하거나 비정상 상태가 되는 경우 MIG가 작업을 수행하지 않습니다. 실패 및 비정상 VM이 계속 그룹에 있고 MIG(targetSize)에서 실행 중인 VM의 대상 수가 동일하게 유지됩니다.

MIG의 업데이트 유형proactive로 설정되었고 새 인스턴스 템플릿을 사용할 수 있으면 MIG는 실패 및 비정상 VM을 업데이트하려고 시도합니다.

애플리케이션 기반 상태 점검을 구성한 경우 복구를 사용 중지해도 상태 점검의 작동에는 영향을 미치지 않습니다. 상태 점검은 계속해서 애플리케이션을 프로브하고 VM 상태를 제공합니다. 이렇게 하면 MIG가 비정상 VM을 복구하는 것을 방지하면서 애플리케이션 상태를 모니터링할 수 있습니다.

MIG가 부하 분산기의 백엔드 서비스의 일부이고 MIG에서 복구를 사용 중지하면 복구되지 않은 실패한 VM과 비정상 VM이 부하 분산기 상태 점검에 응답하지 않습니다. MIG에서 실패하거나 비정상 VM 수가 증가하면 부하 분산기가 해당 MIG에 대한 트래픽을 줄이거나 구성된 다른 백엔드로 전환할 수 있습니다. 실패한 VM이 다시 사용 가능해지면 부하 분산기는 MIG에 대한 트래픽을 재개합니다.

자세한 내용은 MIG에서 복구 사용 중지를 참조하세요.

다음 단계