다음을 통해 공유


Cloud Services의 인스턴스 수준 공용 IP 주소 구성

이 문서에서는 Microsoft Azure Cloud Services(클래식) 및 Azure Cloud Services(추가 지원)에서 인스턴스 수준 PIP(공용 IP 주소)를 구성하는 방법을 설명합니다. VIP(가상 IP 주소)와 달리 인스턴스 수준 공용 IP 주소는 부하 분산되지 않습니다. VIP는 클라우드 서비스에 할당되고 클라우드 서비스의 모든 가상 머신 및 역할 인스턴스는 해당 VIP를 공유합니다. 그러나 PIP(공용 IP 주소)는 단일 인스턴스의 네트워크 어댑터와만 연결됩니다. 공용 IP 주소는 각 인스턴스를 인터넷과 독립적으로 연결할 수 있는 다중 인스턴스 배포에 유용합니다. 다음 다이어그램은 PIP의 값을 보여 줍니다. VIP와 구분합니다.

Microsoft Azure Cloud Services의 공용 IP 주소, 가상 IP 주소 및 인터넷 간의 관계를 보여 주는 다이어그램

다이어그램에서 VIP로 전송되는 네트워크 트래픽은 DIP(데이터 센터 IP 주소) 1과 DIP 2 간에 부하 분산된 것으로 표시됩니다. 그러나 PIP 1로 전송되는 트래픽은 항상 DIP 1로 이동하고 PIP 2로 전송되는 트래픽은 항상 DIP 2로 이동합니다. 데이터 센터 IP 주소는 VM(가상 머신)의 개인 IP 주소입니다.

자세한 내용은 인스턴스 수준 공용 IP 주소 Azure 블로그 문서를 참조하세요.

