PowerShell을 사용하여 Azure에서 VM의 포트 및 엔드포인트를 여는 방법How to open ports and endpoints to a VM in Azure using PowerShell

서브넷 또는 VM 네트워크 인터페이스에서 네트워크 필터를 만들어, Azure에서 VM(가상 머신)에 대한 포트를 열거나 엔드포인트를 만듭니다.You open a port, or create an endpoint, to a virtual machine (VM) in Azure by creating a network filter on a subnet or a VM network interface. 인바운드 및 아웃바운드 트래픽을 모두 제어하는 이러한 필터를 트래픽을 수신하는 리소스에 연결된 네트워크 보안 그룹에 배치합니다.You place these filters, which control both inbound and outbound traffic, on a network security group attached to the resource that receives the traffic.

이 문서에 있는 예제에서 표준 TCP 포트 80(해당 서비스를 이미 시작했으며 VM에서 OS 방화벽 규칙을 열었다고 가정함)을 사용하는 네트워크 필터를 작성하는 방법을 보여 줍니다.The example in this article demonstrates how to create a network filter that uses the standard TCP port 80 (it's assumed you've already started the appropriate services and opened any OS firewall rules on the VM).

표준 TCP 포트 80에서 웹 요청을 제공하도록 구성된 VM을 만든 후 다음을 수행할 수 있습니다.After you've created a VM that's configured to serve web requests on the standard TCP port 80, you can:

  1. 네트워크 보안 그룹을 만듭니다.Create a network security group.

  2. 트래픽을 허용하는 인바운드 보안 규칙을 작성하고 다음 설정에 값을 지정하세요.Create an inbound security rule allowing traffic and assign values to the following settings:

    • 대상 포트 범위: 80Destination port ranges: 80

    • 소스 포트 범위: *(모든 소스 포트 허용)Source port ranges: * (allows any source port)

    • 우선 순위 값: 65,500 및 범용 기본값 보다 우선 순위가 더 높은 인바운드 규칙을 거부 하는 보다 작은 값을 입력 합니다.Priority value: Enter a value that is less than 65,500 and higher in priority than the default catch-all deny inbound rule.

  3. 네트워크 보안 그룹을 VM 네트워크 인터페이스 또는 서브넷에 연결합니다.Associate the network security group with the VM network interface or subnet.

이 예제에서는 HTTP 트래픽을 허용하는 단순 규칙을 사용하지만 네트워크 보안 그룹 및 규칙을 사용하여 더 복잡한 네트워크 구성을 작성할 수도 있습니다.Although this example uses a simple rule to allow HTTP traffic, you can also use network security groups and rules to create more complex network configurations.

빠른 명령Quick commands

네트워크 보안 그룹 및 ACL 규칙을 만들려면 최신 버전의 Azure PowerShell을 설치해야 합니다.To create a Network Security Group and ACL rules you need the latest version of Azure PowerShell installed. Azure 포털을 사용하여 수행할 수도 있습니다.You can also perform these steps using the Azure portal.

Azure 계정에 로그인합니다.Log in to your Azure account:

Connect-AzAccount

다음 예제에서 매개 변수 이름을 고유한 값으로 바꿉니다.In the following examples, replace parameter names with your own values. 예제 매개 변수 이름에는 myResourceGroup, myNetworkSecurityGroupmyVnet이 포함됩니다.Example parameter names included myResourceGroup, myNetworkSecurityGroup, and myVnet.

New-AzNetworkSecurityRuleConfig를 사용하여 규칙을 만듭니다.Create a rule with New-AzNetworkSecurityRuleConfig. 다음 예제에서는 포트 80tcp 트래픽을 허용하도록 myNetworkSecurityGroupRule이라는 규칙을 만듭니다.The following example creates a rule named myNetworkSecurityGroupRule to allow tcp traffic on port 80:

$httprule = New-AzNetworkSecurityRuleConfig `
    -Name "myNetworkSecurityGroupRule" `
    -Description "Allow HTTP" `
    -Access "Allow" `
    -Protocol "Tcp" `
    -Direction "Inbound" `
    -Priority "100" `
    -SourceAddressPrefix "Internet" `
    -SourcePortRange * `
    -DestinationAddressPrefix * `
    -DestinationPortRange 80

