Azure Virtual Machine Scale Sets에 대한 자동 인스턴스 복구
Azure Virtual Machine Scale Sets에 대해 자동 인스턴스 복구를 활성화하면 정상적인 인스턴스 집합을 유지 관리하여 애플리케이션의 고가용성을 달성할 수 있습니다. Application Health 확장 또는 부하 분산 장치 상태 프로브에서 비정상 인스턴스를 발견한 경우 자동 인스턴스 복구는 비정상 인스턴스를 삭제하고 교체할 새 인스턴스를 만들거나 비정상 인스턴스를 다시 설치하거나 비정상 인스턴스를 다시 시작하는 등의 복구 작업을 트리거하여 인스턴스를 복구하려고 시도합니다.
자동 인스턴스 복구를 사용하기 위한 요구 사항
확장 집합에 애플리케이션 상태 모니터링 활성화
확장 집합에 인스턴스에 대한 애플리케이션 상태 모니터링이 활성화되어 있어야 합니다. 상태 모니터링은 Application Health 확장 또는 Load Balancer 상태 프로브를 사용하여 수행할 수 있으며, 한 번에 하나만 사용하도록 설정할 수 있습니다. 애플리케이션 상태 확장 또는 부하 분산 장치는 가상 머신 인스턴스에 구성된 애플리케이션 엔드포인트를 ping하여 애플리케이션 상태를 확인합니다. 이 상태는 확장 집합 오케스트레이터에서 인스턴스 상태를 모니터링하고 필요한 경우 복구를 수행하는 데 사용됩니다.
상태를 제공하도록 엔드포인트 구성
자동 인스턴스 복구 정책을 활성화하기 전에 확장 집합 인스턴스에 애플리케이션 상태를 내보내도록 구성된 애플리케이션 엔드포인트가 있는지 확인합니다. Application Health 확장에서 상태를 구성하려면 이진 상태 또는 리치 상태 중 하나를 사용할 수 있습니다. Load Balancer 상태 프로브를 사용하여 상태를 구성하려면 프로브 업 동작을 참조하세요.
"비정상" 또는 "알 수 없음"으로 표시된 인스턴스의 경우(알 수 없음 상태는 Application Health 확장 - 리치 상태에서만 사용할 수 있음) 확장 집합에 의해 자동 복구가 트리거됩니다. 엔드 포인트가 구성되는 동안 의도하지 않은 인스턴스 복구를 방지하기 위해 자동 복구 정책을 활성화하기 전에 애플리케이션 엔드 포인트가 올바르게 구성되었는지 확인합니다.
API 버전
자동 복구 정책은 컴퓨팅 API 버전 2018-10-01 이상에서 지원됩니다.
repairAction
이미지 다시 설치 및 다시 시작에 대한 설정은 컴퓨팅 API 버전 2021-11-01 이상에서 지원됩니다.
리소스 또는 구독 이동에 대한 제한
자동 복구 기능이 활성화된 경우에는 리소스 또는 구독 이동이 현재 확장 집합에 대해 지원되지 않습니다.
Service fabric 확장 집합에 대한 제한
이 기능은 현재 서비스 패브릭 확장 집합에 대해 지원되지 않습니다.
프로비전 오류가 있는 VM에 대한 제한 사항
자동 복구는 현재 프로비전 실패로 인해 VM 인스턴스가 비정상으로 표시되는 시나리오를 지원하지 않습니다. 상태 모니터링 및 자동 복구 기능을 사용하도록 설정하려면 VM을 성공적으로 초기화해야 합니다.
자동 인스턴스 복구 작동 방법
자동 인스턴스 복구 기능은 확장 집합에 있는 개별 인스턴스의 상태 모니터링에 의존합니다. 애플리케이션 상태 확장 또는 부하 분산 장치 상태 프로브를 사용하여 애플리케이션 상태를 내보내도록 확장 집합의 VM 인스턴스를 구성할 수 있습니다. 인스턴스가 비정상인 것으로 확인되면 확장 집합은 비정상 인스턴스에 미리 구성된 복구 작업을 수행합니다. automaticRepairsPolicy
개체를 사용하여 가상 머신 확장 집합 모델에서 자동 인스턴스 복구를 사용 설정할 수 있습니다.
자동 인스턴스 복구 프로세스는 다음과 같이 작동합니다.
- 애플리케이션 상태 확장 또는 부하 분산 장치 상태 프로브는 확장 집합의 각 가상 머신 내에서 애플리케이션 엔드포인트를 ping하여 각 인스턴스에 대한 애플리케이션 상태를 가져옵니다.
- 엔드포인트가 상태 200(정상)으로 응답하는 경우 인스턴스는 ‘정상’으로 표시됩니다. 다른 모든 경우(엔드포인트에 연결할 수 없는 경우 포함)에는 인스턴스가 ‘비정상’으로 표시됩니다.
- 인스턴스가 비정상인 것으로 확인되면 확장 집합은 구성된 복구 작업(기본값: Replace)을 비정상 인스턴스에 적용합니다.
- 인스턴스 복구는 일괄 처리로 수행됩니다. 지정된 시간에 확장 집합의 총 인스턴스 중 5% 이하만 복구됩니다. 확장 집합에 20개 미만의 인스턴스가 있는 경우 한 번에 하나의 비정상 인스턴스에 대한 복구가 수행됩니다.
- 위의 프로세스는 확장 집합의 모든 비정상 인스턴스가 복구될 때까지 계속됩니다.
사용 가능한 복구 작업
자동 인스턴스 복구에는 바꾸기, 이미지 다시 설치 및 다시 시작의 세 가지 복구 작업이 있습니다. 기본 복구 작업은 Replace이지만 개체 아래 automaticRepairsPolicy
설정을 수정하여 이미지 다시 시작 또는 다시 시작을 사용하도록 자동 복구를 repairAction
구성할 수 있습니다.
바꾸기는 비정상 인스턴스를 삭제하고 교체할 새 인스턴스를 만듭니다. 최신 Virtual Machine Scale Sets 모델을 사용하여 새 인스턴스를 만듭니다. 이 복구 작업은 기본값입니다.
이미지로 다시 설치는 비정상 인스턴스에 이미지로 다시 설치 작업을 적용합니다.
다시 시작은 비정상 인스턴스에 다시 시작 작업을 적용합니다.
다음 표에는 세 가지 복구 작업 간의 차이점이 비교되어 있습니다.
복구 작업 | VM 인스턴스 ID 유지 여부 | 비공개 IP 유지 여부 | 관리되는 데이터 디스크 유지 여부 | 관리되는 OS 디스크 유지 여부 | 로컬(임시) 디스크 유지 여부 |
---|---|---|---|---|---|
바꾸기(기본값) | 아니요 | 아니요 | 아니요 | 아니요 | 아니요 |
이미지로 다시 설치 | 예 | 예 | 예 | 아니요 | 예 |
다시 시작 | 예 | 예 | 예 | 예 | 예 |
자동 복구 정책에서 복구 작업을 업데이트하는 방법을 자세히 알아보려면 자동 복구 정책에서 복구 작업 구성 섹션을 참조하세요.
일괄 처리
자동 인스턴스 복구 작업은 일괄 처리로 수행됩니다. 지정된 시간에 자동 복구 정책을 통해 확장 집합의 인스턴스 중 5% 이하만 복구됩니다. 이 프로세스는 비정상 상태를 동시에 발견한 경우 많은 수의 인스턴스를 동시에 삭제하고 다시 만들지 않는 데 도움이 됩니다.
유예 기간
확장 집합에서 수행된 PUT, PATCH 또는 POST 작업으로 인해 인스턴스가 상태 변경 작업을 거치는 경우 해당 인스턴스에 대한 복구 작업은 유예 기간이 끝난 후에만 수행됩니다. 유예 기간은 인스턴스가 정상 상태로 돌아갈 수 있는 시간입니다. 유예 기간은 상태 변경이 완료된 후에 시작되며, 이는 조기 또는 우발적 복구 작업을 방지하는 데 도움이 됩니다. 확장 집합에서 새로 만든 인스턴스(복구 작업의 결과로 만든 인스턴스 포함)에 대해 유예 기간이 설정됩니다. 유예 기간은 ISO 8601 형식으로 분 단위로 지정되며 automaticRepairsPolicy.gracePeriod속성을 사용하여 설정할 수 있습니다. 유예 기간은 10분에서 90분 사이로 설정할 수 있으며 기본값은 10분입니다.
복구 일시 중단
Virtual Machine Scale Sets는 필요한 경우 자동 인스턴스 복구를 일시적으로 일시 중단하는 기능을 제공합니다. Virtual Machine Scale Sets의 인스턴스 보기에서 orchestrationServices 속성 아래의 자동 복구에 대한 serviceState는 자동 복구의 현재 상태를 표시합니다. 확장 집합이 자동 복구로 옵트인되면 serviceState 매개 변수 값이 실행 중으로 설정됩니다. 확장 집합에 대해 자동 복구가 일시 중단되면 serviceState 매개 변수가 일시 중단됨으로 설정됩니다. 확장 집합에 automaticRepairsPolicy가 정의되어 있지만 자동 복구 기능이 활성화되어 있지 않은 경우 serviceState 매개 변수가 실행 중 아님으로 설정됩니다.
확장 집합의 비정상 인스턴스를 교체하기 위해 새로 만든 인스턴스가 복구 작업을 반복적으로 수행한 후에도 계속 비정상 상태로 유지되는 경우 안전 측정값으로 플랫폼은 자동 복구를 위해 serviceState를 일시 중단됨으로 업데이트합니다. 자동 복구에 대한 serviceState 값을 실행 중으로 설정하여 자동 복구를 다시 시작할 수 있습니다. 자세한 지침은 확장 집합에 대한 자동 복구 정책의 서비스 상태를 보기 및 업데이트 섹션에 나와 있습니다.
serviceState 변경 내용을 모니터링하고 확장 집합에서 자동 복구가 일시 중단되면 알림을 받도록 Azure 경고 규칙을 설정할 수도 있습니다. 자세한 내용은 Azure 경고 규칙을 사용하여 자동 인스턴스 복구 서비스 상태 변경 내용 모니터링을 참조하세요.
인스턴스 보호 및 자동 복구
확장 집합의 인스턴스가 보호 정책 중 하나를 적용하여 보호되는 경우 해당 인스턴스에서 자동 복구가 수행되지 않습니다. 이 동작은 확장으로부터 보호 및 확장 집합으로부터 보호 작업과 같은 보호 정책 모두에 적용됩니다.
종료 알림 및 자동 복구
확장 집합에서 종료 알림 기능을 사용하는 경우 바꾸기 작업 중 비정상 인스턴스 삭제는 종료 알림 구성을 따릅니다. 종료 알림은 Azure 메타데이터 서비스(예약된 이벤트)를 통해 전송되며, 구성된 지연 제한 시간 동안 인스턴스 삭제가 지연됩니다. 그러나 비정상 항목을 대체하기 위해 새 인스턴스를 만드는 경우 지연 제한 시간이 완료될 때까지 기다리지 않습니다.
새 확장 집합을 만들 때 자동 복구 정책 활성화
Important
2023년 11월부터 PowerShell 및 Azure CLI를 사용하여 만들어진 VM Scale Sets는 오케스트레이션 모드가 지정되지 않은 경우 기본적으로 유연한 오케스트레이션 모드로 설정됩니다. 이 변경 내용과 취해야 할 작업에 대한 자세한 내용은 VMSS PowerShell/CLI 고객을 위한 호환성이 손상되는 변경 - Microsoft 커뮤니티 허브를 참조하세요.
새 확장 집합을 만드는 동안 자동 복구 정책을 활성화하려면 이 기능을 옵트인하기 위한 모든 요구 사항이 충족되는지 확인합니다. 엔드포인트가 구성되는 동안 의도하지 않은 복구가 트리거되지 않도록 확장 집합 인스턴스에 대해 애플리케이션 엔드포인트를 올바르게 구성해야 합니다. 새로 만든 확장 집합의 경우 유예 기간이 완료된 후에만 인스턴스 복구가 수행됩니다. 확장 집합에서 자동 인스턴스 복구를 활성화하려면 Virtual Machine Scale Sets 모델에서 automaticRepairsPolicy 개체를 사용합니다.
이 빠른 시작 템플릿을 사용하여 Virtual Machine Scale Sets를 배포할 수도 있습니다. 빠른 시작에서 확장 집합에는 부하 분산 장치 상태 프로브와 구성된 유예 기간이 30분으로 설정된 자동 인스턴스 복구가 있습니다.
다음 단계는 새 확장 집합을 만들 때 자동 복구 정책을 활성화하는 방법입니다.
- Virtual Machine Scale Sets로 이동합니다.
- + 추가를 선택하여 새 확장 집합을 만듭니다.
- 상태 탭으로 이동합니다.
- 상태 섹션을 찾습니다.
- 애플리케이션 상태 모니터링 옵션을 사용하도록 설정합니다.
- 자동 복구 정책 섹션을 찾습니다.
- 자동 복구 옵션을 켬으로 설정합니다.
- 유예 기간(분)에서 유예 기간을 분으로 지정합니다. 허용되는 값은 10분에서 90분 사이입니다.
- 새 확장 집합 만들기를 완료한 후 검토 + 만들기 단추를 선택합니다.
기존 확장 집합을 업데이트할 때 자동 복구 정책을 사용하도록 설정
기존 확장 집합에서 자동 복구 정책을 활성화하기 전에 이 기능을 옵트인하기 위한 모든 요구 사항이 충족되는지 확인합니다. 엔드포인트가 구성되는 동안 의도하지 않은 복구가 트리거되지 않도록 확장 집합 인스턴스에 대해 애플리케이션 엔드포인트를 올바르게 구성해야 합니다. 확장 집합에서 자동 인스턴스 복구를 활성화하려면 Virtual Machine Scale Sets 모델에서 automaticRepairsPolicy 개체를 사용합니다.
기존 확장 집합의 모델을 업데이트한 후에는 최신 모델이 모든 규모의 인스턴스에 적용되는지 확인합니다. 최신 확장 집합 모델을 사용하여 VM을 최신 상태로 전환하는 방법에 대한 지침을 참조하세요.
Azure Portal을 통해 기존 확장 집합의 자동 복구 정책을 수정할 수 있습니다.
참고 항목
다음 단계를 시작하기 전에 Virtual Machine Scale Sets에서 Application Health 확장 또는 Load Balancer 상태 프로브를 사용하도록 설정합니다.
- 기존 Virtual Machine Scale Set.0으로 이동합니다.
- 왼쪽 메뉴의 설정에서 상태 및 복구를 선택합니다.
- 애플리케이션 상태 모니터링 옵션을 사용하도록 설정합니다.
Application Health 확장을 사용하여 확장 집합을 모니터링하는 경우:
Application Health 모니터 드롭다운 목록에서 Application Health 확장을 선택합니다.
프로토콜 드롭다운 목록에서 애플리케이션이 상태를 보고하는 데 사용하는 네트워크 프로토콜을 선택합니다. 애플리케이션 요구 사항에 따라 적절한 프로토콜을 선택합니다. 프로토콜 옵션은 HTTP, HTTPS 또는 TCP입니다.
포트 번호 구성 상자에 애플리케이션 상태를 모니터링하는 데 사용되는 네트워크 포트를 입력합니다.
경로의 경우 애플리케이션 상태를 보고하는 데 사용되는 애플리케이션 엔드포인트 경로(예: "/")를 제공합니다.
SLB Health 프로브를 사용하여 확장 집합을 모니터링하는 경우:
- Application Health 모니터 드롭다운 목록에서 부하 분산 장치 프로브를 선택합니다. Load Balancer 상태 프로브의 경우 기존 상태 프로브를 선택하거나 모니터링을 위한 새 상태 프로브를 만듭니다.
자동 복구를 사용하도록 설정하려면 다음을 수행합니다.
- 자동 복구 정책 섹션을 찾습니다.
- 자동 복구 옵션을 켬으로 설정합니다.
- 유예 기간(분)에 유예 기간을 분 단위로 지정합니다. 허용되는 값은 10분에서 90분 사이입니다.
- 완료되면 저장을 선택합니다.
자동 복구 정책에 대한 복구 작업 구성
automaticRepairsPolicy
의 repairAction
설정을 사용하면 비정상 인스턴스에 대한 응답으로 수행되었으면 하는 복구 작업을 지정할 수 있습니다. 기존 자동 복구 정책에서 복구 작업을 업데이트하는 경우 먼저 확장 집합에서 자동 복구를 사용하지 않도록 설정하고 업데이트된 복구 작업으로 다시 사용 설정해야 합니다. 이 프로세스는 아래 예제에 나와 있습니다.
이 예제에서는 기존 자동 복구 정책을 사용하여 확장 집합의 복구 작업을 업데이트하는 방법을 보여 줍니다. API 버전 2021-11-01 이상을 사용합니다.
확장 집합에서 기존 자동 복구 정책을 사용하지 않도록 설정
PUT or PATCH on '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}?api-version=2021-11-01'
{
"properties": {
"automaticRepairsPolicy": {
"enabled": "false"
}
}
}
원하는 복구 작업으로 자동 복구 정책 다시 사용 설정
PUT or PATCH on '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}?api-version=2021-11-01'
{
"properties": {
"automaticRepairsPolicy": {
"enabled": "true",
"gracePeriod": "PT40M",
"repairAction": "Reimage"
}
}
}
자동 인스턴스 복구 정책의 서비스 상태 보기 및 업데이트
Virtual Machine Scale Sets에 대해 API 버전 2019-12-01 이상과 함께 인스턴스 뷰 가져오기를 사용하여 orchestrationServices 속성에서 자동 복구에 대한 serviceState를 확인합니다.
GET '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/instanceView?api-version=2019-12-01'
{
"orchestrationServices": [
{
"serviceName": "AutomaticRepairs",
"serviceState": "Running"
}
]
}
오케스트레이션 서비스 상태 설정을 사용하여 자동 복구를 위해 serviceState를 일시 중단하거나 다시 시작합니다.
POST '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/instanceView?api-version=2023-07-01'
{
"serviceName": "AutomaticRepairs",
"action": "Suspend"
}
문제 해결
자동 복구 정책 활성화 실패
"'속성' 형식의 개체에서 'automaticRepairsPolicy' 멤버를 찾을 수 없습니다."라는 메시지와 함께 'BadRequest' 오류가 발생하는 경우 Virtual Machine Scale Sets에 사용되는 API 버전을 확인하세요. 이 기능을 수행하려면 API 버전 2018-10-01 이상이 필요합니다.
정책이 활성화된 경우에도 인스턴스가 복구되지 않음
인스턴스가 유예 기간일 수 있습니다. 이 기간은 복구를 수행하기 전에 인스턴스 상태가 변경된 후 대기하는 시간입니다. 이는 조기 또는 우발적 복구를 방지하는 데 도움이 됩니다. 인스턴스에 대한 유예 기간이 완료되면 복구 작업이 수행되어야 합니다.
확장 집합 인스턴스에 대한 애플리케이션 상태 보기
Virtual Machine Scale Sets의 인스턴스에 대한 인스턴스 뷰 가져오기 API를 사용하여 애플리케이션 상태를 볼 수 있습니다. Azure PowerShell에서 -InstanceView 플래그와 함께 Get-AzVmssVM cmdlet을 사용할 수 있습니다. 애플리케이션 상태는 vmHealth속성 아래에 제공됩니다.
Azure Portal에서도 상태를 볼 수 있습니다. 기존 확장 집합으로 이동하여 왼쪽 메뉴에서 인스턴스를 선택한 다음 상태 열에서 각 확장 집합 인스턴스의 상태를 확인합니다.
다음 단계
확장 집합에 대한 애플리케이션 상태 확장 또는 부하 분산 장치 상태 프로브를 구성하는 방법에 대해 알아봅니다.