자습서: Azure PowerShell을 사용하여 가상 머신 확장 집합의 크기를 자동으로 조정Tutorial: Automatically scale a virtual machine scale set with Azure PowerShell

중요

PowerShell에서 이 Azure 기능을 사용하려면 AzureRM 모듈이 설치되어 있어야 합니다.Using this Azure feature from PowerShell requires the AzureRM module installed. 이 모듈은 Windows PowerShell 5.1에만 사용할 수 있는 이전 모듈로, 새로운 기능은 더 이상 받지 않습니다.This is an older module only available for Windows PowerShell 5.1 that no longer receives new features. PowerShell의 동일한 버전에 대해 설치된 경우 AzAzureRM 모듈은 호환되지 않습니다.The Az and AzureRM modules are not compatible when installed for the same versions of PowerShell. 두 버전이 모두 필요한 경우:If you need both versions:

  1. PowerShell 5.1 세션에서 Az 모듈을 제거합니다.Uninstall the Az module from a PowerShell 5.1 session.
  2. PowerShell 5.1 세션에서 AzureRM 모듈을 설치합니다.Install the AzureRM module from a PowerShell 5.1 session.
  3. PowerShell Core 6.x 이상을 다운로드하고 설치합니다.Download and install PowerShell Core 6.x or later.
  4. PowerShell Core 세션에서 Az 모듈을 설치합니다.Install the Az module in a PowerShell Core session.

확장 집합을 만들 때 실행하려는 VM 인스턴스 수를 정의합니다.When you create a scale set, you define the number of VM instances that you wish to run. 애플리케이션 수요가 변경될 때는 VM 인스턴스 수를 자동으로 늘리거나 줄일 수 있습니다.As your application demand changes, you can automatically increase or decrease the number of VM instances. 자동 크기 조정 기능을 사용하면 고객 수요에 따라 조정하거나 앱 수명 주기 동안 애플리케이션 성능 변화에 대응할 수 있습니다.The ability to autoscale lets you keep up with customer demand or respond to application performance changes throughout the lifecycle of your app. 이 자습서에서는 다음 방법에 대해 알아봅니다.In this tutorial you learn how to:

  • 확장 집합에 자동 크기 조정 사용Use autoscale with a scale set
  • 자동 크기 조정 규칙 만들기 및 사용Create and use autoscale rules
  • VM 인스턴스 스트레스 테스트 및 자동 크기 조정 규칙 트리거Stress-test VM instances and trigger autoscale rules
  • 요구량이 줄면 자동으로 다시 크기 조정Autoscale back in as demand is reduced

Azure 구독이 아직 없는 경우 시작하기 전에 체험 계정을 만듭니다.If you don't have an Azure subscription, create a free account before you begin.

Azure Cloud Shell 현재 버전을 포함하여 Azure PowerShell 모듈 버전 6.8.1 이상에 영향을 주는 알려진 문제가 있습니다.There's a known issue that affects Azure PowerShell module version 6.8.1 or later, including the current version of the Azure Cloud Shell. 이 자습서는 Azure PowerShell 모듈 6.0.0-6.8.0 버전에서만 실행할 수 있습니다.This tutorial can only run using Azure PowerShell module version 6.0.0 to 6.8.0. Get-Module -ListAvailable AzureRM을 실행하여 버전을 찾습니다.Run Get-Module -ListAvailable AzureRM to find the version. 또한 PowerShell을 로컬로 실행하는 경우 Connect-AzureRmAccount를 실행하여 Azure와 연결해야 합니다.If you are running PowerShell locally, you also need to run Connect-AzureRmAccount to create a connection with Azure.

확장 집합 만들기Create a scale set