그런 다음, 다음과 같이 New-AzNetworkSecurityGroup을 사용하여 네트워크 보안 그룹을 만들고 방금 만든 HTTP 규칙을 할당합니다.Next, create your Network Security group with New-AzNetworkSecurityGroup and assign the HTTP rule you just created as follows. 다음 예제에서는 myNetworkSecurityGroup이라는 네트워크 보안 그룹을 만듭니다.The following example creates a Network Security Group named myNetworkSecurityGroup:

$nsg = New-AzNetworkSecurityGroup `
    -ResourceGroupName "myResourceGroup" `
    -Location "EastUS" `
    -Name "myNetworkSecurityGroup" `
    -SecurityRules $httprule

이제 서브넷에 네트워크 보안 그룹을 할당합니다.Now let's assign your Network Security Group to a subnet. 다음 예제에서는 Get-AzVirtualNetwork를 사용하여 myVnet이라는 기존 가상 네트워크를 $vnet 변수에 할당합니다.The following example assigns an existing virtual network named myVnet to the variable $vnet with Get-AzVirtualNetwork:

$vnet = Get-AzVirtualNetwork `
    -ResourceGroupName "myResourceGroup" `
    -Name "myVnet"

Set-AzVirtualNetworkSubnetConfig를 사용하여 네트워크 보안 그룹을 서브넷에 연결합니다.Associate your Network Security Group with your subnet with Set-AzVirtualNetworkSubnetConfig. 다음 예제에서는 mySubnet이라는 서브넷을 네트워크 보안 그룹에 연결합니다.The following example associates the subnet named mySubnet with your Network Security Group:

$subnetPrefix = $vnet.Subnets|?{$_.Name -eq 'mySubnet'}

Set-AzVirtualNetworkSubnetConfig `
    -VirtualNetwork $vnet `
    -Name "mySubnet" `
    -AddressPrefix $subnetPrefix.AddressPrefix `
    -NetworkSecurityGroup $nsg

마지막으로, 변경 내용이 적용되도록 Set-AzVirtualNetwork를 사용하여 가상 네트워크를 업데이트합니다.Finally, update your virtual network with Set-AzVirtualNetwork in order for your changes to take effect:

Set-AzVirtualNetwork -VirtualNetwork $vnet

네트워크 보안 그룹에 대한 자세한 정보More information on Network Security Groups

여기서 빠른 명령을 사용하면 VM으로 트래픽이 이동되도록 할 수 있습니다.The quick commands here allow you to get up and running with traffic flowing to your VM. 네트워크 보안 그룹은 리소스에 대한 액세스를 제어하는 많은 기능과 세분성을 제공합니다.Network Security Groups provide many great features and granularity for controlling access to your resources. 여기서 네트워크 보안 그룹 및 ACL 규칙 만들기에 대해 자세히 읽어보세요.You can read more about creating a Network Security Group and ACL rules here.

고가용성 웹 애플리케이션인 경우 VM을 Azure Load Balancer 뒤에 배치해야 합니다.For highly available web applications, you should place your VMs behind an Azure Load Balancer. 부하 분산 장치는 트래픽 필터링을 제공하는 네트워크 보안 그룹으로 트래픽을 VM에 분산시킵니다.The load balancer distributes traffic to VMs, with a Network Security Group that provides traffic filtering. 자세한 내용은 Azure의 Linux 가상 머신 부하를 분산하여 고가용성 애플리케이션을 만드는 방법을 참조하세요.For more information, see How to load balance Linux virtual machines in Azure to create a highly available application.

다음 단계Next steps

이 예제에서는 HTTP 트래픽을 허용하는 간단한 규칙을 만들었습니다.In this example, you created a simple rule to allow HTTP traffic. 다음 문서에서 보다 자세한 환경을 만들기 위한 정보를 찾을 수 있습니다.You can find information on creating more detailed environments in the following articles: