Azure Virtual Machine Scale Sets를 사용하면 자동 크기 조정을 통해 워크로드의 탄력성을 높일 수 있으므로 인프라가 스케일 아웃되는 시기와 스케일 인 시기를 구성할 수 있습니다. 또한 확장 집합을 사용하면 다양한 업그레이드 정책 설정을 통해 많은 수의 VM을 중앙에서 관리, 구성 및 업데이트할 수 있습니다. 확장 집합 모델에서 업데이트를 구성할 수 있으며 업그레이드 정책을 자동 또는 롤링으로 설정한 경우 모든 확장 집합 인스턴스에 새 구성이 자동으로 적용됩니다.
애플리케이션이 트래픽을 처리할 때 특정 인스턴스를 확장 집합 인스턴스의 나머지 부분과 다르게 처리하려는 상황이 있을 수 있습니다. 예를 들어 확장 집합의 특정 인스턴스는 장기 실행 작업을 수행할 수 있으며 작업이 완료될 때까지 이러한 인스턴스의 크기를 조정하지 않도록 합니다. 확장 집합의 다른 멤버와 다른 작업을 수행하도록 확장 집합의 몇 가지 인스턴스를 특수화했을 수도 있습니다. 이러한 '특수' VM은 확장 집합의 다른 인스턴스와 함께 결코 수정되어서는 안 됩니다. 인스턴스 보호는 애플리케이션에 대해 이러한 시나리오 및 기타 시나리오를 사용하도록 설정하는 추가 컨트롤을 제공합니다.
이 문서에서는 확장 집합 인스턴스에서 다양한 인스턴스 보호 기능을 적용하고 사용하는 방법을 설명합니다.
인스턴스 보호 유형
확장 집합은 다음 두 가지 유형의 인스턴스 보호 기능을 제공합니다.
규모 감축으로부터 보호
- protectFromScaleIn 속성을 활용하여 확장 세트 인스턴스를 활성화합니다.
- 자동 크기 조정 시작 스케일 인으로부터 인스턴스를 보호합니다.
- 사용자가 시작한 인스턴스 작업(인스턴스 삭제 포함)이 차단되지 않음
- 확장 집합에서 시작된 작업(업그레이드, 이미지 다시 설치, 할당 취소 등)은 차단되지 않습니다.
스케일 세트 작업으로부터 보호
- protectFromScaleSetActions 속성을 통해 확장 집합 인스턴스에서 활성화됩니다.
- 자동 크기 조정 시작 스케일 인으로부터 인스턴스를 보호합니다.
- 확장 집합에서 시작된 작업(예: 업그레이드, 이미지 다시 설치, 할당 취소 등)으로부터 인스턴스를 보호합니다.
- 사용자가 시작한 인스턴스 작업(인스턴스 삭제 포함)이 차단되지 않음
- 전체 확장 집합 삭제가 차단되지 않음
규모 감축으로부터 보호
인스턴스를 만든 후 확장 집합 인스턴스에 인스턴스 보호를 적용할 수 있습니다. 보호는 확장 집합모델이 아닌 인스턴스 모델에만 적용되고 수정됩니다.
아래 예제에 설명된 대로 확장 집합 인스턴스에 스케일 인 보호를 적용하는 방법에는 여러 가지가 있습니다.
Azure 포털
확장 집합의 인스턴스에 Azure Portal을 통해 스케일 인 보호를 적용할 수 있습니다. 한 번에 둘 이상의 인스턴스를 조정할 수 없습니다. 보호하려는 각 인스턴스에 대해 단계를 반복합니다.
- 기존의 가상 머신 규모 조정 집합으로 이동합니다.
- 왼쪽 메뉴의 설정에서 인스턴스를 선택합니다.
- 보호할 인스턴스의 이름을 선택합니다.
- 보호 정책 탭을 선택합니다.
- 보호 정책 블레이드에서 확장으로부터 보호 옵션을 선택합니다.
- 저장을 선택합니다.
REST API (REST 애플리케이션 프로그래밍 인터페이스)
다음 예제에서는 확장 집합의 인스턴스에 규모 축소 보호를 적용합니다.
PUT on `/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/virtualMachines/{instance-id}?api-version=2019-03-01`
{
"properties": {
"protectionPolicy": {
"protectFromScaleIn": true
}
}
}
비고
유연한 오케스트레이션 모드에서는 인스턴스 보호가 API 버전 2023-09-01 이상에서만 지원됩니다. 균일한 오케스트레이션 모드의 경우 인스턴스 보호는 API 버전 2019-03-01 이상에서 사용할 수 있습니다.
Azure PowerShell
Update-AzVmssVM cmdlet을 사용하여 확장 집합 인스턴스에 스케일 인 보호를 적용합니다.
다음 예제에서는 인스턴스 ID가 0인 확장 집합의 인스턴스에 스케일 인 보호를 적용합니다.
Update-AzVmssVM `
-ResourceGroupName "myResourceGroup" `
-VMScaleSetName "myVMScaleSet" `
-InstanceId 0 `
-ProtectFromScaleIn $true
Azure CLI 2.0
az vmss update를 사용하여 확장 집합 인스턴스에 스케일 인 보호를 적용합니다.
다음 예제에서는 인스턴스 ID가 0인 확장 집합의 인스턴스에 스케일 인 보호를 적용합니다.
az vmss update \
--resource-group <myResourceGroup> \
--name <myVMScaleSet> \
--instance-id 0 \
--protect-from-scale-in true
스케일 세트의 작업으로부터 보호
인스턴스를 만든 후 확장 집합 인스턴스에 인스턴스 보호를 적용할 수 있습니다. 보호는 확장 집합모델이 아닌 인스턴스 모델에만 적용되고 수정됩니다.
확장 집합 작업으로부터 인스턴스를 보호하면 자동 확장에 의해 시작된 인스턴스 축소에서도 인스턴스가 보호됩니다.
아래 예제에 자세히 설명된 대로 확장 집합 인스턴스에 확장 집합 작업 보호를 적용하는 방법에는 여러 가지가 있습니다.
Azure 포털
확장 집합의 인스턴스에 Azure Portal을 통해 확장 집합 작업으로부터 보호를 적용할 수 있습니다. 한 번에 둘 이상의 인스턴스를 조정할 수 없습니다. 보호하려는 각 인스턴스에 대해 단계를 반복합니다.
- 기존 Virtual Machine Scale Set로 이동합니다.
- 왼쪽 메뉴의 설정에서 인스턴스를 선택합니다.
- 보호할 인스턴스의 이름을 선택합니다.
- 보호 정책 탭을 선택합니다.
- 보호 정책 블레이드에서 확장 집합 작업으로부터 보호 옵션을 선택합니다.
- 저장을 선택합니다.
REST API (REST 애플리케이션 프로그래밍 인터페이스)
다음 예제에서는 확장 집합 작업의 보호를 확장 집합의 인스턴스에 적용합니다.
PUT on `/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vMScaleSetName}/virtualMachines/{instance-id}?api-version=2019-03-01`
{
"properties": {
"protectionPolicy": {
"protectFromScaleIn": true,
"protectFromScaleSetActions": true
}
}
}
비고
인스턴스 보호는 API 버전 2019-03-01 이상에서만 지원됩니다.
확장 집합 작업으로부터 인스턴스를 보호하면 자동 크기 조정 시작 스케일 인으로부터 인스턴스도 보호됩니다. "protectFromScaleSetActions"를 설정할 때 "protectFromScaleIn": false를 지정할 수 없습니다. true
Azure PowerShell
Update-AzVmssVM cmdlet을 사용하여 확장 집합 작업으로부터 확장 집합 인스턴스에 보호를 적용합니다.
다음 예제에서는 확장 집합 작업으로부터 인스턴스 ID가 0인 확장 집합의 인스턴스에 보호를 적용합니다.
Update-AzVmssVM `
-ResourceGroupName "myResourceGroup" `
-VMScaleSetName "myVMScaleSet" `
-InstanceId 0 `
-ProtectFromScaleIn $true `
-ProtectFromScaleSetAction $true
Azure CLI 2.0
az vmss update를 사용하여 확장 집합 작업으로부터 확장 집합 인스턴스에 보호를 적용합니다.
다음 예제에서는 확장 집합 작업으로부터 인스턴스 ID가 0인 확장 집합의 인스턴스에 보호를 적용합니다.
az vmss update \
--resource-group <myResourceGroup> \
--name <myVMScaleSet> \
--instance-id 0 \
--protect-from-scale-in true \
--protect-from-scale-set-actions true
문제 해결
확장 집합 모델에 protectionPolicy 없음
인스턴스 보호는 확장 집합 인스턴스에만 적용되며 확장 집합 모델에는 적용되지 않습니다.
확장 집합 인스턴스 모델에는 보호 정책이 없습니다.
기본적으로 보호 정책은 만들 때 인스턴스에 적용되지 않습니다.
인스턴스를 만든 후 확장 집합 인스턴스에 인스턴스 보호를 적용할 수 있습니다.
인스턴스 보호를 적용할 수 없음
인스턴스 보호는 API 버전 2019-03-01 이상에서만 지원됩니다. 사용 중인 API 버전을 확인하고 필요에 따라 업데이트합니다. PowerShell 또는 CLI를 최신 버전으로 업데이트해야 할 수도 있습니다.
다음 단계
Virtual Machine Scale Sets에 애플리케이션을 배포 하는 방법을 알아봅니다.