자동 크기 조정 규칙을 보다 쉽게 만들려면 확장 집합에 대해 몇 개의 변수를 정의합니다.To make it easier to create the autoscale rules, define some variables for your scale set. 다음 예제에서는 myResourceGroup이라는 리소스 그룹과 East US 지역에 있는 myScaleSet라는 확장 집합에 대한 변수를 정의합니다.The following example defines variables for the scale set named myScaleSet in the resource group named myResourceGroup and in the East US region. 구독 ID는 Get-AzureRmSubscription을 사용하여 가져옵니다.Your subscription ID is obtained with Get-AzureRmSubscription. 사용자 계정에 여러 구독이 연결되어 있으면 첫 번째 구독만 반환됩니다.If you have multiple subscriptions associated with your account, only the first subscription is returned. 이름과 구독 ID를 다음과 같이 조정합니다.Adjust the names and subscription ID as follows:

$mySubscriptionId = (Get-AzureRmSubscription)[0].Id
$myResourceGroup = "myResourceGroup"
$myScaleSet = "myScaleSet"
$myLocation = "East US"

이제 New-AzureRmVmss를 사용하여 가상 머신 확장 집합을 만듭니다.Now create a virtual machine scale set with New-AzureRmVmss. 트래픽을 개별 VM 인스턴스로 배포하기 위해 부하 분산 장치도 생성됩니다.To distribute traffic to the individual VM instances, a load balancer is also created. 부하 분산 장치에는 80 TCP 포트에서 트래픽을 분산할 뿐만 아니라 3389 TCP 포트의 원격 데스크톱 트래픽 및 5985 TCP 포트의 PowerShell 원격을 허용하는 규칙이 포함되어 있습니다.The load balancer includes rules to distribute traffic on TCP port 80, as well as allow remote desktop traffic on TCP port 3389 and PowerShell remoting on TCP port 5985. 메시지가 표시되면 확장 집합에서 VM 인스턴스에 대해 원하는 관리 자격 증명을 제공합니다.When prompted, provide your own desired administrative credentials for the VM instances in the scale set:

