浅草橋青空市場

Microsoft Azure のニュースや情報を中心にあれこれと

Azure仮想マシンのグローバルIPアドレスを固定する(クラシック仮想マシン編)

(2017/07/21 追記)

仮想マシンやデプロイモデルの世代が変わりましたので、タイトルに「クラシック仮想マシン編」と追記しました。 現行世代(ARM)の場合は、ポータルから簡単に固定できるようになりました。 また、ARMの場合は料金体系も変わってまして、動的でも固定でも「確保したアドレス数」にチャージされるようになってます。

blogs.technet.microsoft.com

(追記ここまで)

仮想マシンにAレコードを割り当てたいとか、IPアドレスによる接続元制限があるとかで、Azure仮想マシンに割り当てられるグローバルIPアドレスを固定する場合の手順です。 このご時世にアレですが、従来型のクラウドサービスに割り当てる方のIPアドレスです。Azure用語でいう「VIP」の方で、仮想マシンインスタンスそれぞれにIPアドレスを割り当てる「インスタンスレベルパブリックIP(ILPIP)」とは別のお話です。

全体の流れ

まず前提としてPowerShellかAzure CLIでの操作となります。新ポータルでもまだ操作できないようですね。 1. IPアドレスを予約して名前を付ける。 1. 予約したIPアドレスクラウドサービスに割り当てる

以前は、空のクラウドサービスに仮想マシンをデプロイするときにしか設定できなかったようですが、今は利用中のクラウドサービスに対しても割り当てられます。

公式のドキュメントはこちら。 azure.microsoft.com

IPアドレスを予約して名前を付ける

PowerShell、Azure CLI それぞれ以下のような書き方になります。取りたいIPアドレス

PowerShell

New-AzureReservedIP –ReservedIPName [予約IPアドレス名] –Location “[ロケーション名]”

ロケーション名は「Get-AzureLocation」あたりでずらずらと出てきます。ロケーション名だけ取得したいときは「Get-AzureLocation | ft Name」あたりでどうぞ。

【Azure CLI

azure network reserved-ip create "[予約IPアドレス名]" "[ロケーション名]"

CLIでロケーション名を取得するには「azure vm location list」としてください。こちらは最初からリストで出てきます。

予約したIPアドレスを確認する

PowerShell

Get-AzureReservedIP

【Azure CLI

azure network reserved-ip list

予約したIPアドレスクラウドサービスに割り当てる

PowerShell

Set-AzureReservedIPAssociation -ReservedIPName [予約IPアドレス名] -ServiceName [クラウドサービス名]

【Azure CLI】 …とここまで来て、CLIでは既存のクラウドサービスに対する割り当てができない気がしてきました(azure vm create –reserved-ip ~)。インスタンスレベルのパブリックIPアドレスは後付けで割り当てできるんですけどねぇ(azure vm public-ip set ~)。

割り当てたIPアドレスを外す

PowerShell】(2015年12月24日追記)

Remove-AzureReservedIPAssociation -ReservedIPName [予約IPアドレス名] -ServiceName [クラウドサービス名]

料金について

料金設定がいろいろと面白いですね。 azure.microsoft.com

最初の5個までは無料(ただし使用中に限る)、6個目以降もしくは予約のみで未使用のアドレスは月額306円/IPとのこと。リマップの回数もカウントされていて、100回目まで無料、101回目からリマップごとに10.2円かかるとのこと。

あと、課金の単位が1時間なんですよね。仮想マシンは1分単位なんですが、微妙にずれますねぇ。