다음을 통해 공유


PowerShell을 사용하여 여러 NIC가 있는 VM(클래식) 만들기

Azure에서 VM(가상 머신)을 만들고 각 VM에 여러 NIC(네트워크 인터페이스)를 연결할 수 있습니다. 여러 NIC를 사용하면 NIC 간에 트래픽 유형을 분리할 수 있습니다. 예를 들어 한 NIC는 인터넷과 통신할 수 있고 다른 NIC는 인터넷에 연결되지 않은 내부 리소스와만 통신할 수 있습니다. 애플리케이션 배달 및 WAN 최적화 솔루션과 같은 많은 네트워크 가상 어플라이언스에는 여러 NIC 간에 네트워크 트래픽을 구분하는 기능이 필요합니다.

중요합니다

Azure에는 리소스를 만들고 사용하기 위한 Resource Manager 및 클래식이라는 두 가지 배포 모델이 있습니다. 이 문서에서는 클래식 배포 모델 사용에 대해 설명합니다. 대부분의 새 배포는 Resource Manager 모델을 사용하는 것이 좋습니다. Resource Manager 배포 모델을 사용하여 이러한 단계를 수행하는 방법을 알아봅니다.

시나리오

이 문서에서는 특정 시나리오에서 VM에서 여러 NIC를 사용하는 배포를 안내합니다. 이 시나리오에서는 Azure에서 호스트되는 2계층 IaaS 워크로드가 있습니다. 각 계층은 VNet(가상 네트워크)의 자체 서브넷에 배포됩니다. 프런트 엔드 계층은 여러 웹 서버로 구성되며, 고가용성을 위해 부하 분산 장치 집합에 그룹화됩니다. 백 엔드 계층은 여러 데이터베이스 서버로 구성됩니다. 데이터베이스 서버는 각각 2개의 NIC를 사용하여 배포되며, 하나는 데이터베이스 액세스를 위해, 다른 하나는 관리를 위해 배포됩니다. 이 시나리오에는 각 서브넷에 허용되는 트래픽을 제어하는 NSG(네트워크 보안 그룹)와 배포의 NIC도 포함됩니다. 다음 그림에서는 이 시나리오의 기본 아키텍처를 보여줍니다.

다중NIC 시나리오

다음 단계에서는 웹 서버용 IaaSStory 라는 리소스 그룹과 DB 서버에 대해 IaaSStory-BackEnd 라는 리소스 그룹을 사용합니다.

필수 조건

DB 서버를 만들려면 이 시나리오에 필요한 모든 리소스를 사용하여 IaaSStory 리소스 그룹을 만들어야 합니다. 이러한 리소스를 만들려면 다음 단계를 완료합니다. 가상 네트워크 만들기 문서의 단계에 따라 가상 네트워크를 만듭니 다.

필수 조건: Azure PowerShell 모듈 설치

이 문서의 단계를 수행하려면 Azure PowerShell 모듈을 설치하고 구성해야 합니다. 모든 지침을 완료해야 합니다. 설치가 끝나면 Azure에 로그인하고 구독을 선택하십시오.

비고

이 단계를 완료하려면 Azure 계정이 있어야 합니다. Azure 계정이 없는 경우 평가판등록할 수 있습니다.

백 엔드 VM 만들기

백 엔드 VM은 다음 리소스를 만드는 데 따라 달라집니다.

  • 백 엔드 서브넷. 데이터베이스 서버는 트래픽을 분리하기 위해 별도의 서브넷의 일부가 됩니다. 아래 스크립트는 이 서브넷이 WTestVnet이라는 vnet에 존재할 것으로 예상합니다.
  • 데이터 디스크에 대한 스토리지 계정입니다. 성능을 향상시키려면 데이터베이스 서버의 데이터 디스크는 프리미엄 스토리지 계정이 필요한 SSD(반도체 드라이브) 기술을 사용합니다. Premium Storage를 지원하기 위해 배포하는 Azure 위치를 확인합니다.
  • 가용성 집합. 유지 관리 중에 하나 이상의 VM이 작동 및 실행되도록 모든 데이터베이스 서버가 단일 가용성 집합에 추가됩니다.

1단계 - 스크립트 시작

여기에서 사용되는 전체 PowerShell 스크립트를 다운로드할 수 있습니다. 아래 단계에 따라 사용자 환경에서 작동하도록 스크립트를 변경합니다.

  1. 필수 구성 요소에서 위에 배포된 기존 리소스 그룹에 따라 아래 변수의 값을 변경합니다.

     $location              = "West US"
     $vnetName              = "WTestVNet"
     $backendSubnetName     = "BackEnd"
    
  2. 백 엔드 배포에 사용할 값에 따라 아래 변수의 값을 변경합니다.

     $backendCSName         = "IaaSStory-Backend"
     $prmStorageAccountName = "iaasstoryprmstorage"
     $avSetName             = "ASDB"
     $vmSize                = "Standard_DS3"
     $diskSize              = 127
     $vmNamePrefix          = "DB"
     $dataDiskSuffix        = "datadisk"
     $ipAddressPrefix       = "192.168.2."
     $numberOfVMs           = 2
    

2단계 - VM에 필요한 리소스 만들기

