적용 대상: ✔️ Linux VM ✔️ Windows VM ✔️ 유연한 확장 집합
이 문서에서는 기존 가상 머신의 VM 크기를 변경하는 방법을 보여 줍니다.
VM(가상 머신)을 만든 후 VM 크기를 변경하여 VM의 크기를 확장 또는 축소할 수 있습니다. 경우에 따라 먼저 VM의 할당을 취소해야 합니다. 현재 VM을 호스팅하는 동일한 하드웨어 클러스터에서 새 크기를 사용할 수 없는 경우 할당 해제가 필요할 수 있습니다. 할당 취소가 필요하지 않은 경우에도 가상 머신이 현재 실행 중인 경우 크기를 변경하면 다시 시작된다는 것을 이해하는 것이 중요합니다. 이러한 이유로 VM 크기 변경은 특히 VM에서 호스트되는 상태 저장 워크로드의 경우 중단 절차로 고려해야 합니다.

VM에서 Premium Storage를 사용하는 경우 크기의 s 버전을 선택하여 Premium Storage 지원을 받는지 확인합니다. 예를 들어 Standard_E4_v3 대신 Standard_E4s_v3을 선택합니다.
VM 크기 변경
- Azure Portal을 엽니다.
- 검색에서 가상 머신을 입력합니다. 서비스에서 가상 머신을 선택합니다.

- 가상 머신 페이지에서 크기를 조정하려는 가상 머신을 선택합니다.

- 왼쪽 메뉴에서 크기를 선택합니다. 사용 가능한 크기
목록에서 호환되는 새 크기를 선택합니다.
- 크기를 선택한 후 크기 조정을 선택합니다.