Azure Cloud Services 프로시저(클래식)

  1. 역할별로 인스턴스 수준 공용 IP 주소를 구성합니다.

    <?xml version="1.0" encoding="utf-8"?>
    <ServiceConfiguration
            serviceName="TestVirtualnetwork"
            xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration"
            osFamily="6"
            osVersion="*"
            schemaVersion="2015-04.2.6">
        <Role name="WebRole1">
            <Instances count="1" />
            <ConfigurationSettings>
                <Setting name="APPINSIGHTS_INSTRUMENTATIONKEY" value="xxx" />
            </ConfigurationSettings>
        </Role>
        <Role name="WebRole2">
            <Instances count="1" />
            <ConfigurationSettings>
                <Setting name="APPINSIGHTS_INSTRUMENTATIONKEY" value="xxx" />
            </ConfigurationSettings>
        </Role>
        <Role name="WebRole3">
            <Instances count="1" />
            <ConfigurationSettings>
                <Setting name="APPINSIGHTS_INSTRUMENTATIONKEY" value="xxx" />
            </ConfigurationSettings>
        </Role>
        <Role name="WebRole4">
            <Instances count="1" />
            <ConfigurationSettings>
                <Setting name="APPINSIGHTS_INSTRUMENTATIONKEY" value="xxx" />
            </ConfigurationSettings>
        </Role>
        <NetworkConfiguration>
            <VirtualNetworkSite name="Group RESOURCE_GROUP VIRTUAL_NETWORK_NAME" />
            <AddressAssignments>
                <InstanceAddress roleName="WebRole1">
                    <Subnets><Subnet name="subnet001" /></Subnets>
                    <PublicIPs>
                        <PublicIP name="PubIP" domainNameLabel="pip" />  <!-- with domain -->
                    </PublicIPs>
                </InstanceAddress>
                <InstanceAddress roleName="WebRole2">
                    <Subnets><Subnet name="subnet003" /></Subnets>
                    <PublicIPs>
                        <PublicIP name="PubIP"/>                         <!-- without domain -->
                    </PublicIPs>
                </InstanceAddress>
            </AddressAssignments>
        </NetworkConfiguration>
    </ServiceConfiguration>
    
  2. 다음 방법 중 하나를 사용하여 역할의 현재 공용 IP 주소를 가져옵니다.

    각 역할 인스턴스에 대해 Get-AzureRole PowerShell cmdlet을 실행합니다. 이 cmdlet은 모듈을 기반으로 합니다 Azure.Service . 이전 단계에서 IP 주소 구성을 사용하여 각 역할 인스턴스의 인스턴스 세부 정보 간의 차이를 확인할 수 있습니다.

    1. 공용 IP 이름에 도메인 이름 레이블이 WebRole2 없는 역할의 세부 정보를 확인합니다.

      $roleParams = @{
          ServiceName = "<cloud-service-name>"
          Slot = "Production"
          RoleName = "WebRole2"
          InstanceDetails = $true
      }
      Get-AzureRole @roleParams
      

      cmdlet 출력은 다음 텍스트와 유사합니다.

      InstanceEndpoints            : {Microsoft.WindowsAzure.Plugins.RemoteForwarder.RdpInput, Endpoint1}
      InstanceErrorCode            : 
      InstanceFaultDomain          : 0
      InstanceName                 : WebRole2_IN_0
      InstanceSize                 : Standard_D1_v2
      InstanceStateDetails         : 
      InstanceStatus               : ReadyRole
      InstanceUpgradeDomain        : 0
      RoleName                     : WebRole2
      DeploymentID                 : 0123456789abcdef0123456789abcdef
      IPAddress                    : 10.2.2.5
      PublicIPAddress              : 20.115.22.157
      PublicIPName                 : PubIP
      PublicIPIdleTimeoutInMinutes : 
      PublicIPDomainNameLabel      : 
      PublicIPFqdns                : {}
      ServiceName                  : contoso-vnet-pip
      OperationDescription         : Get-AzureRole
      OperationId                  : 12345678-9abc-def0-1234-56789abcdef0
      OperationStatus              : Succeeded
      
    2. 이제 동일한 공용 IP 이름을 사용하지만 도메인 이름 레이블이 있는 역할의 WebRole1 세부 정보를 확인합니다.

      $roleParams = @{
          ServiceName = "<cloud-service-name>"
          Slot = "Production"
          RoleName = "WebRole1"
          InstanceDetails = $true
      }
      Get-AzureRole @roleParams
      

      cmdlet 출력InstanceEndpoints에서 , ,InstanceName, InstanceStatus, RoleName, IPAddress, PublicIPAddress, PublicIPDomainNameLabelPublicIPFqdnsOperationId 값은 서로 다릅니다.

      InstanceEndpoints            : {Endpoint1}
      InstanceErrorCode            : 
      InstanceFaultDomain          : 0
      InstanceName                 : WebRole1_IN_0
      InstanceSize                 : Standard_D1_v2
      InstanceStateDetails         : 
      InstanceStatus               : StoppedVM
      InstanceUpgradeDomain        : 0
      RoleName                     : WebRole1_IN_0
      DeploymentID                 : 0123456789abcdef0123456789abcdef
      IPAddress                    : 10.2.0.4
      PublicIPAddress              : 20.168.229.192
      PublicIPName                 : PubIP
      PublicIPIdleTimeoutInMinutes : 
      PublicIPDomainNameLabel      : pip
      PublicIPFqdns                : {pip.contoso-vnet-pip.cloudapp.net, pip.0.contoso-vnet-pip.cloudapp.net}
      ServiceName                  : contoso-vnet-pip
      OperationDescription         : Get-AzureRole
      OperationId                  : 23456789-abcd-ef01-2345-6789abcdef01
      OperationStatus              : Succeeded
      