모든 VM에 대한 데이터 디스크에 대한 새 클라우드 서비스 및 스토리지 계정을 만들어야 합니다. 또한 VM에 대한 이미지 및 로컬 관리자 계정을 지정해야 합니다. 이러한 리소스를 만들려면 다음 단계를 완료합니다.

  1. 새 클라우드 서비스를 만듭니다.

     New-AzureService -ServiceName $backendCSName -Location $location
    
  2. 새 Premium Storage 계정을 만듭니다.

     New-AzureStorageAccount -StorageAccountName $prmStorageAccountName `
     -Location $location -Type Premium_LRS
    
  3. 위에서 만든 스토리지 계정을 구독의 현재 스토리지 계정으로 설정합니다.

     $subscription = Get-AzureSubscription | where {$_.IsCurrent -eq $true}  
     Set-AzureSubscription -SubscriptionName $subscription.SubscriptionName `
     -CurrentStorageAccountName $prmStorageAccountName
    
  4. VM에 대한 이미지를 선택합니다.

     $image = Get-AzureVMImage `
     | where{$_.ImageFamily -eq "SQL Server 2014 RTM Web on Windows Server 2012 R2"} `
     | sort PublishedDate -Descending `
     | select -ExpandProperty ImageName -First 1
    
  5. 로컬 관리자 계정 자격 증명을 설정합니다.

     $cred = Get-Credential -Message "Enter username and password for local admin account"
    

3단계 - VM 만들기

루프를 사용하여 원하는 만큼 VM을 만들고 루프 내에서 필요한 NIC 및 VM을 만들어야 합니다. NIC 및 VM을 만들려면 다음 단계를 실행합니다.

  1. 루프를 for 시작하여 변수 값 $numberOfVMs 에 따라 VM과 두 개의 NIC를 필요한 횟수만큼 만드는 명령을 반복합니다.

     for ($suffixNumber = 1; $suffixNumber -le $numberOfVMs; $suffixNumber++){
    
  2. VMConfig VM에 대한 이미지, 크기 및 가용성 집합을 지정하는 개체를 만듭니다.

     $vmName = $vmNamePrefix + $suffixNumber
     $vmConfig = New-AzureVMConfig -Name $vmName `
     	-ImageName $image `
     	-InstanceSize $vmSize `
     	-AvailabilitySetName $avSetName
    
  3. VM을 Windows VM으로 프로비전합니다.

     Add-AzureProvisioningConfig -VM $vmConfig -Windows `
     	-AdminUsername $cred.UserName `
     	-Password $cred.GetNetworkCredential().Password
    
  4. 기본 NIC를 설정하고 고정 IP 주소를 할당합니다.

     Set-AzureSubnet			-SubnetNames $backendSubnetName -VM $vmConfig
     Set-AzureStaticVNetIP 	-IPAddress ($ipAddressPrefix+$suffixNumber+3) -VM $vmConfig
    
  5. 각 VM에 대해 두 번째 NIC를 추가합니다.

     Add-AzureNetworkInterfaceConfig -Name ("RemoteAccessNIC"+$suffixNumber) `
     -SubnetName $backendSubnetName `
     -StaticVNetIPAddress ($ipAddressPrefix+(53+$suffixNumber)) `
     -VM $vmConfig
    
  6. 각 VM에 대한 데이터 디스크에 만듭니다.

     $dataDisk1Name = $vmName + "-" + $dataDiskSuffix + "-1"    
     Add-AzureDataDisk -CreateNew -VM $vmConfig `
     -DiskSizeInGB $diskSize `
     -DiskLabel $dataDisk1Name `
     -LUN 0
    
     $dataDisk2Name = $vmName + "-" + $dataDiskSuffix + "-2"   
     Add-AzureDataDisk -CreateNew -VM $vmConfig `
     -DiskSizeInGB $diskSize `
     -DiskLabel $dataDisk2Name `
     -LUN 1
    
  7. 각 VM을 만들고 루프를 종료합니다.

     New-AzureVM -VM $vmConfig `
     -ServiceName $backendCSName `
     -Location $location `
     -VNetName $vnetName
     }
    

4단계 - 스크립트 실행

이제 필요에 따라 스크립트를 다운로드하고 변경했으므로 스크립트를 실행하여 여러 NIC가 있는 백 엔드 데이터베이스 VM을 만듭니다.

  1. 스크립트를 저장하고 PowerShell 명령 프롬프트 또는 PowerShell ISE에서 실행합니다. 아래와 같이 초기 출력이 표시됩니다.

     OperationDescription    OperationId                          OperationStatus
    
     New-AzureService        xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Succeeded
     New-AzureStorageAccount xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Succeeded
    
     WARNING: No deployment found in service: 'IaaSStory-Backend'.
    
  2. 자격 증명 프롬프트에 필요한 정보를 입력하고 확인을 클릭합니다. 다음 출력이 반환됩니다.

     New-AzureVM             xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Succeeded
     New-AzureVM             xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Succeeded
    

5단계 - VM의 운영 체제 내에서 라우팅 구성

Azure DHCP는 가상 머신에 연결된 첫 번째(기본) 네트워크 인터페이스에 기본 게이트웨이를 할당합니다. 가상 머신에 연결된 추가(보조) 네트워크 인터페이스에는 기본 게이트웨이를 할당하지 않습니다. 따라서 보조 네트워크 인터페이스가 있는 서브넷 외부의 리소스와는 기본적으로 통신할 수 없습니다. 그러나 보조 네트워크 인터페이스는 서브넷 외부의 리소스와 통신할 수 있습니다. 보조 네트워크 인터페이스에 대한 라우팅을 구성하려면 다음 문서를 참조하세요.