참고 항목
가상 머신이 현재 실행 중인 경우 크기를 변경하면 가상 머신이 다시 시작됩니다.
VM이 여전히 실행 중이고 목록에 원하는 크기가 표시되지 않는 경우 가상 머신을 중지하면 더 많은 크기가 표시될 수 있습니다.
Warning
VM의 할당이 취소되면 VM에 할당된 모든 동적 IP 주소도 해제됩니다. OS 및 데이터 디스크는 영향을 받지 않습니다.
프로덕션 VM의 크기를 조정하는 경우 Azure 용량 예약을 사용하여 해당 지역의 컴퓨팅 용량을 예약하는 것이 좋습니다.
리소스 그룹 이름 및 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 = "<newAv2VMsize>"
Update-AzVM -VM $vm -ResourceGroupName $resourceGroup
PowerShell을 사용하여 가용성 집합에 없는 VM의 크기 조정
이 Cloud Shell PowerShell 스크립트는 리소스 그룹 이름, VM 이름 및 원하는 VM 크기로 $resourceGroup
, $vm
및 $size
변수를 초기화합니다. 그런 다음, Get-AzVM
cmdlet을 사용하여 Azure에서 VM 개체를 검색합니다. 스크립트는 VM 하드웨어 프로필의 VmSize
속성을 원하는 크기로 수정합니다. 마지막으로 Update-AzVM
cmdlet을 사용하여 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
Warning
VM의 할당이 취소되면 VM에 할당된 모든 동적 IP 주소도 해제됩니다. OS 및 데이터 디스크는 영향을 받지 않습니다.
프로덕션 VM의 크기를 조정하는 경우 Azure 용량 예약을 사용하여 해당 지역의 컴퓨팅 용량을 예약하는 것이 좋습니다.
PowerShell을 사용하여 가용성 집합에서 VM 크기 조정
가용성 집합에서 VM의 새 크기를 현재 VM을 호스트하는 하드웨어 클러스터에서 사용할 수 없는 경우 가용성 집합의 모든 VM 할당을 취소하여 VM 크기를 조정해야 합니다. 또한 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
이 스크립트에서는 $resourceGroup
, $vmName
, $newVmSize
및 $availabilitySetName
변수를 설정합니다. 그런 다음, Get-AzVMSize
를 사용하고 출력에 원하는 크기가 포함되어 있는지 확인하여 원하는 VM 크기를 사용할 수 있는지 확인합니다. 원하는 크기를 사용할 수 없는 경우 스크립트는 가용성 집합의 모든 VM 할당을 취소하고 크기를 조정한 다음 다시 시작합니다. 원하는 크기를 사용할 수 있는 경우 스크립트는 VM의 크기를 조정합니다.
VM의 크기를 조정하려면 최신 Azure CLI를 설치하고 az 로그인을 사용하여 Azure 계정에 로그인해야 합니다.
아래 스크립트에서는 크기를 조정하기 전에 원하는 VM 크기를 사용할 수 있는지 확인합니다. 원하는 크기를 사용할 수 없는 경우 스크립트는 오류 메시지와 함께 종료됩니다. 원하는 크기를 사용할 수 있는 경우 스크립트는 VM의 할당을 취소하고 크기를 조정한 다음 다시 시작합니다. resourceGroup
, vm
및 size
의 값을 사용자 고유의 값으로 바꿀 수 있습니다.
# 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
Warning
VM의 할당이 취소되면 VM에 할당된 모든 동적 IP 주소도 해제됩니다. OS 및 데이터 디스크는 영향을 받지 않습니다.
프로덕션 VM의 크기를 조정하는 경우 Azure 용량 예약을 사용하여 해당 지역의 컴퓨팅 용량을 예약하는 것이 좋습니다.
Azure CLI를 사용하여 가용성 집합에서 VM의 크기를 조정합니다.
아래 스크립트에서는 resourceGroup
, vm
및 size
변수를 설정합니다. 그런 다음, az vm list-vm-resize-options
를 사용하고 출력에 원하는 크기가 포함되어 있는지 확인하여 원하는 VM 크기를 사용할 수 있는지 확인합니다. 원하는 크기를 사용할 수 없는 경우 스크립트는 오류 메시지와 함께 종료됩니다. 원하는 크기를 사용할 수 있는 경우 스크립트는 VM의 할당을 취소하고 크기를 조정한 다음 다시 시작합니다.
# 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
올바른 SKU 선택
VM 크기를 조정할 때 VM의 신호에 따라 적절한 SKU를 선택하여 더 많은 CPU, 메모리 또는 스토리지 용량이 필요한지 여부를 결정하는 것이 중요합니다.
- VM이 데이터베이스 서버 또는 트래픽이 많은 웹 서버와 같은 CPU 집약적 워크로드를 실행하는 경우 더 많은 CPU 코어가 있는 SKU를 선택해야 할 수 있습니다.
- VM이 기계 학습 모델 또는 빅 데이터 애플리케이션과 같은 메모리 집약적 워크로드를 실행하는 경우 메모리가 더 많은 SKU를 선택해야 할 수 있습니다.
- VM에 스토리지 용량이 부족한 경우 더 많은 스토리지가 있는 SKU를 선택해야 할 수 있습니다.
올바른 SKU에 대한 자세한 내용은 다음 리소스를 참조하세요.
- Azure의 VM 크기: 이 문서에서는 Azure에서 사용할 수 있는 모든 VM 크기를 나열합니다.
- Azure VM 선택기: 이 도구를 사용하면 워크로드 유형, OS 및 소프트웨어 및 배포 지역에 따라 올바른 VM SKU를 찾을 수 있습니다.
제한 사항
로컬 임시 디스크가 있는 VM 크기를 로컬 임시 디스크가 없는 VM 크기로 조정할 수 없으며 그 반대의 경우도 마찬가지입니다.
크기 조정에 사용할 수 있는 조합은 다음과 같습니다.
- VM(로컬 임시 디스크 있음) -> VM(로컬 임시 디스크 있음) 및
- VM(로컬 임시 디스크 없음) -> VM(로컬 임시 디스크 없음)
해결 방법은 로컬 임시 디스크가 있는 VM 크기에서 로컬 임시 디스크가 없는 VM 크기로 마이그레이션은 어떻게 하나요?를 참조하세요. 이 해결 방법을 사용하여 로컬 임시 디스크가 없는 VM의 크기를 로컬 임시 디스크가 있는 VM으로 조정할 수 있습니다. 로컬 임시 디스크가 없는 VM의 스냅샷을 만들기 > 스냅샷에서 디스크 만들기 > 로컬 임시 디스크가 있는 VM을 지원하는 적절한 VM 크기의 디스크에서 VM 만들기를 수행합니다.
다음 단계