VM(가상 머신)을 만든 후에는 VM 크기를 변경하여 VM을 확장 또는 축소할 수 있습니다. 경우에 따라 먼저 VM의 할당을 취소해야 합니다. 현재 VM을 호스팅하는 동일한 하드웨어 클러스터에서 새 크기를 사용할 수 없는 경우 할당 취소가 필요할 수 있습니다. 할당 취소가 필요하지 않은 경우에도 가상 머신이 현재 실행 중인 경우 크기를 변경하면 다시 시작된다는 것을 이해하는 것이 중요합니다. 이러한 이유로 VM 크기 변경은 특히 VM에서 호스트되는 상태 저장 워크로드의 경우 중단 절차로 고려해야 합니다.
경고
가상 머신이 현재 실행 중인 경우 크기를 변경하면 다시 시작됩니다.
VM 할당을 취소하면 VM에 할당된 동적 IP 주소도 해제됩니다. OS 및 데이터 디스크는 영향을 받지 않습니다.
크기 조정 작업이 실패하면 VM 모델은 요청된 크기를 계속 표시하지만 크기 조정이 성공적으로 할당될 때까지 VM은 이전 크기에서 계속 실행됩니다. 이 동작은 표시된 크기가 항상 실제 실행 크기가 아닌 적용된 최신 구성을 반영하므로 Azure Portal 및 모든 GET 작업에 모두 적용됩니다.
VM 크기를 조정할 때 VM의 신호에 따라 적절한 SKU를 선택하여 더 많은 CPU, 메모리 또는 스토리지 용량이 필요한지 여부를 결정하는 것이 중요합니다.
올바른 SKU를 선택하는 방법에 대한 자세한 내용은 다음 리소스를 사용할 수 있습니다.
VM 크기를 변경하는 옵션을 선택합니다.
Azure Portal을 사용하여 VM 크기를 변경하려면 다음을 수행합니다.
-
Azure Portal을 엽니다.
- 검색에 가상 머신 을 입력합니다.
서비스에서 가상 머신을 선택합니다.
-
가상 머신 페이지에서 크기를 조정할 가상 머신을 선택합니다.
- 왼쪽 메뉴의 가용성 + 배율 섹션에서 크기를 선택합니다.
- 사용 가능한 크기 목록에서 호환되는 새 크기를 선택한 다음 크기 조정을 선택합니다.
VM이 계속 실행 중이고 목록에 원하는 크기가 표시되지 않으면 가상 머신을 중지하면 더 많은 크기가 표시 될 수 있습니다.
PowerShell을 사용하여 VM의 크기를 변경하려면 다음을 수행합니다.
리소스 그룹 및 VM 이름 변수를 설정합니다. 값을 크기를 조정할 VM의 정보로 바꿉니다.
$resourceGroup = "myResourceGroup"
$vmName = "myVM"
VM이 호스트되는 하드웨어 클러스터에서 사용할 수 있는 VM 크기를 나열합니다.
Get-AzVMSize -ResourceGroupName $resourceGroup -VMName $vmName
VM의 크기를 새 크기로 조정합니다.
$vm = Get-AzVM -ResourceGroupName $resourceGroup -VMName $vmName
$vm.HardwareProfile.VmSize = "<newVMsize>"
Update-AzVM -VM $vm -ResourceGroupName $resourceGroup
PowerShell을 사용하여 가용성 집합에 없는 VM의 크기를 조정합니다.
이 Cloud Shell PowerShell 스크립트는 각각 리소스 그룹 이름, $resourceGroup$vm VM 이름 및 원하는 VM 크기를 사용하여 변수$size를 초기화합니다. 그런 다음 Get-AzVM cmdlet을 사용하여 Azure에서 VM 개체를 가져옵니다. 스크립트는 VM의 하드웨어 프로필 속성을 원하는 크기로 수정 VmSize 합니다. 마지막으로, cmdlet을 사용하여 Update-AzVM Azure의 VM에 이러한 변경 내용을 적용합니다.
# Set variables
$resourceGroup = 'myResourceGroup'
$vmName = 'myVM'
$size = 'Standard_DS3_v2'
# Get the VM
$vm = Get-AzVM -ResourceGroupName $resourceGroup -Name $vmName
# Change the VM size
$vm.HardwareProfile.VmSize = $size
# Update the VM
Update-AzVM -ResourceGroupName $resourceGroup -VM $vm
Azure Cloud Shell에서 스크립트를 실행하는 대신 머신에서 로컬로 실행할 수도 있습니다. 이 PowerShell 스크립트의 로컬 버전에는 Azure 모듈을 가져오고 Azure 계정을 인증하는 추가 단계가 포함되어 있습니다.
비고
로컬 PowerShell을 적용하려면 VM을 다시 시작해야 할 수 있습니다.
# Import the Azure module
Import-Module Az
# Login to your Azure account
Connect-AzAccount
# Set variables
$resourceGroup = 'myResourceGroup'
$vmName = 'myVM'
$size = 'Standard_DS3_v2'
# Select the subscription
Select-AzSubscription -SubscriptionId '<subscriptionID>'
# Get the VM
$vm = Get-AzVM -ResourceGroupName $resourceGroup -Name $vmName
# Change the VM size
$vm.HardwareProfile.VmSize = $size
# Update the VM
Update-AzVM -ResourceGroupName $resourceGroup -VM $vm
PowerShell을 사용하여 가용성 집합에서 VM 크기 조정
현재 VM을 호스팅하는 하드웨어 클러스터에서 가용성 집합의 VM에 대한 새 크기를 사용할 수 없는 경우 가용성 집합의 모든 VM을 할당 취소하여 VM 크기를 조정해야 합니다. 또한 하나의 VM 크기가 조정된 후 가용성 집합에서 다른 VM의 크기를 업데이트해야 할 수도 있습니다. 가용성 집합에서 VM의 크기를 조정하려면 아래 스크립트를 실행합니다.
이 스크립트는 변수 $resourceGroup, $vmName, $newVmSize, 및 $availabilitySetName를 설정합니다. 그런 다음 Get-AzVMSize를 사용하여 원하는 VM 크기를 사용할 수 있는지 확인하고, 출력에 원하는 크기가 포함되어 있는지 확인합니다. 원하는 크기를 사용할 수 없는 경우 스크립트는 가용성 집합의 모든 VM을 할당 취소하고 크기를 조정한 다음 다시 시작합니다. 원하는 크기를 사용할 수 있는 경우 스크립트는 VM의 크기를 조정합니다.
의 $resourceGroup$vmName$newVmSize 값을 사용자 고유의 $availabilitySetName값으로 바꿉습니다.
# Set variables
$resourceGroup = "myResourceGroup"
$vmName = "myVM"
$newVmSize = "<newVmSize>"
$availabilitySetName = "<availabilitySetName>"
# Check if the desired VM size is available
$availableSizes = Get-AzVMSize `
-ResourceGroupName $resourceGroup `
-VMName $vmName |
Select-Object -ExpandProperty Name
if ($availableSizes -notcontains $newVmSize) {
# Deallocate all VMs in the availability set
$as = Get-AzAvailabilitySet `
-ResourceGroupName $resourceGroup `
-Name $availabilitySetName
$virtualMachines = $as.VirtualMachinesReferences | Get-AzResource | Get-AzVM
$virtualMachines | Stop-AzVM -Force -NoWait
# Resize and restart the VMs in the availability set
$virtualMachines | Foreach-Object { $_.HardwareProfile.VmSize = $newVmSize }
$virtualMachines | Update-AzVM
$virtualMachines | Start-AzVM
exit
}
# Resize the VM
$vm = Get-AzVM `
-ResourceGroupName $resourceGroup `
-VMName $vmName
$vm.HardwareProfile.VmSize = $newVmSize
Update-AzVM `
-VM $vm `
-ResourceGroupName $resourceGroup
VM 크기를 조정하려면 최신 Azure CLI 가 설치되어 있어야 하며 az 로그인을 사용하여 Azure 계정에 로그인해야 합니다.
아래 스크립트는 크기를 조정하기 전에 원하는 VM 크기를 사용할 수 있는지 확인합니다. 원하는 크기를 사용할 수 없는 경우 스크립트는 오류 메시지와 함께 종료됩니다. 원하는 크기를 사용할 수 있는 경우 스크립트는 VM의 할당을 취소하고 크기를 조정한 다음 다시 시작합니다.
의 값을 사용자 고유의 resourceGroupvmsize 값으로 바꿉습니다.
# Set variables
resourceGroup=myResourceGroup
vm=myVM
size=Standard_DS3_v2
# Check if the desired VM size is available
if ! az vm list-vm-resize-options --resource-group $resourceGroup --name $vm --query "[].name" | grep -q $size; then
echo "The desired VM size is not available."
exit 1
fi
# Deallocate the VM
az vm deallocate --resource-group $resourceGroup --name $vm
# Resize the VM
az vm resize --resource-group $resourceGroup --name $vm --size $size
# Start the VM
az vm start --resource-group $resourceGroup --name $vm
Azure CLI를 사용하여 가용성 집합에서 VM의 크기를 조정합니다.
아래 스크립트는 변수 resourceGroup, vm, size를 설정합니다. 그런 다음 az vm list-vm-resize-options를 사용하여 원하는 VM 크기를 사용할 수 있는지 확인하고, 출력에 원하는 크기가 포함되어 있는지 확인합니다. 원하는 크기를 사용할 수 없는 경우 스크립트는 오류 메시지와 함께 종료됩니다. 원하는 크기를 사용할 수 있는 경우 스크립트는 VM의 할당을 취소하고 크기를 조정한 다음 다시 시작합니다.
의 값을 사용자 고유의 resourceGroupvmsize 값으로 바꿉습니다.
# Set variables
resourceGroup="myResourceGroup"
vmName="myVM"
newVmSize="<newVmSize>"
availabilitySetName="<availabilitySetName>"
# Check if the desired VM size is available
availableSizes=$(az vm list-vm-resize-options \
--resource-group $resourceGroup \
--name $vmName \
--query "[].name" \
--output tsv)
if [[ ! $availableSizes =~ $newVmSize ]]; then
# Deallocate all VMs in the availability set
vmIds=$(az vmss list-instances \
--resource-group $resourceGroup \
--name $availabilitySetName \
--query "[].instanceId" \
--output tsv)
az vm deallocate \
--ids $vmIds \
--no-wait
# Resize and restart the VMs in the availability set
az vmss update \
--resource-group $resourceGroup \
--name $availabilitySetName \
--set virtualMachineProfile.hardwareProfile.vmSize=$newVmSize
az vmss start \
--resource-group $resourceGroup \
--name $availabilitySetName \
--instance-ids $vmIds
exit
fi
# Resize the VM
az vm resize \
--resource-group $resourceGroup \
--name $vmName \
--size $newVmSize