Azure PowerShell을 사용하여 근접 배치 그룹에 VM 배포
적용 대상: ✔️ Linux VM ✔️ Windows VM
VM을 최대한 가깝게 유지하고, 대기 시간을 최대한 줄이려면, VM을 근접 배치 그룹 내에 배포해야 합니다.
근접 배치 그룹은 Azure 컴퓨팅 리소스가 물리적으로 서로 가까운 위치에 있도록 하는 데 사용되는 논리적 그룹화입니다. 근접 배치 그룹은 짧은 대기 시간이 필요한 워크로드에 유용합니다.
근접 배치 그룹 만들기
New-AzProximityPlacementGroup cmdlet을 사용하여 근접 배치 그룹을 만듭니다.
$resourceGroup = "myPPGResourceGroup"
$location = "East US"
$ppgName = "myPPG"
$zone = "1"
$vmSize1 = "Standard_E64s_v4"
$vmSize2 = "Standard_M416ms_v2"
New-AzResourceGroup -Name $resourceGroup -Location $location
$ppg = New-AzProximityPlacementGroup `
-Location $location `
-Name $ppgName `
-ResourceGroupName $resourceGroup `
-ProximityPlacementGroupType Standard `
-Zone $zone `
-IntentVMSizeList $vmSize1, $vmSize2
근접 배치 그룹 나열
Get-AzProximityPlacementGroup cmdlet을 사용하여 모든 근접 배치 그룹을 나열할 수 있습니다.
Get-AzProximityPlacementGroup -ResourceGroupName $resourceGroup -Name $ppgName
ResourceGroupName : myPPGResourceGroup
ProximityPlacementGroupType : Standard
Id : /subscriptions/[subscriptionId]/resourceGroups/myPPGResourceGroup/providers/Microsoft.Compute/proximityPlacementGroups/myPPG
Name : myPPG
Type : Microsoft.Compute/proximityPlacementGroups
Location : eastus
Tags : {}
Intent :
VmSizes[0] : Standard_E64s_v4
VmSizes[1] : Standard_M416ms_v2
Zones[0] : 1
VM 만들기
New-AzVM을 사용하여 VM을 만들 경우 -ProximityPlacementGroup $ppg.Id
를 사용하여 근접 배치 그룹 ID를 참조하여 근접 배치 그룹에 VM을 만듭니다.
$vmName = "myVM"
New-AzVm `
-ResourceGroupName $resourceGroup `
-Name $vmName `
-Location $location `
-ProximityPlacementGroup $ppg.Id
Get-AzProximityPlacementGroup를 사용하여 배치 그룹에서 VM을 확인할 수 있습니다.
Get-AzProximityPlacementGroup -ResourceId $ppg.Id |
Format-Table -Property VirtualMachines -Wrap
기존 VM을 근접 배치 그룹으로 이동
근접 배치 그룹에 기존 VM을 추가할 수도 있습니다. 먼저 VM의 할당을 취소한 다음에 VM을 업데이트하고 다시 시작해야 합니다.
$ppg = Get-AzProximityPlacementGroup -ResourceGroupName myPPGResourceGroup -Name myPPG
$vm = Get-AzVM -ResourceGroupName myResourceGroup -Name myVM
Stop-AzVM -Name $vm.Name -ResourceGroupName $vm.ResourceGroupName
Update-AzVM -VM $vm -ResourceGroupName $vm.ResourceGroupName -ProximityPlacementGroupId $ppg.Id
Start-AzVM -Name $vm.Name -ResourceGroupName $vm.ResourceGroupName
기존 VM을 근접 배치 그룹에서 제거
근접 배치 그룹에서 VM을 제거하려면 먼저 VM의 할당을 취소한 다음 VM을 업데이트하고 다시 시작해야 합니다.
$ppg = Get-AzProximityPlacementGroup -ResourceGroupName myPPGResourceGroup -Name myPPG
$vm = Get-AzVM -ResourceGroupName myResourceGroup -Name myVM
Stop-AzVM -Name $vm.Name -ResourceGroupName $vm.ResourceGroupName
$vm.ProximityPlacementGroup = ""
Update-AzVM -VM $vm -ResourceGroupName $vm.ResourceGroupName
Start-AzVM -Name $vm.Name -ResourceGroupName $vm.ResourceGroupName
가용성 집합
또한 근접 배치 그룹에 가용성 집합을 만들 수 있습니다. New-AzAvailabilitySet cmdlet과 동일한 -ProximityPlacementGroup
매개 변수를 사용하여 가용성 집합을 만들면 가용성 집합에서 만든 모든 VM이 동일한 근접 배치 그룹에도 만들어집니다.
근접 배치 그룹에 기존 가용성 집합을 추가하거나 제거하려면 먼저 가용성 집합의 모든 VM을 중지해야 합니다.
기존 가용성 집합을 근접 배치 그룹으로 이동
$resourceGroup = "myResourceGroup"
$avSetName = "myAvailabilitySet"
$avSet = Get-AzAvailabilitySet -ResourceGroupName $resourceGroup -Name $avSetName
$vmIds = $avSet.VirtualMachinesReferences
foreach ($vmId in $vmIDs){
$string = $vmID.Id.Split("/")
$vmName = $string[8]
Stop-AzVM -ResourceGroupName $resourceGroup -Name $vmName -Force
}
$ppg = Get-AzProximityPlacementGroup -ResourceGroupName myPPG -Name myPPG
Update-AzAvailabilitySet -AvailabilitySet $avSet -ProximityPlacementGroupId $ppg.Id
foreach ($vmId in $vmIDs){
$string = $vmID.Id.Split("/")
$vmName = $string[8]
Start-AzVM -ResourceGroupName $resourceGroup -Name $vmName
}
기존 가용성 집합을 근접 배치 그룹에서 제거
$resourceGroup = "myResourceGroup"
$avSetName = "myAvailabilitySet"
$avSet = Get-AzAvailabilitySet -ResourceGroupName $resourceGroup -Name $avSetName
$vmIds = $avSet.VirtualMachinesReferences
foreach ($vmId in $vmIDs){
$string = $vmID.Id.Split("/")
$vmName = $string[8]
Stop-AzVM -ResourceGroupName $resourceGroup -Name $vmName -Force
}
$avSet.ProximityPlacementGroup = ""
Update-AzAvailabilitySet -AvailabilitySet $avSet
foreach ($vmId in $vmIDs){
$string = $vmID.Id.Split("/")
$vmName = $string[8]
Start-AzVM -ResourceGroupName $resourceGroup -Name $vmName
}
확장 집합
또한 근접 배치 그룹에 확장 집합을 만들 수 있습니다. New-AzVmss와 동일한 -ProximityPlacementGroup
매개 변수를 사용하여 확장 집합을 만들면 모든 인스턴스가 동일한 근접 배치 그룹에 만들어집니다.
근접 배치 그룹에 기존 확장 집합을 추가하거나 제거하려면 먼저 확장 집합을 중지해야 합니다.
기존 확장 집합을 근접 배치 그룹으로 이동
$ppg = Get-AzProximityPlacementGroup -ResourceGroupName myPPG -Name myPPG
$vmss = Get-AzVmss -ResourceGroupName myVMSSResourceGroup -VMScaleSetName myScaleSet
Stop-AzVmss -VMScaleSetName $vmss.Name -ResourceGroupName $vmss.ResourceGroupName
Update-AzVmss -VMScaleSetName $vmss.Name -ResourceGroupName $vmss.ResourceGroupName -ProximityPlacementGroupId $ppg.Id
Start-AzVmss -VMScaleSetName $vmss.Name -ResourceGroupName $vmss.ResourceGroupName
기존 확장 집합을 근접 배치 그룹에서 제거
$vmss = Get-AzVmss -ResourceGroupName myVMSSResourceGroup -VMScaleSetName myScaleSet
Stop-AzVmss -VMScaleSetName $vmss.Name -ResourceGroupName $vmss.ResourceGroupName
$vmss.ProximityPlacementGroup = ""
Update-AzVmss -VirtualMachineScaleSet $vmss -VMScaleSetName $vmss.Name -ResourceGroupName $vmss.ResourceGroupName
Start-AzVmss -VMScaleSetName $vmss.Name -ResourceGroupName $vmss.ResourceGroupName
다음 단계
또한 Azure CLI를 사용하여 근접 배치 그룹을 만들 수도 있습니다.