인스턴스 수준 공용 Ip(클래식) 개요
ILPIP(인스턴스 수준 공용 IP)는 해당 VM 또는 역할 인스턴스가 상주하는 클라우드 서비스가 아닌 VM 또는 Cloud Services 역할 인스턴스에 직접 할당할 수 있는 공용 IP 주소입니다. ILPIP는 클라우드 서비스에 할당된 VIP(가상 IP)의 위치를 차지하지 않습니다. VM 또는 역할 인스턴스에 직접 연결을 사용할 수 있는 추가 IP 주소입니다.
중요
Azure에는 리소스를 만들고 사용하기 위한 Resource Manager 및 클래식이라는 두 가지 배포 모델이 있습니다. 이 문서에서는 클래식 배포 모델 사용에 대해 설명합니다. Resource Manager를 통해 VM을 만드는 것이 좋습니다. Azure에서 IP 주소 가 어떻게 작동하는지 이해해야 합니다.
그림 1에 표시된 것과 같이, 클라우드 서비스는 VIP를 사용하여 액세스하지만 개별 VM은 보통 VIP:<포트 번호>를 사용하여 액세스됩니다. 특정 VM에 ILPIP를 할당하면 해당 VM은 해당 IP 주소를 사용하여 직접 액세스할 수 있습니다.
Azure에서 클라우드 서비스를 만들면 해당 DNS A 레코드가 자동으로 만들어져, 실제 VIP를 사용하지 않고 정규화된 도메인 이름(FQDN)을 통해 서비스에 액세스할 수 있습니다. 동일한 프로세스가 ILPIP에 대해 발생하며 ILPIP 대신 FQDN으로 VM 또는 역할 인스턴스에 액세스할 수 있습니다. 예를 들어, contosoadservice라는 클라우드 서비스를 만들고 두 인스턴스가 있는 contosoweb이라는 웹 역할을 구성하였고 .cscfg에서 domainNameLabel
이 WebPublicIP로 설정된 경우 Azure는 인스턴스에 대해 다음 A 레코드를 등록합니다.
- WebPublicIP.0.contosoadservice.cloudapp.net
- WebPublicIP.1.contosoadservice.cloudapp.net
- ...
참고
각 VM 또는 역할 인스턴스에 대해 하나의 ILPIP를 할당할 수 있습니다. 구독당 최대 5개의 ILPIP를 사용할 수 있습니다. 다중 NIC VM에는 ILPIP가 지원되지 않습니다.
ILPIP를 요청하는 이유
클라우드 서비스 VIP:<포트 번호>를 사용하지 않고 직접 할당된 IP 주소로 VM 또는 역할 인스턴스에 연결할 수 있게 하려면 VM 또는 역할 인스턴스에 대한 ILPIP를 요청합니다.
- 활성 FTP - VM에 ILPIP를 할당하면 어떤 포트에서도 트래픽을 수신할 수 있습니다. 엔드포인트가 없어도 VM에서 트래픽을 수신할 수 있습니다. FTP 프로토콜에 대한 자세한 내용은 FTP 프로토콜 개요를 참조하세요.
- 아웃바운드 IP - VM에서 발생하는 아웃바운드 트래픽은 원본으로 ILPIP에 매핑되며 ILPIP는 외부 엔터티에 대한 VM을 고유하게 식별합니다.
참고
과거에는 ILPIP 주소를 PIP(공용 IP) 주소라고 했습니다.
VM에 대한 ILPIP 관리
다음 작업을 통해 VM에서 ILPIP를 생성, 할당 및 제거할 수 있습니다.
PowerShell을 사용하여 VM 생성 중 ILPIP를 요청하는 방법
다음 PowerShell 스크립트는 FTPService라는 클라우드 서비스를 만들고, Azure에서 이미지를 검색하고, 검색된 이미지를 사용하여 FTPInstance라는 VM을 만들고, ILPIP를 사용하도록 VM을 설정하고, VM을 새 서비스에 추가합니다.
New-AzureService -ServiceName FTPService -Location "Central US"
$image = Get-AzureVMImage|?{$_.ImageName -like "*RightImage-Windows-2012R2-x64*"}
#Set "current" storage account for the subscription. It will be used as the location of new VM disk
Set-AzureSubscription -SubscriptionName <SubName> -CurrentStorageAccountName <StorageAccountName>
#Create a new VM configuration object
New-AzureVMConfig -Name FTPInstance -InstanceSize Small -ImageName $image.ImageName `
| Add-AzureProvisioningConfig -Windows -AdminUsername adminuser -Password MyP@ssw0rd!! `
| Set-AzurePublicIP -PublicIPName ftpip | New-AzureVM -ServiceName FTPService -Location "Central US"
다른 스토리지 계정을 새 VM 디스크의 위치로 지정하려면 MediaLocation 매개 변수를 사용할 수 있습니다.
New-AzureVMConfig -Name FTPInstance -InstanceSize Small -ImageName $image.ImageName `
-MediaLocation https://management.core.windows.net/<SubscriptionID>/services/storageservices/<StorageAccountName> `
| Add-AzureProvisioningConfig -Windows -AdminUsername adminuser -Password MyP@ssw0rd!! `
| Set-AzurePublicIP -PublicIPName ftpip | New-AzureVM -ServiceName FTPService -Location "Central US"
VM에 대한 ILPIP 정보를 검색하는 방법
위의 스크립트를 사용하여 만든 VM에 대한 ILPIP 정보를 보려면, 다음 PowerShell 명령을 실행하고 PublicIPAddress 및 PublicIPName의 값을 확인합니다.
Get-AzureVM -Name FTPInstance -ServiceName FTPService
예상 출력:
DeploymentName : FTPService
Name : FTPInstance
Label :
VM : Microsoft.WindowsAzure.Commands.ServiceManagement.Model.PersistentVM
InstanceStatus : ReadyRole
IpAddress : 100.74.118.91
InstanceStateDetails :
PowerState : Started
InstanceErrorCode :
InstanceFaultDomain : 0
InstanceName : FTPInstance
InstanceUpgradeDomain : 0
InstanceSize : Small
HostName : FTPInstance
AvailabilitySetName :
DNSName : http://ftpservice888.cloudapp.net/
Status : ReadyRole
GuestAgentStatus : Microsoft.WindowsAzure.Commands.ServiceManagement.Model.GuestAgentStatus
ResourceExtensionStatusList : {Microsoft.Compute.BGInfo}
PublicIPAddress : 104.43.142.188
PublicIPName : ftpip
NetworkInterfaces : {}
ServiceName : FTPService
OperationDescription : Get-AzureVM
OperationId : 568d88d2be7c98f4bbb875e4d823718e
OperationStatus : OK
VM에서 ILPIP를 제거하는 방법
위의 스크립트에서 VM에 추가된 ILPIP를 제거하려면 다음 PowerShell 명령을 실행합니다.
Get-AzureVM -ServiceName FTPService -Name FTPInstance | Remove-AzurePublicIP | Update-AzureVM
기존 VM에 ILPIP를 추가하는 방법
위의 스크립트를 사용하여 만든 VM에 ILPIP를 추가하려면 다음 명령을 실행합니다.
Get-AzureVM -ServiceName FTPService -Name FTPInstance | Set-AzurePublicIP -PublicIPName ftpip2 | Update-AzureVM
Cloud Services 역할 인스턴스에 대한 ILPIP 관리
Cloud Services 역할 인스턴스에 ILPIP를 추가하려면 다음 단계를 완료합니다.
Cloud Services를 구성하는 방법 문서의 단계를 완료하여 클라우드 서비스에 대한 .cscfg 파일을 다운로드합니다.
InstanceAddress
요소를 추가하여 .cscfg 파일을 업데이트합니다. 다음 샘플에서는 WebRole1 역할 인스턴스에 MyPublicIP라는 ILPIP를 추가합니다.<?xml version="1.0" encoding="utf-8"?> <ServiceConfiguration serviceName="ILPIPSample" xmlns="https://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration" osFamily="4" osVersion="*" schemaVersion="2014-01.2.3"> <Role name="WebRole1"> <Instances count="1" /> <ConfigurationSettings> <Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" value="UseDevelopmentStorage=true" /> </ConfigurationSettings> </Role> <NetworkConfiguration> <AddressAssignments> <InstanceAddress roleName="WebRole1"> <PublicIPs> <PublicIP name="MyPublicIP" domainNameLabel="WebPublicIP" /> </PublicIPs> </InstanceAddress> </AddressAssignments> </NetworkConfiguration> </ServiceConfiguration>
Cloud Services를 구성하는 방법 문서의 단계를 완료하여 클라우드 서비스에 대한 .cscfg 파일을 업로드합니다.
Cloud Service에 대한 ILPIP 정보 검색하는 방법
역할 인스턴스당 ILPIP 정보를 보려면, 다음 PowerShell 명령을 실행하고 PublicIPAddress, PublicIPName, PublicIPDomainNameLabel 및 PublicIPFqdns의 값을 확인합니다.
Add-AzureAccount
$roles = Get-AzureRole -ServiceName <Cloud Service Name> -Slot Production -RoleName WebRole1 -InstanceDetails
$roles[0].PublicIPAddress
$roles[1].PublicIPAddress
nslookup
을 사용하여 하위 도메인의 A 레코드를 쿼리할 수도 있습니다.
nslookup WebPublicIP.0.<Cloud Service Name>.cloudapp.net