New-AzureRmVmss
VMSS를 만듭니다.
Warning
AzureRM PowerShell 모듈은 2024년 2월 29일부터 공식적으로 사용되지 않습니다. 사용자는 지속적인 지원 및 업데이트를 보장하기 위해 AzureRM에서 Az PowerShell 모듈로 마이그레이션하는 것이 좋습니다.
AzureRM 모듈은 여전히 작동할 수 있지만 더 이상 유지 관리되거나 지원되지 않으므로 사용자의 재량에 따라 계속 사용할 수 있습니다. Az 모듈로 전환하는 방법에 대한 지침은 마이그레이션 리소스를 참조하세요.
구문
New-AzureRmVmss
[-ResourceGroupName] <String>
[-VMScaleSetName] <String>
[-VirtualMachineScaleSet] <PSVirtualMachineScaleSet>
[-AsJob]
[-DefaultProfile <IAzureContextContainer>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
New-AzureRmVmss
[[-ResourceGroupName] <String>]
[-VMScaleSetName] <String>
[-AsJob]
[-ImageName <String>]
-Credential <PSCredential>
[-InstanceCount <Int32>]
[-VirtualNetworkName <String>]
[-SubnetName <String>]
[-PublicIpAddressName <String>]
[-DomainNameLabel <String>]
[-SecurityGroupName <String>]
[-LoadBalancerName <String>]
[-BackendPort <Int32[]>]
[-Location <String>]
[-VmSize <String>]
[-UpgradePolicyMode <UpgradeMode>]
[-AllocationMethod <String>]
[-VnetAddressPrefix <String>]
[-SubnetAddressPrefix <String>]
[-FrontendPoolName <String>]
[-BackendPoolName <String>]
[-SystemAssignedIdentity]
[-UserAssignedIdentity <String>]
[-Zone <System.Collections.Generic.List`1[System.String]>]
[-NatBackendPort <Int32[]>]
[-DataDiskSizeInGb <Int32[]>]
[-DefaultProfile <IAzureContextContainer>]
[-SinglePlacementGroup]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
New-AzureRmVmss cmdlet은 Azure에서 VMSS(Virtual Machine Scale Set)를 만듭니다.
간단한 매개 변수 집합(SimpleParameterSet
)을 사용하여 미리 설정된 VMSS 및 관련 리소스를 빠르게 만듭니다. 만들기 전에 VMSS의 각 구성 요소와 연결된 각 리소스를 정확하게 구성해야 하는 경우 고급 시나리오에 기본 매개 변수 집합(DefaultParameter
)을 사용합니다.
예제
예제 1: **'SimpleParameterSet'**을 사용하여 VMSS 만들기
$vmssName = <VMSSNAME>
# Create credentials, I am using one way to create credentials, there are others as well.
# Pick one that makes the most sense according to your use case.
$vmPassword = ConvertTo-SecureString <PASSWORD_HERE> -AsPlainText -Force
$vmCred = New-Object System.Management.Automation.PSCredential(<USERNAME_HERE>, $vmPassword)
#Create a VMSS using the default settings
New-AzureRmVmss -Credential $vmCred -VMScaleSetName $vmssName
위의 명령은 이름을 $vmssName
사용하여 다음을 만듭니다.
- 리소스 그룹
- 가상 네트워크
- 부하 분산 장치
- 공용 IP
- 인스턴스가 2개인 VMSS
VMSS에서 VM에 대해 선택한 기본 이미지는 SKU입니다 2016-Datacenter Windows Server
. Standard_DS1_v2
예제 2: **'DefaultParameterSet'**을 사용하여 VMSS 만들기
# Common
$LOC = "WestUs";
$RGName = "rgkyvms";
New-AzureRmResourceGroup -Name $RGName -Location $LOC -Force;
# SRP
$STOName = "STO" + $RGName;
$STOType = "Standard_GRS";
New-AzureRmStorageAccount -ResourceGroupName $RGName -Name $STOName -Location $LOC -Type $STOType;
$STOAccount = Get-AzureRmStorageAccount -ResourceGroupName $RGName -Name $STOName;
# NRP
$SubNet = New-AzureRmVirtualNetworkSubnetConfig -Name ("subnet" + $RGName) -AddressPrefix "10.0.0.0/24";
$VNet = New-AzureRmVirtualNetwork -Force -Name ("vnet" + $RGName) -ResourceGroupName $RGName -Location $LOC -AddressPrefix "10.0.0.0/16" -DnsServer "10.1.1.1" -Subnet $SubNet;
$VNet = Get-AzureRmVirtualNetwork -Name ('vnet' + $RGName) -ResourceGroupName $RGName;
$SubNetId = $VNet.Subnets[0].Id;
$PubIP = New-AzureRmPublicIpAddress -Force -Name ("PubIP" + $RGName) -ResourceGroupName $RGName -Location $LOC -AllocationMethod Dynamic -DomainNameLabel ("PubIP" + $RGName);
$PubIP = Get-AzureRmPublicIpAddress -Name ("PubIP" + $RGName) -ResourceGroupName $RGName;
# Create LoadBalancer
$FrontendName = "fe" + $RGName
$BackendAddressPoolName = "bepool" + $RGName
$ProbeName = "vmssprobe" + $RGName
$InboundNatPoolName = "innatpool" + $RGName
$LBRuleName = "lbrule" + $RGName
$LBName = "vmsslb" + $RGName
$Frontend = New-AzureRmLoadBalancerFrontendIpConfig -Name $FrontendName -PublicIpAddress $PubIP
$BackendAddressPool = New-AzureRmLoadBalancerBackendAddressPoolConfig -Name $BackendAddressPoolName
$Probe = New-AzureRmLoadBalancerProbeConfig -Name $ProbeName -RequestPath healthcheck.aspx -Protocol http -Port 80 -IntervalInSeconds 15 -ProbeCount 2
$InboundNatPool = New-AzureRmLoadBalancerInboundNatPoolConfig -Name $InboundNatPoolName -FrontendIPConfigurationId `
$Frontend.Id -Protocol Tcp -FrontendPortRangeStart 3360 -FrontendPortRangeEnd 3362 -BackendPort 3370;
$LBRule = New-AzureRmLoadBalancerRuleConfig -Name $LBRuleName `
-FrontendIPConfiguration $Frontend -BackendAddressPool $BackendAddressPool `
-Probe $Probe -Protocol Tcp -FrontendPort 80 -BackendPort 80 `
-IdleTimeoutInMinutes 15 -EnableFloatingIP -LoadDistribution SourceIP;
$ActualLb = New-AzureRmLoadBalancer -Name $LBName -ResourceGroupName $RGName -Location $LOC `
-FrontendIpConfiguration $Frontend -BackendAddressPool $BackendAddressPool `
-Probe $Probe -LoadBalancingRule $LBRule -InboundNatPool $InboundNatPool;
$ExpectedLb = Get-AzureRmLoadBalancer -Name $LBName -ResourceGroupName $RGName
# New VMSS Parameters
$VMSSName = "VMSS" + $RGName;
$AdminUsername = "Admin01";
$AdminPassword = "p4ssw0rd@123" + $RGName;
$PublisherName = "MicrosoftWindowsServer"
$Offer = "WindowsServer"
$Sku = "2012-R2-Datacenter"
$Version = "latest"
$VHDContainer = "https://" + $STOName + ".blob.core.contoso.net/" + $VMSSName;
$ExtName = "CSETest";
$Publisher = "Microsoft.Compute";
$ExtType = "BGInfo";
$ExtVer = "2.1";
#IP Config for the NIC
$IPCfg = New-AzureRmVmssIPConfig -Name "Test" `
-LoadBalancerInboundNatPoolsId $ExpectedLb.InboundNatPools[0].Id `
-LoadBalancerBackendAddressPoolsId $ExpectedLb.BackendAddressPools[0].Id `
-SubnetId $SubNetId;
#VMSS Config
$VMSS = New-AzureRmVmssConfig -Location $LOC -SkuCapacity 2 -SkuName "Standard_A2" -UpgradePolicyMode "Automatic" `
| Add-AzureRmVmssNetworkInterfaceConfiguration -Name "Test" -Primary $True -IPConfiguration $IPCfg `
| Add-AzureRmVmssNetworkInterfaceConfiguration -Name "Test2" -IPConfiguration $IPCfg `
| Set-AzureRmVmssOSProfile -ComputerNamePrefix "Test" -AdminUsername $AdminUsername -AdminPassword $AdminPassword `
| Set-AzureRmVmssStorageProfile -Name "Test" -OsDiskCreateOption 'FromImage' -OsDiskCaching "None" `
-ImageReferenceOffer $Offer -ImageReferenceSku $Sku -ImageReferenceVersion $Version `
-ImageReferencePublisher $PublisherName -VhdContainer $VHDContainer `
| Add-AzureRmVmssExtension -Name $ExtName -Publisher $Publisher -Type $ExtType -TypeHandlerVersion $ExtVer -AutoUpgradeMinorVersion $True
#Create the VMSS
New-AzureRmVmss -ResourceGroupName $RGName -Name $VMSSName -VirtualMachineScaleSet $VMSS;
위의 복잡한 예제에서는 VMSS를 만듭니다. 다음은 무슨 일이 일어나고 있는지에 대한 설명입니다.
- 첫 번째 명령은 지정된 이름과 위치를 사용하여 리소스 그룹을 만듭니다.
- 두 번째 명령은 New-AzureRmStorageAccount cmdlet을 사용하여 스토리지 계정을 만듭니다.
- 그런 다음 세 번째 명령은 Get-AzureRmStorageAccount cmdlet을 사용하여 두 번째 명령에서 만든 스토리지 계정을 가져와 결과를 $STOAccount 변수에 저장합니다.
- 다섯 번째 명령은 New-AzureRmVirtualNetworkSubnetConfig cmdlet을 사용하여 서브넷을 만들고 결과를 $SubNet 변수에 저장합니다.
- 여섯 번째 명령은 New-AzureRmVirtualNetwork cmdlet을 사용하여 가상 네트워크를 만들고 결과를 $VNet 변수에 저장합니다.
- 일곱 번째 명령은 Get-AzureRmVirtualNetwork를 사용하여 여섯 번째 명령에서 만든 가상 네트워크에 대한 정보를 가져와서 $VNet 변수에 저장합니다.
- 여덟 번째 및 아홉 번째 명령은 New-AzureRmPublicIpAddress 및 Get- AzureRmPublicIpAddress를 사용하여 해당 공용 IP 주소에서 정보를 만들고 가져옵니다.
- 명령은 $PubIP 변수에 정보를 저장합니다.
- 10번째 명령은 New- AzureRmLoadBalancerFrontendIpConfig cmdlet을 사용하여 프런트 엔드 부하 분산 장치를 만들고 결과를 $Frontend 변수에 저장합니다.
- 11번째 명령은 New-AzureRmLoadBalancerBackendAddressPoolConfig를 사용하여 백 엔드 주소 풀 구성을 만들고 결과를 $BackendAddressPool 변수에 저장합니다.
- 12번째 명령은 New-AzureRmLoadBalancerProbeConfig를 사용하여 프로브를 만들고 프로브 정보를 $Probe 변수에 저장합니다.
- 13번째 명령은 New-AzureRmLoadBalancerInboundNatPoolConfig cmdlet을 사용하여 부하 분산 장치 NAT(인바운드 네트워크 주소 변환) 풀 구성을 만듭니다.
- 14번째 명령은 New-AzureRmLoadBalancerRuleConfig를 사용하여 부하 분산 장치 규칙 구성을 만들고 결과를 $LBRule 변수에 저장합니다.
- 15번째 명령은 New-AzureRmLoadBalancer cmdlet을 사용하여 부하 분산 장치를 만들고 결과를 $ActualLb 변수에 저장합니다.
- 16번째 명령은 Get-AzureRmLoadBalancer를 사용하여 15번째 명령에서 만든 부하 분산 장치에 대한 정보를 가져와서 $ExpectedLb 변수에 저장합니다.
- 17번째 명령은 New-AzureRmVmssIPConfig cmdlet을 사용하여 VMSS IP 구성을 만들고 $IPCfg 변수에 정보를 저장합니다.
- 18번째 명령은 New-AzureRmVmssConfig cmdlet을 사용하여 VMSS 구성 개체를 만들고 결과를 $VMSS 변수에 저장합니다.
- 19번째 명령은 New-AzureRmVmss cmdlet을 사용하여 VMSS를 만듭니다.
매개 변수
-AllocationMethod
확장 집합의 공용 IP 주소(정적 또는 동적)에 대한 할당 방법입니다. 값이 제공되지 않으면 할당이 정적입니다.
형식: | String |
허용되는 값: | Static, Dynamic |
Position: | Named |
Default value: | Static |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-AsJob
백그라운드에서 cmdlet을 실행하고 작업을 반환하여 진행률을 추적합니다.
형식: | SwitchParameter |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-BackendPoolName
이 확장 집합의 부하 분산 장치에서 사용할 백 엔드 주소 풀의 이름입니다. 값이 제공되지 않으면 확장 집합과 동일한 이름으로 새 백 엔드 풀이 만들어집니다.
형식: | String |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-BackendPort
확장 집합 부하 분산 장치에서 확장 집합의 VM과 통신하는 데 사용하는 백 엔드 포트 번호입니다. 값을 지정하지 않으면 포트 3389 및 5985가 Windows VMS에 사용되고 포트 22는 Linux VM에 사용됩니다.
형식: | Int32[] |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Confirm
cmdlet을 실행하기 전에 확인 메시지가 표시됩니다.
형식: | SwitchParameter |
별칭: | cf |
Position: | Named |
Default value: | False |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Credential
이 확장 집합의 VM에 대한 관리자 자격 증명(사용자 이름 및 암호)입니다.
형식: | PSCredential |
Position: | Named |
Default value: | None |
필수: | True |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-DataDiskSizeInGb
데이터 디스크의 크기를 GB 단위로 지정합니다.
형식: | Int32[] |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-DefaultProfile
Azure와의 통신에 사용되는 자격 증명, 계정, 테넌트 및 구독입니다.
형식: | IAzureContextContainer |
별칭: | AzureRmContext, AzureCredential |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-DomainNameLabel
이 확장 집합의 공용 FQDN(정규화된 도메인 이름)에 대한 도메인 이름 레이블입니다. 확장 집합에 자동으로 할당되는 도메인 이름의 첫 번째 구성 요소입니다. 자동으로 할당된 도메인 이름은 양식(<DomainNameLabel>.<Location>.cloudapp.azure.com
)을 사용합니다. 값이 제공되지 않으면 기본 도메인 이름 레이블은 <ScaleSetName>
연결 및 <ResourceGroupName>
.
형식: | String |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-FrontendPoolName
확장 집합 부하 분산 장치에서 사용할 프런트 엔드 주소 풀의 이름입니다. 값이 제공되지 않으면 확장 집합과 동일한 이름으로 새 프런트 엔드 주소 풀이 만들어집니다.
형식: | String |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-ImageName
이 확장 집합에 있는 VM에 대한 이미지의 이름입니다. 값이 제공되지 않으면 "Windows Server 2016 DataCenter" 이미지가 사용됩니다.
형식: | String |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-InstanceCount
확장 집합의 VM 이미지 수입니다. 값이 제공되지 않으면 2개의 인스턴스가 만들어집니다.
형식: | Int32 |
Position: | Named |
Default value: | 2 |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-LoadBalancerName
이 확장 집합에 사용할 부하 분산 장치의 이름입니다. 값이 지정되지 않은 경우 확장 집합과 동일한 이름을 사용하는 새 부하 분산 장치가 만들어집니다.
형식: | String |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Location
이 확장 집합을 만들 Azure 위치입니다. 값이 지정되지 않은 경우 위치는 매개 변수에서 참조되는 다른 리소스의 위치에서 유추됩니다.
형식: | String |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-NatBackendPort
인바운드 네트워크 주소 변환을 위한 백 엔드 포트입니다.
형식: | Int32[] |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-PublicIpAddressName
이 확장 집합에 사용할 공용 IP 주소의 이름입니다. 값이 제공되지 않으면 확장 집합과 이름이 같은 새 공용 IPAddress가 만들어집니다.
형식: | String |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-ResourceGroupName
VMSS의 리소스 그룹 이름을 지정합니다. 값을 지정하지 않으면 확장 집합과 동일한 이름을 사용하여 새 ResourceGroup이 만들어집니다.
형식: | String |
Position: | 1 |
Default value: | None |
필수: | True |
파이프라인 입력 허용: | True |
와일드카드 문자 허용: | False |
-SecurityGroupName
이 확장 집합에 적용할 네트워크 보안 그룹의 이름입니다. 값이 제공되지 않으면 확장 집합과 이름이 같은 기본 네트워크 보안 그룹이 만들어지고 확장 집합에 적용됩니다.
형식: | String |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-SinglePlacementGroup
단일 배치 그룹에서 확장 집합을 만들려면 이 값을 사용합니다. 기본값은 여러 그룹입니다.
형식: | SwitchParameter |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-SubnetAddressPrefix
ScaleSet에서 사용할 서브넷의 주소 접두사입니다. 값이 제공되지 않으면 기본 서브넷 설정(192.168.1.0/24)이 적용됩니다.
형식: | String |
Position: | Named |
Default value: | 192.168.1.0/24 |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-SubnetName
이 확장 집합에 사용할 서브넷의 이름입니다. 값이 제공되지 않으면 확장 집합과 동일한 이름으로 새 서브넷이 만들어집니다.
형식: | String |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-SystemAssignedIdentity
매개 변수가 있는 경우 확장 집합의 VM에 자동 생성되는 관리되는 시스템 ID가 할당됩니다.
형식: | SwitchParameter |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-UpgradePolicyMode
이 확장 집합의 VM 인스턴스에 대한 업그레이드 정책 모드입니다. 업그레이드 정책은 자동, 수동 또는 롤링 업그레이드를 지정할 수 있습니다.
형식: | UpgradeMode |
허용되는 값: | Automatic, Manual, Rolling |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-UserAssignedIdentity
확장 집합의 VM에 할당해야 하는 관리 서비스 ID의 이름입니다.
형식: | String |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-VirtualMachineScaleSet
이 cmdlet에서 만드는 VMSS의 속성을 포함하는 VirtualMachineScaleSet 개체를 지정합니다.
형식: | PSVirtualMachineScaleSet |
Position: | 3 |
Default value: | None |
필수: | True |
파이프라인 입력 허용: | True |
와일드카드 문자 허용: | False |
-VirtualNetworkName
이 확장 집합에 사용할 Virtual Network의 이름입니다. 값이 제공되지 않으면 확장 집합과 이름이 같은 새 가상 네트워크가 만들어집니다.
형식: | String |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-VMScaleSetName
이 cmdlet에서 만드는 VMSS의 이름을 지정합니다.
형식: | String |
별칭: | Name |
Position: | 2 |
Default value: | None |
필수: | True |
파이프라인 입력 허용: | True |
와일드카드 문자 허용: | False |
-VmSize
이 확장 집합의 VM 인스턴스 크기입니다. 크기가 지정되지 않은 경우 기본 크기(Standard_DS1_v2)가 사용됩니다.
형식: | String |
Position: | Named |
Default value: | Standard_DS1_v2 |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-VnetAddressPrefix
이 확장 집합에 사용되는 가상 네트워크의 주소 접두사입니다. 값이 제공되지 않으면 기본 가상 네트워크 주소 접두사 설정(192.168.0.0/16)이 사용됩니다.
형식: | String |
Position: | Named |
Default value: | 192.168.0.0/16 |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-WhatIf
cmdlet이 실행될 경우 결과 동작을 표시합니다. cmdlet이 실행되지 않습니다.
형식: | SwitchParameter |
별칭: | wi |
Position: | Named |
Default value: | False |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Zone
리소스에 할당된 IP를 나타내는 가용성 영역의 목록입니다.
형식: | List<T>[String] |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | True |
와일드카드 문자 허용: | False |
입력
매개 변수: VirtualMachineScaleSet(ByValue)
List<T>[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]