Azure Virtual Machine Scale Set 인스턴스에 대한 인스턴스 보호

적용 대상: ✔️ 균일 확장 집합

Azure Virtual Machine Scale Sets 자동 크기 조정을 통해 워크로드에 더 나은 탄력성을 사용하도록 설정하므로 인프라가 스케일 아웃되는 시기와 스케일 인 시기를 구성할 수 있습니다. 또한 확장 집합을 사용하면 다양한 업그레이드 정책 설정을 통해 많은 수의 VM을 중앙에서 관리, 구성 및 업데이트할 수 있습니다. 업그레이드 정책을 자동 또는 롤링으로 설정한 경우 확장 집합 모델에 대해 업데이트를 구성할 수 있으며 새 구성은 모든 확장 집합 인스턴스에 자동으로 적용됩니다.

애플리케이션에서 트래픽을 처리할 때 특정 인스턴스를 확장 집합 인스턴스의 나머지 부분과 다르게 처리하려는 상황이 있을 수 있습니다. 예를 들어, 확장 집합의 특정 인스턴스는 장기 실행 작업을 수행할 수 있으며, 작업이 완료될 때까지 이러한 인스턴스의 규모를 감축하지 않으려고 할 수 있습니다. 확장 집합의 일부 인스턴스는 확장 집합의 다른 멤버와는 다른 작업을 수행하기 위해 확장 집합에서 몇 가지 인스턴스를 특수화했을 수도 있습니다. 이러한 '특별' VM은 확장 집합의 다른 인스턴스로 수정하지 않아도 됩니다. 인스턴스 보호는 애플리케이션에 대해 이러한 시나리오와 기타 시나리오를 사용할 수 있도록 하는 추가 컨트롤을 제공합니다.

이 문서에서는 확장 집합 인스턴스를 사용하여 다양 한 인스턴스 보호 기능을 적용하고 사용하는 방법을 설명합니다.

인스턴스 보호의 유형

확장 집합은 다음과 같은 두 가지 유형의 인스턴스 보호 기능을 제공합니다.

  • 규모 감축으로부터 보호

    • 확장 집합 인스턴스에서 protectFromScaleIn 속성을 통해 사용하도록 설정됨
    • 자동 크기 조정으로 시작된 규모 감축으로부터 인스턴스 보호
    • 사용자가 시작한 인스턴스 작업(인스턴스 삭제 포함)이 차단되지 않음
    • 확장 집합에서 시작된 작업(업그레이드, 이미지로 다시 설치, 할당 취소 등)은 차단되지 않음
  • 확장 집합 작업으로부터 보호

    • 확장 집합 인스턴스에서 protectFromScaleSetActions 속성을 통해 사용하도록 설정됨
    • 자동 크기 조정으로 시작된 규모 감축으로부터 인스턴스 보호
    • 확장 집합에서 시작된 작업(예: 업그레이드, 이미지로 다시 설치, 할당 취소 등)에서 인스턴스 보호
    • 사용자가 시작한 인스턴스 작업(인스턴스 삭제 포함)이 차단되지 않음
    • 전체 확장 집합의 삭제는 차단되지 않음

규모 감축으로부터 보호

인스턴스를 만든 후에 확장 집합 인스턴스에 인스턴스 보호를 적용할 수 있습니다. 보호는 인스턴스 모델에만 적용되고 수정되며 확장 집합 모델에는 적용되지 않습니다.

아래 예제에 자세히 설명된 대로 확장 집합 인스턴스에 규모 감축 보호를 적용하는 여러 가지 방법이 있습니다.

Azure portal

Azure Portal를 통해 확장 집합의 인스턴스에 규모 감축 보호를 적용할 수 있습니다. 한 번에 두 개 이상의 인스턴스를 조정할 수 없습니다. 보호하려는 각 인스턴스에 대해 이러한 단계를 반복합니다.

  1. 기존 가상 머신 확장 집합으로 이동합니다.
  2. 왼쪽의 메뉴에서 설정 아래의 인스턴스를 선택합니다.
  3. 보호하려는 인스턴스의 이름을 선택합니다.
  4. 보호 정책 탭을 선택합니다.
  5. 보호 정책 블레이드에서 규모 감축으로부터 보호 옵션을 선택합니다.
  6. 저장을 선택합니다.

REST API

다음 예제에서는 확장 집합의 인스턴스에 규모 감축 보호를 적용합니다.

PUT on `/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/virtualMachines/{instance-id}?api-version=2019-03-01`
{
  "properties": {
    "protectionPolicy": {
      "protectFromScaleIn": true
    }
  }        
}

참고

인스턴스 보호는 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 portal

Azure Portal를 통해 확장 집합 작업에서 확장 집합의 인스턴스로 보호를 적용할 수 있습니다. 한 번에 두 개 이상의 인스턴스를 조정할 수 없습니다. 보호하려는 각 인스턴스에 대해 이러한 단계를 반복합니다.

  1. 기존 가상 머신 확장 집합으로 이동합니다.
  2. 왼쪽의 메뉴에서 설정 아래의 인스턴스를 선택합니다.
  3. 보호하려는 인스턴스의 이름을 선택합니다.
  4. 보호 정책 탭을 선택합니다.
  5. 보호 정책 블레이드에서 확장 집합 작업으로부터 보호 옵션을 선택합니다.
  6. 저장을 선택합니다.

REST API

다음 예제에서는 확장 집합 작업에서 확장 집합의 인스턴스로 보호를 적용합니다.

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": true를 설정하는 경우 "protectFromScaleIn": false를 지정할 수 없습니다.

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가 없음

인스턴스 보호는 확장 집합에만 적용되고 확장 집합 모델에는 적용되지 않습니다.

확장 집합 인스턴스 모델에 protectionPolicy가 없음

기본적으로 보호 정책이 생성될 때 인스턴스에 적용되지 않습니다.

인스턴스를 만든 후 인스턴스 보호를 확장 집합 인스턴스에 적용할 수 있습니다.

인스턴스 보호를 적용할 수 없음

인스턴스 보호는 API 버전 2019-03-01 이상에서만 지원됩니다. 사용 중인 API 버전을 확인하고 필요에 따라 업데이트합니다. PowerShell 또는 CLI를 최신 버전으로 업데이트해야 할 수도 있습니다.

다음 단계

Virtual Machine Scale Sets 애플리케이션을 배포하는 방법을 알아봅니다.