在雲端的主機, 通常IP不一定是一直固定的, 尤其是在重新開機或關機後再打開, 其 IP 位罝會因為資源重新分派而變動 IP.
當然, 變動 IP 在一般的狀況下, 沒有太大的影響, 因為大多數的服務都是以名稱來連接, 走 DNS 的解析來連接到對應的主機, 所以即使變動也沒有太大問題.
不過有時需要固定的 IP, 尤其像是一些限制 IP 存取的服務時, 若是 IP 異動, 對於連接到這些限制 IP 存取的服務時, 就需要提供服務的廠商來進行調整, 若是因此造成一定時間的服務中斷, 就不是太理想了.
Azure 有提供保留 IP 的服務, 一共有兩種, 一種是 VIP, 也就是走 cloud service 出去的 IP, 另一種是直接對主機設定 IP, 稱為 ILPIP, 通常使用上以 VIP 的彈性較大, 也比較容易進行資源部署, 而直接對主機設定公用 IP 時, 有時會少了一些彈性, 不過也相對單純.
先來看一下價格: https://azure.microsoft.com/zh-tw/pricing/details/ip-addresses/, 正常狀況下, 提供了 5個免費的固定 IP, 若超過 5 個, 每個月會收約 92元(台幣, 也就是美金3元). 最多可以保留 20個 IP, 不過也是可以透過聯絡 Azure 服務來提高這個限制. (限制參考這裡: https://azure.microsoft.com/en-us/documentation/articles/azure-subscription-service-limits/#_subscription-limits)
這篇則說明了 ILPIP 與 VIP 的不同: https://azure.microsoft.com/zh-tw/documentation/articles/virtual-networks-instance-level-public-ip/
設定方式可以使用 azure powershell 或 restful api (https://msdn.microsoft.com/library/azure/dn722420.aspx), 若非常在異動, 或只是幾組設定, 可以使用 azure powershell 即可.
安裝 Azure powershell 可以參考這篇: https://azure.microsoft.com/zh-tw/documentation/articles/powershell-install-configure/
接下來就可以開始操作了:
首先取得發行設定檔:
Get-AzurePublishSettingsFile
這裡會帶出 Azure 登入畫面, 登入後會下載一個 xxx-m-d-yyyy-credentials.publishsettings 的檔案, 存好後要再進行匯入:
Import-AzurePublishSettingsFile “D:\tmp\xxxx-m-d-yyyy-credentials.publishsettings”
完成後就可以進行保留IP在 VIP 中的設定了:
New-AzureReservedIP -ServiceName ‘cloudservice001’ -ReservedIPName ‘cloudservice001ReservedIPName’ -Location ‘East Asia’
其中 ServiceName cloudservice001 即為在雲端服務 cloudservice001.cloudapp.net 的主機名稱, 而 ReservedIPName 為一個自訂名稱, Location 即為提供服務的地理位置.
完成後, 可以使用以下指令確認:
Get-AzureReservedIP
如此即完成 VIP 保留 IP 的設定作業了. 另外若要移除可以使用 Remove-AzureReservedIP 指令.
參考資料:
http://blog.pmail.idv.tw/?p=12580
http://mythoughtsonit.com/2014/09/step-by-step-reserve-a-public-ip-address-in-azure/
https://azure.microsoft.com/zh-tw/blog/reserved-ip-addresses/
[2016/6/13]
在新版本Azure入口於建立主機時設定為保留IP教學:
https://channel9.msdn.com/Series/azure-skill-quicksetup/set-ip
不過若是已建立完成的主機, 要再改變為保留IP, 仍需要使用 PowerShell 來進行操作, 如本篇介紹說明.