Azure Cloud Services 프로시저(추가 지원)

  1. 역할별로 인스턴스 수준 공용 IP 주소를 구성합니다.

    <?xml version="1.0" encoding="utf-16"?>
    <ServiceConfiguration
            xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            serviceName="Test_cloudservice"
            osFamily="6"
            osVersion="*"
            schemaVersion="2015-04.2.6"
            xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration">
        <Role name="TestWebRole">
            <ConfigurationSettings>
                <Setting
                        name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString"
                        value="UseDevelopmentStorage=true" />
            </ConfigurationSettings>
            <Instances count="2" />
        </Role>
        <Role name="TestWorkerRole">
            <ConfigurationSettings>
                <Setting
                        name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString"
                        value="UseDevelopmentStorage=true" />
            </ConfigurationSettings>
            <Instances count="1" />
        </Role>
        <NetworkConfiguration>
            <VirtualNetworkSite name="test001VNet" />
            <AddressAssignments>
                <InstanceAddress roleName="TestWebRole">
                    <Subnets>
                        <Subnet name="default" />
                    </Subnets>
                    <PublicIPs>
                        <PublicIP name="PubIP" domainNameLabel="pip" />
                    </PublicIPs>
                </InstanceAddress>
                <InstanceAddress roleName="TestWorkerRole">
                    <Subnets>
                        <Subnet name="default" />
                    </Subnets>
                </InstanceAddress>
                <ReservedIPs>
                    <ReservedIP name="Group TESTCSES cses-prod" />
                </ReservedIPs>
            </AddressAssignments>
        </NetworkConfiguration>
    </ServiceConfiguration>
    
  2. CloudService에서 PublicIPAddress를 사용 - 클라우드 서비스 공용 IP 주소 나열 REST API를 사용하여 네트워크 어댑터의 공용 IP 주소를 가져옵니다. 다음 코드 조각은 예제 JSON 응답을 보여줍니다.

    {
      "value": [
        {
          "name": "PubIP",
          "id": "/subscriptions/<your-subscription-guid>/resourceGroups/TESTCSES/providers/Microsoft.Compute/cloudServices/testcsesv2/roleInstances/TestWebRole_IN_0/networkInterfaces/nic1/ipConfigurations/ipconfig1/publicIPAddresses/PubIP",
          "etag": "W/\"3456789a-bcde-f012-3456-789abcdef012\"",
          "location": "eastus",
          "properties": {
            "provisioningState": "Succeeded",
            "resourceGuid": "<your-resource-guid>",
            "ipAddress": "20.169.153.231",
            "publicIPAddressVersion": "IPv4",
            "publicIPAllocationMethod": "Dynamic",
            "idleTimeoutInMinutes": 4,
            "dnsSettings": {
              "domainNameLabel": "pip.0.cses-prod",
              "fqdn": "pip.0.cses-prod.eastus.cloudapp.azure.com"
            },
            "ipTags": [],
            "ipConfiguration": {
              "id": "/subscriptions/<your-subscription-guid>/resourceGroups/TESTCSES/providers/Microsoft.Compute/cloudServices/testcsesv2/roleInstances/TestWebRole_IN_0/networkInterfaces/nic1/ipConfigurations/ipconfig1"
            }
          },
          "sku": {
            "name": "Basic",
            "tier": "Regional"
          }
        },
        {
          "name": "PubIP",
          "id": "/subscriptions/<your-subscription-guid>/resourceGroups/TESTCSES/providers/Microsoft.Compute/cloudServices/testcsesv2/roleInstances/TestWebRole_IN_1/networkInterfaces/nic1/ipConfigurations/ipconfig1/publicIPAddresses/PubIP",
          "etag": "W/\"456789ab-cdef-0123-4567-89abcdef0123\"",
          "location": "eastus",
          "properties": {
            "provisioningState": "Succeeded",
            "resourceGuid": "<your-resource-guid>",
            "ipAddress": "20.231.68.190",
            "publicIPAddressVersion": "IPv4",
            "publicIPAllocationMethod": "Dynamic",
            "idleTimeoutInMinutes": 4,
            "dnsSettings": {
              "domainNameLabel": "pip.1.cses-prod",
              "fqdn": "pip.1.cses-prod.eastus.cloudapp.azure.com"
            },
            "ipTags": [],
            "ipConfiguration": {
              "id": "/subscriptions/<your-subscription-guid>/resourceGroups/TESTCSES/providers/Microsoft.Compute/cloudServices/testcsesv2/roleInstances/TestWebRole_IN_1/networkInterfaces/nic1/ipConfigurations/ipconfig1"
            }
          },
          "sku": {
            "name": "Basic",
            "tier": "Regional"
          }
        }
      ]
    }
    

배열의 두 개체 value 모두 키 값PubIP이 있지만 해당 키 내에서 IP 주소와 DNS 설정에 properties 차이가 name 있습니다. 키의 ipAddress20.169.153.231 은 첫 번째 배열 개체와 20.231.68.190 두 번째 배열 개체에 있습니다. 키의 dnsSettingspip.0.cses-prod 은 첫 번째 배열 개체와 pip.1.cses-prod 두 번째 배열 개체에 있습니다.

도움을 요청하십시오.

질문이 있거나 도움이 필요한 경우 지원 요청을 생성하거나Azure 커뮤니티 지원에 문의하세요. Azure 피드백 커뮤니티에 제품 피드백을 제출할 수도 있습니다.