New-AzureRmVmss `
  -ResourceGroupName $myResourceGroup `
  -VMScaleSetName $myScaleSet `
  -Location $myLocation `
  -VirtualNetworkName "myVnet" `
  -SubnetName "mySubnet" `
  -PublicIpAddressName "myPublicIPAddress" `
  -LoadBalancerName "myLoadBalancer"

확장 집합 리소스와 VM을 모두 만들고 구성하는 데 몇 분 정도 걸립니다.It takes a few minutes to create and configure all the scale set resources and VMs.

자동 크기 확장 규칙 만들기Create a rule to autoscale out

애플리케이션 수요가 증가하면 확장 집합의 VM 인스턴스 부하가 증가합니다.If your application demand increases, the load on the VM instances in your scale set increases. 증가된 로드가 단순한 요구가 아닌 일관된 요구인 경우 확장 집합의 VM 인스턴스 수를 늘리도록 자동 크기 조정 규칙을 구성할 수 있습니다.If this increased load is consistent, rather than just a brief demand, you can configure autoscale rules to increase the number of VM instances in the scale set. 이러한 VM 인스턴스를 만들고 애플리케이션을 배포하면 확장 집합이 부하 분산 장치를 통해 트래픽을 분산하기 시작합니다.When these VM instances are created and your applications are deployed, the scale set starts to distribute traffic to them through the load balancer. 모니터링할 메트릭(예: CPU 또는 디스크), 애플리케이션 로드가 지정된 임계값을 충족해야 하는 기간, 확장 집합에 추가할 VM 인스턴스 수를 제어합니다.You control what metrics to monitor, such as CPU or disk, how long the application load must meet a given threshold, and how many VM instances to add to the scale set.

평균 CPU 로드가 5분간 70%를 초과할 경우 New-AzureRmAutoscaleRule을 사용하여 확장 집합의 VM 인스턴스 수를 늘리는 규칙을 만들어 보겠습니다.Let's create a rule with New-AzureRmAutoscaleRule that increases the number of VM instances in a scale set when the average CPU load is greater than 70% over a 5-minute period. 규칙이 트리거되면 VM 인스턴스 수가 3만큼 늘어납니다.When the rule triggers, the number of VM instances is increased by three.

이 규칙에 사용되는 매개 변수는 다음과 같습니다.The following parameters are used for this rule:

매개 변수Parameter 설명Explanation Value
-MetricName-MetricName 확장 집합 작업을 모니터링하고 적용하기 위한 성능 메트릭입니다.The performance metric to monitor and apply scale set actions on. 백분율 CPUPercentage CPU
-TimeGrain-TimeGrain 분석을 위해 메트릭이 수집되는 빈도입니다.How often the metrics are collected for analysis. 1분1 minute
-MetricStatistic-MetricStatistic 분석을 위해 수집된 메트릭을 집계하는 방법을 정의합니다.Defines how the collected metrics should be aggregated for analysis. 평균Average
-TimeWindow-TimeWindow 메트릭과 임계값을 비교하기 전에 모니터링하는 기간입니다.The amount of time monitored before the metric and threshold values are compared. 5분5 minutes
-Operator-Operator 메트릭 데이터를 임계값과 비교하는 데 사용되는 연산자입니다.Operator used to compare the metric data against the threshold. 다음보다 큼Greater Than
-Threshold-Threshold 자동 크기 조정 규칙이 작업을 트리거하도록 하는 값입니다.The value that causes the autoscale rule to trigger an action. 70%70%
-ScaleActionDirection-ScaleActionDirection 규칙이 적용될 때 확장 집합이 확장 또는 축소되어야 하는지를 정의합니다.Defines if the scale set should scale up or down when the rule applies. 증가Increase
-ScaleActionScaleType-ScaleActionScaleType VM 인스턴스 수를 특정 값으로 변경해야 함을 나타냅니다.Indicates that the number of VM instances should be changed by a specific value. 변경 수Change Count
-ScaleActionValue-ScaleActionValue 규칙이 트리거되면 VM 인스턴스의 백분율을 변경해야 합니다.The percentage of VM instances should be changed when the rule triggers. 33
-ScaleActionCooldown-ScaleActionCooldown 자동 크기 조정 작업이 적용될 시간을 주기 위해 규칙을 다시 적용하기 전에 대기할 시간입니다.The amount of time to wait before the rule is applied again so that the autoscale actions have time to take effect. 5분5 minutes

다음 예제에서는 이 확장 규칙이 적용되는 myRuleScaleOut이라는 개체를 생성합니다.The following example creates an object named myRuleScaleOut that holds this scale up rule. -MetricResourceId는 구독 ID, 리소스 그룹 이름 및 확장 집합 이름에 대해 이전에 정의된 변수를 사용합니다.The -MetricResourceId uses the variables previously defined for the subscription ID, resource group name, and scale set name:

$myRuleScaleOut = New-AzureRmAutoscaleRule `
  -MetricName "Percentage CPU" `
  -MetricResourceId /subscriptions/$mySubscriptionId/resourceGroups/$myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/$myScaleSet `
  -TimeGrain 00:01:00 `
  -MetricStatistic "Average" `
  -TimeWindow 00:05:00 `
  -Operator "GreaterThan" `
  -Threshold 70 `
  -ScaleActionDirection "Increase" `
  -ScaleActionScaleType "ChangeCount" `
  -ScaleActionValue 3 `
  -ScaleActionCooldown 00:05:00

자동 크기 축소 규칙 만들기Create a rule to autoscale in

저녁이나 주말에는 애플리케이션 수요가 줄어들 수 있습니다.On an evening or weekend, your application demand may decrease. 이 감소된 로드가 일정 기간 동안 일관성 있게 유지될 경우 확장 집합의 VM 인스턴스 수를 줄이도록 자동 크기 조정 규칙을 구성할 수 있습니다.If this decreased load is consistent over a period of time, you can configure autoscale rules to decrease the number of VM instances in the scale set. 이 규모 감축 작업은 현재 수요를 충족하는 데 필요한 수의 인스턴스만 실행하므로 확장 집합의 실행 비용을 줄입니다.This scale-in action reduces the cost to run your scale set as you only run the number of instances required to meet the current demand.

평균 CPU 로드가 5분 동안 30% 미만일 경우 New-AzureRmAutoscaleRule을 사용하여 확장 집합의 VM 인스턴스 수를 줄이는 다른 규칙을 만듭니다.Create another rule with New-AzureRmAutoscaleRule that decreases the number of VM instances in a scale set when the average CPU load then drops below 30% over a 5-minute period. 규칙이 트리거되면 VM 인스턴스 수가 하나씩 감소합니다.When the rule triggers, the number of VM instances is decreased by one. 다음 예제에서는 이 축소 규칙이 적용되는 myRuleScaleDown이라는 개체를 생성합니다.The following example creates an object named myRuleScaleDown that holds this scale down rule. -MetricResourceId는 구독 ID, 리소스 그룹 이름 및 확장 집합 이름에 대해 이전에 정의된 변수를 사용합니다.The -MetricResourceId uses the variables previously defined for the subscription ID, resource group name, and scale set name:

$myRuleScaleIn = New-AzureRmAutoscaleRule `
  -MetricName "Percentage CPU" `
  -MetricResourceId /subscriptions/$mySubscriptionId/resourceGroups/$myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/$myScaleSet `
  -Operator "LessThan" `
  -MetricStatistic "Average" `
  -Threshold 30 `
  -TimeGrain 00:01:00 `
  -TimeWindow 00:05:00 `
  -ScaleActionCooldown 00:05:00 `
  -ScaleActionDirection "Decrease" `
  -ScaleActionScaleType "ChangeCount" `
  -ScaleActionValue 1

자동 크기 조정 프로필 정의Define an autoscale profile

자동 크기 조정 규칙을 확장 집합과 연결하려면 프로필을 만듭니다.To associate your autoscale rules with a scale set, create a profile. 자동 크기 조정 프로필은 기본, 최소, 최대 확장 집합 용량을 정의하고 자동 크기 조정 규칙을 연결합니다.The autoscale profile defines the default, minimum, and maximum scale set capacity, and associates your autoscale rules. New-AzureRmAutoscaleProfile을 사용하여 자동 크기 조정 프로필을 만듭니다.Create an autoscale profile with New-AzureRmAutoscaleProfile. 다음 예제에서는 기본 및 최소 용량으로 VM 인스턴스 2개, 최대 용량으로 10개를 설정합니다.The following example sets the default, and minimum, capacity of 2 VM instances, and a maximum of 10. 그런 다음, 이전 단계에서 만든 규모 확장 및 규모 감축 규칙이 연결됩니다.The scale out and scale in rules created in the preceding steps are then attached:

$myScaleProfile = New-AzureRmAutoscaleProfile `
  -DefaultCapacity 2  `
  -MaximumCapacity 10 `
  -MinimumCapacity 2 `
  -Rule $myRuleScaleOut,$myRuleScaleIn `
  -Name "autoprofile"

확장 집합에 자동 크기 조정 프로필 적용Apply autoscale profile to a scale set

마지막 단계는 확장 집합에 자동 크기 조정 프로필을 적용하는 것입니다.The final step is to apply the autoscale profile to your scale set. 그러면 확장 집합이 애플리케이션 요구량에 따라 자동으로 확장되거나 축소될 수 있습니다.Your scale set is then able to automatically scale in or out based on the application demand. Add-AzureRmAutoscaleSetting을 사용하여 자동 크기 조정 프로필을 다음과 같이 적용합니다.Apply the autoscale profile with Add-AzureRmAutoscaleSetting as follows:

Add-AzureRmAutoscaleSetting `
  -Location $myLocation `
  -Name "autosetting" `
  -ResourceGroup $myResourceGroup `
  -TargetResourceId /subscriptions/$mySubscriptionId/resourceGroups/$myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/$myScaleSet `
  -AutoscaleProfile $myScaleProfile

확장 집합에 CPU 로드 생성Generate CPU load on scale set

자동 크기 조정 규칙을 테스트하려면 확장 집합의 VM 인스턴스에 약간의 CPU 로드를 생성합니다.To test the autoscale rules, generate some CPU load on the VM instances in the scale set. 시뮬레이션된 CPU 로드로 인해 자동 크기 조정 규칙이 확장되고 VM 인스턴스 수가 늘어납니다.This simulated CPU load causes the autoscale rules to scale out and increase the number of VM instances. 시뮬레이션된 CPU 로드가 감소하면 자동 크기 조정 규칙이 축소되고 VM 인스턴스 수가 줄어듭니다.As the simulated CPU load is then decreased, the autoscale rules scale in and reduce the number of VM instances.

확장 집합의 VM 인스턴스에 연결할 NAT 포트를 나열하려면, 먼저 Get-AzureRmLoadBalancer를 사용하여 부하 분산 장치 개체를 가져옵니다.To list the NAT ports to connect to VM instances in a scale set, first get the load balancer object with Get-AzureRmLoadBalancer. 그런 다음, Get-AzureRmLoadBalancerInboundNatRuleConfig를 사용하여 인바운드 NAT 규칙을 봅니다.Then, view the inbound NAT rules with Get-AzureRmLoadBalancerInboundNatRuleConfig:

# Get the load balancer object
$lb = Get-AzureRmLoadBalancer -ResourceGroupName "myResourceGroup" -Name "myLoadBalancer"

# View the list of inbound NAT rules
Get-AzureRmLoadBalancerInboundNatRuleConfig -LoadBalancer $lb | Select-Object Name,Protocol,FrontEndPort,BackEndPort

다음 예제 출력에서는 NAT 규칙에서 트래픽을 전달하는 인스턴스 이름, 부하 분산 장치의 공용 IP 주소 및 포트 번호를 보여 줍니다.The following example output shows the instance name, public IP address of the load balancer, and port number that the NAT rules forward traffic to:

Name        Protocol FrontendPort BackendPort
----        -------- ------------ -----------
myRDPRule.0 Tcp             50001        3389
myRDPRule.1 Tcp             50002        3389

규칙의 이름은 이전 Get-AzureRmVmssVM 명령에 표시된 VM 인스턴스의 이름과 일치합니다.The Name of the rule aligns with the name of the VM instance as shown in a previous Get-AzureRmVmssVM command. 예를 들어 0 VM 인스턴스에 연결하려면 myRDPRule.0을 사용하고 50001 포트에 연결합니다.For example, to connect to VM instance 0, you use myRDPRule.0 and connect to port 50001. 1 VM 인스턴스에 연결하려면 myRDPRule.1의 값을 사용하고 50002 포트에 연결합니다.To connect to VM instance 1, use the value from myRDPRule.1 and connect to port 50002.

Get-AzureRmPublicIpAddress를 사용하여 부하 분산 장치의 공용 IP 주소를 봅니다.View the public IP address of the load balancer with Get-AzureRmPublicIpAddress:

Get-AzureRmPublicIpAddress -ResourceGroupName "myResourceGroup" -Name myPublicIP | Select IpAddress

예제 출력:Example output:

IpAddress
---------
52.168.121.216

첫 번째 VM 인스턴스에 대한 원격 연결을 만듭니다.Create a remote connection to your first VM instance. 앞의 명령과 같이 필요한 VM 인스턴스의 고유한 공용 IP 주소와 포트 번호를 지정합니다.Specify your own public IP address and port number of the required VM instance, as shown from the preceding commands. 메시지가 표시되면 확장 집합을 만들 때 사용한 자격 증명을 입력합니다(샘플 명령의 경우 기본적으로 azureuserP@ssw0rd! 임).When prompted, enter the credentials used when you created the scale set (by default in the sample commands, they are azureuser and P@ssw0rd!). Azure Cloud Shell을 사용하는 경우 로컬 PowerShell 프롬프트 또는 원격 데스크톱 클라이언트에서 이 단계를 수행합니다.If you use the Azure Cloud Shell, perform this step from a local PowerShell prompt or Remote Desktop Client. 다음 예제에서는 0 VM 인스턴스에 연결합니다.The following example connects to VM instance 0:

mstsc /v 52.168.121.216:50001

로그인한 후 작업 표시줄에서 Internet Explorer를 엽니다.Once logged in, open Internet Explorer from the taskbar.

  • 확인을 선택하여 권장되는 보안, 개인 정보 및 호환성 설정을 사용하도록 요구하는 메시지를 수락합니다.Select OK to accept the prompt to Use recommended security, privacy, and compatibility settings
  • 주소 표시줄에 http://download.sysinternals.com/files/CPUSTRES.zip 을 입력합니다.Type http://download.sysinternals.com/files/CPUSTRES.zip in the address bar.
  • Internet Explorer 보안 강화 구성을 사용하도록 설정하면 http://download.sysinternals.com 도메인을 신뢰할 수 있는 사이트 목록에 추가하도록 선택합니다.As Internet Explorer Enhanced Security Configuration is enabled, choose to Add the http://download.sysinternals.com domain to your list of trusted sites.
  • 파일 다운로드를 묻는 메시지가 표시되면 열기를 선택한 다음, CPUSTRES.EXE 도구를 선택하고 실행합니다.When prompted for the file download, select Open, then select and Run the CPUSTRES.EXE tool.

약간의 CPU 로드를 생성하려면 활성 스레드에 대한 두 개의 확인란을 선택합니다.To generate some CPU load, check two boxes for Active threads. 두 스레드에 대한 활동 드롭다운 메뉴에서 최대를 선택합니다.From the Activity drop-down menu for both threads, select Maximum. [작업 관리자]를 열어 VM의 CPU 로드가 100%인지 확인할 수 있습니다.You can open Task Manager to confirm that the CPU load on the VM is at 100%.

CPU 스트레스 유틸리티에서 VM 인스턴스에 로드를 생성합니다.

원격 데스크톱 연결 세션을 열어 둔 채 다른 원격 데스크톱 연결 세션을 엽니다.Leave the remote desktop connection session open, and open another remote desktop connection session. 이전 Get-AzureRmLoadBalancerInboundNatRuleConfig cmdlet에서 나열된 포트 번호를 사용하여 두 번째 VM 인스턴스에 연결합니다.Connect to the second VM instance with the port number listed from the previous Get-AzureRmLoadBalancerInboundNatRuleConfig cmdlet:

mstsc /v 52.168.121.216:50002

두 번째 VM 인스턴스에 로그인한 후 이전 단계를 반복하여 CPUSTRES.EXE를 다운로드하고 실행합니다.Once logged in to the second VM instance, repeat the previous steps to download and run CPUSTRES.EXE. 다시 한 번, 두 개의 활성 스레드를 시작하고 활동을 최대로 설정합니다.Again, start two Active threads, and set the activity to Maximum.

CPU 스트레스 도구가 계속 실행되도록 하려면 두 원격 데스크톱 연결 세션을 모두 열어 둡니다.To allow the CPU Stress tool to continue running, leave both remote desktop connection sessions open.

활성 자동 크기 조정 규칙 모니터링Monitor the active autoscale rules

확장 집합의 VM 인스턴스 수를 모니터링하려면 while을 사용합니다.To monitor the number of VM instances in your scale set, use while. 각 VM 인스턴스의 CPUStress에서 생성된 CPU 로드에 응답하여 자동 크기 조정 확장 집합에서 규모 확장 프로세스를 시작하는 데 5분이 걸립니다.It takes 5 minutes for the autoscale scales to begin the scale out process in response to the CPU load generated by CPUStress on each of the VM instances:

while (1) {Get-AzureRmVmssVM `
    -ResourceGroupName $myResourceGroup `
    -VMScaleSetName $myScaleSet; sleep 10}

CPU 임계값이 충족되면 자동 크기 조정 규칙에서 확장 집합의 VM 인스턴스 수를 늘립니다.Once the CPU threshold has been met, the autoscale rules increase the number of VM instances in the scale set. 다음 출력에서는 확장 집합의 크기가 자동으로 확장함에 따라 생성된 세 개의 VM을 보여 줍니다.The following output shows three VMs created as the scale set autoscales out:

ResourceGroupName         Name Location          Sku Capacity InstanceID ProvisioningState
-----------------         ---- --------          --- -------- ---------- -----------------
MYRESOURCEGROUP   myScaleSet_2   eastus Standard_DS2                   2         Succeeded
MYRESOURCEGROUP   myScaleSet_3   eastus Standard_DS2                   3         Succeeded
MYRESOURCEGROUP   myScaleSet_4   eastus Standard_DS2                   4          Creating
MYRESOURCEGROUP   myScaleSet_5   eastus Standard_DS2                   5          Creating
MYRESOURCEGROUP   myScaleSet_6   eastus Standard_DS2                   6          Creating

각 VM 인스턴스에 대한 원격 데스크톱 연결 세션에서 CPU 스트레스 도구를 닫습니다.In your remote desktop connection session to each of your VM instances, close the CPU Stress tool. 확장 집합에 걸친 평균 CPU 로드가 정상으로 돌아갑니다.The average CPU load across the scale set returns to normal. 또 다른 5분이 지나면 자동 크기 조정 규칙에서 VM 인스턴스 수를 축소합니다.After another 5 minutes, the autoscale rules then scale in the number of VM instances. 규모 감축 작업에서 가장 높은 ID가 있는 VM 인스턴스를 먼저 제거합니다.Scale in actions remove VM instances with the highest IDs first. 확장 집합에서 가용성 집합 또는 가용성 영역을 사용하는 경우 규모 감축 작업은 해당 VM 인스턴스 간에 균등하게 분산됩니다.When a scale set uses Availability Sets or Availability Zones, scale in actions are evenly distributed across those VM instances. 다음 예제 출력에서는 확장 집합의 자동 크기를 확장하면서 삭제된 하나의 VM 인스턴스를 보여 줍니다.The following example output shows one VM instance deleted as the scale set autoscales in:

MYRESOURCEGROUP   myScaleSet_6   eastus Standard_DS2                   6          Deleting

Ctrl-c를 사용하여 while을 종료합니다.Exit while with Ctrl-c. 확장 집합은 5분마다 계속 축소되며, 최소 인스턴스 수인 2에 도달할 때까지 하나의 VM 인스턴스를 제거합니다.The scale set continues to scale in every 5 minutes and remove one VM instance until the minimum instance count of two is reached.

리소스 정리Clean up resources

확장 집합 및 추가 리소스를 제거하려면 Remove-AzureRmResourceGroup을 사용하여 리소스 그룹 및 모든 해당 리소스를 삭제합니다.To remove your scale set and additional resources, delete the resource group and all its resources with Remove-AzureRmResourceGroup. -Force 매개 변수는 작업을 수행하는 추가 프롬프트 없이 리소스를 삭제할 것인지 확인합니다.The -Force parameter confirms that you wish to delete the resources without an additional prompt to do so. -AsJob 매개 변수는 작업이 완료될 때까지 대기하지 않고 프롬프트로 제어를 반환합니다.The -AsJob parameter returns control to the prompt without waiting for the operation to complete.

Remove-AzureRmResourceGroup -Name "myResourceGroup" -Force -AsJob

다음 단계Next steps

이 자습서에서는 Azure PowerShell을 사용하여 다음과 같이 확장 집합을 자동으로 확장하거나 축소하는 방법을 알아보았습니다.In this tutorial, you learned how to automatically scale in or out a scale set with Azure PowerShell:

  • 확장 집합에 자동 크기 조정 사용Use autoscale with a scale set
  • 자동 크기 조정 규칙 만들기 및 사용Create and use autoscale rules
  • VM 인스턴스 스트레스 테스트 및 자동 크기 조정 규칙 트리거Stress-test VM instances and trigger autoscale rules
  • 요구량이 줄면 자동으로 다시 크기 조정Autoscale back in as demand is reduced