Share via


빠른 시작: Azure PowerShell을 사용하여 NAT 게이트웨이 만들기

이 빠른 시작에서는 PowerShell을 사용하여 NAT 게이트웨이를 만드는 방법을 알아봅니다. NAT Gateway 서비스는 Azure의 가상 머신에 대한 아웃바운드 연결을 제공합니다.

Diagram of resources created in nat gateway quickstart.

필수 조건

  • 활성 구독이 있는 Azure 계정. 체험 계정을 만듭니다.

  • Azure Cloud Shell 또는 Azure PowerShell.

    이 빠른 시작의 단계에서는 Azure Cloud Shell에서 대화형으로 Azure PowerShell cmdlet을 실행합니다. Cloud Shell에서 명령을 실행하려면 코드 블록의 오른쪽 위 모서리에서 Cloudshell 열기를 선택합니다. 복사를 선택하여 코드를 복사한 다음, 복사한 코드를 Cloud Shell에 붙여넣어 실행합니다. Azure Portal 내에서 Cloud Shell을 실행할 수도 있습니다.

    Azure PowerShell을 로컬에 설치하여 cmdlet을 실행할 수도 있습니다. 이 문서에서 설명할 단계를 실행하기 위해서는 Azure PowerShell 모듈 버전 5.4.1 또는 그 이후 버전이 필요합니다. 설치되어 있는 버전을 확인하려면 Get-Module -ListAvailable Az을 실행합니다. 업그레이드가 필요한 경우 Azure PowerShell 모듈 업데이트를 참조하세요.

리소스 그룹 만들기

New-AzResourceGroup을 사용하여 리소스 그룹을 만듭니다. Azure 리소스 그룹은 Azure 리소스가 배포 및 관리되는 논리적 컨테이너입니다.

다음 예제에서는 eastus2 위치에 test-rg라는 리소스 그룹을 만듭니다.

$rsg = @{
    Name = 'test-rg'
    Location = 'eastus2'
}
New-AzResourceGroup @rsg

NAT 게이트웨이 만들기

이 섹션에서는 NAT 게이트웨이와 지원 리소스를 만듭니다.

  • 인터넷에 액세스 하려면 NAT 게이트웨이에 대 한 공용 IP 주소가 하나 이상 필요 합니다. New-AzPublicIpAddress를 사용하여 public-ip-nat라는 공용 IP 주소 리소스를 test-rg에 만듭니다.

  • New-AzNatGateway를 사용하여 글로벌 Azure NAT 게이트웨이를 만듭니다. 이 명령의 결과는 공용 IP 주소 public-ip-nat를 사용하는 nat-gateway라는 게이트웨이 리소스를 만듭니다. 유휴 시간 제한은 10분으로 설정됩니다.

  • New-AzVirtualNetwork를 사용하여 test-rg에서 New-AzVirtualNetworkSubnetConfig를 사용하여 subnet-1이라는 서브넷이 있는 vnet-1이라는 가상 네트워크를 만듭니다. 가상 네트워크의 IP 주소 공간은 10.0.0.0/16입니다. 가상 네트워크 내의 서브넷은 10.0.0.0/24입니다.

  • 가상 머신에 액세스하려면 bastion이라는 Azure Bastion 호스트를 만듭니다. New-AzBastion을 사용하여 베스천 호스트를 만듭니다. New-AzPublicIpAddress를 사용하여 베스천 호스트에 대한 공용 IP 주소를 만듭니다.

## Create public IP address for NAT gateway ##
$ip = @{
    Name = 'public-ip-nat'
    ResourceGroupName = 'test-rg'
    Location = 'eastus2'
    Sku = 'Standard'
    AllocationMethod = 'Static'
    Zone = 1,2,3
}
$publicIP = New-AzPublicIpAddress @ip

## Create NAT gateway resource ##
$nat = @{
    ResourceGroupName = 'test-rg'
    Name = 'nat-gateway'
    IdleTimeoutInMinutes = '10'
    Sku = 'Standard'
    Location = 'eastus2'
    PublicIpAddress = $publicIP
}
$natGateway = New-AzNatGateway @nat

## Create subnet config and associate NAT gateway to subnet##
$subnet = @{
    Name = 'subnet-1'
    AddressPrefix = '10.0.0.0/24'
    NatGateway = $natGateway
}
$subnetConfig = New-AzVirtualNetworkSubnetConfig @subnet 

## Create Azure Bastion subnet. ##
$bastsubnet = @{
    Name = 'AzureBastionSubnet' 
    AddressPrefix = '10.0.1.0/26'
}
$bastsubnetConfig = New-AzVirtualNetworkSubnetConfig @bastsubnet

## Create the virtual network ##
$net = @{
    Name = 'vnet-1'
    ResourceGroupName = 'test-rg'
    Location = 'eastus2'
    AddressPrefix = '10.0.0.0/16'
    Subnet = $subnetConfig,$bastsubnetConfig
}
$vnet = New-AzVirtualNetwork @net

## Create public IP address for bastion host. ##
$ip = @{
    Name = 'public-ip'
    ResourceGroupName = 'test-rg'
    Location = 'eastus2'
    Sku = 'Standard'
    AllocationMethod = 'Static'
    Zone = 1,2,3
}
$publicip = New-AzPublicIpAddress @ip

## Create bastion host ##
$bastion = @{
    Name = 'bastion'
    ResourceGroupName = 'test-rg'
    PublicIpAddressRgName = 'test-rg'
    PublicIpAddressName = 'public-ip'
    VirtualNetworkRgName = 'test-rg'
    VirtualNetworkName = 'vnet-1'
    Sku = 'Basic'
}
New-AzBastion @bastion

베스천 호스트는 배포하는 데 몇 분 정도 걸릴 수 있습니다. 베스천 호스트가 배포된 이후에 다음 섹션으로 이동합니다.

가상 머신

이 섹션에서는 NAT 게이트웨이를 테스트하고 아웃바운드 연결의 공용 IP 주소를 확인하는 가상 머신을 만듭니다.

# Set the administrator and password for the VMs. ##
$cred = Get-Credential

## Place the virtual network into a variable. ##
$vnet = Get-AzVirtualNetwork -Name 'vnet-1' -ResourceGroupName 'test-rg'

## Create network interface for virtual machine. ##
$nic = @{
    Name = "nic-1"
    ResourceGroupName = 'test-rg'
    Location = 'eastus2'
    Subnet = $vnet.Subnets[0]
}
$nicVM = New-AzNetworkInterface @nic

## Create a virtual machine configuration for VMs ##
$vmsz = @{
    VMName = 'vm-1'
    VMSize = 'Standard_DS1_v2'  
}
$vmos = @{
    ComputerName = 'vm-1'
    Credential = $cred
}
$vmimage = @{
    PublisherName = 'Canonical'
    Offer = '0001-com-ubuntu-server-jammy'
    Skus = '22_04-lts-gen2'
    Version = 'latest'     
}
$vmConfig = New-AzVMConfig @vmsz `
    | Set-AzVMOperatingSystem @vmos -Linux `
    | Set-AzVMSourceImage @vmimage `
    | Add-AzVMNetworkInterface -Id $nicVM.Id

## Create the virtual machine for VMs ##
$vm = @{
    ResourceGroupName = 'test-rg'
    Location = 'eastus2'
    VM = $vmConfig
}
New-AzVM @vm

다음 섹션으로 이동하기 전에 가상 머신 만들기가 완료될 때까지 기다립니다.

NAT 게이트웨이 테스트

이 섹션에서는 NAT 게이트웨이를 테스트합니다. 먼저 NAT 게이트웨이의 공용 IP를 검색합니다. 그런 다음, 테스트 가상 머신에 연결하고 NAT 게이트웨이를 통해 아웃바운드 연결을 확인합니다.

  1. Azure Portal에 로그인합니다.

  2. 포털 맨 위에 있는 검색 상자에 공용 IP를 입력합니다. 검색 결과에서 공용 IP 주소를 선택합니다.

  3. public-ip-nat를 선택합니다.

  4. 공용 IP 주소를 기록해 둡니다.

    Discover public IP address of NAT gateway

  5. 포털 맨 위에 있는 검색 상자에 가상 머신을 입력합니다. 검색 결과에서 가상 머신을 선택합니다.

  6. vm-1을 선택합니다.

  7. 개요 페이지에서 연결을 선택한 다음, Bastion 탭을 선택합니다.

  8. Bastion 사용을 선택합니다.

  9. VM을 만드는 동안 입력한 사용자 이름과 암호를 입력합니다. 연결을 선택합니다.

  10. Bash 프롬프트에 다음 명령을 입력합니다.

    curl ifconfig.me
    
  11. 명령으로 반환된 IP 주소가 NAT 게이트웨이의 공용 IP 주소와 일치하는지 확인합니다.

    azureuser@vm-1:~$ curl ifconfig.me
    20.7.200.36
    

리소스 정리

이 애플리케이션을 계속 사용하지 않으려면 다음 단계에 따라 가상 네트워크, 가상 머신 및 NAT 게이트웨이를 삭제합니다.

Remove-AzResourceGroup -Name 'test-rg' -Force

다음 단계

Azure NAT Gateway에 대한 자세한 내용은 다음을 참조하세요.