다음을 통해 공유


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-AzureRmPublicIpAddressGet- 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

입력

String

PSVirtualMachineScaleSet

매개 변수: VirtualMachineScaleSet(ByValue)

List<T>[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]

출력

PSVirtualMachineScaleSet