Cloud Services および Virtual Machines での予約済み IP アドレスの使用
このポストは、5 月 14 日に投稿された Reserved IP addresses for Cloud Services & Virtual Machines の翻訳です。
みなさん、こんにちは。
Cloud Services と Virtual Machines で使用できる予約済み IP アドレスの一般提供が 2014 年 5 月 12 日から開始されることが発表されました。この記事では、予約済み IP の管理操作、Cloud Services または Virtual Machines での関連付け、料金モデル、サポート対象外のシナリオについて説明します。予約済み IP についての技術的なドキュメントは、こちらのページ (英語) でお読みいただけます。
予約済み IP アドレスの概要、および必要となるケース
Microsoft Azure の最新リリースの PowerShell では、パブリック IPv4 アドレスを Azure サブスクリプションで予約できるようになっています。これらの IP アドレスは、サブスクリプションが有効である限りユーザー自身が所有し、その予約済み IP アドレスのリージョン内で Cloud Services のデプロイメントと関連付けることができます。この機能は特に、公開される IP アドレスを対象としたものです。こちらの記事でお伝えしたとおり、内部 IP アドレスの予約は、Azure プラットフォームで既にサポートされています。
予約済み IP が必要となる理由には、次のようなものが挙げられます。
- A レコード DNS の簡素化 : VM を削除してシャットダウンした後も同一のパブリック IP を保持できるため、IP アドレスに依存する DNS やその他のアプリケーションについて、再起動時に新たに割り当てられた IP に合わせてプログラムを作成しなおす必要がなくなります。
- オンプレミス接続のセキュリティ : オンプレミスのプロキシやファイアウォールで管理とアクセス制御を行いつつ、パブリック IP を使用して企業ネットワークからユーザーの Azure サービスにアクセスできるようになります。また、VM の終了や再起動を行うたびにプログラムを作成しなおす必要がなくなります。
次の図は、予約された VIP が動作するしくみ (予約済み IP) を示したものです。Azure の予約済み IP はリージョン単位で使用可能です。このため、予約済み IP は、任意のサイズのロール インスタンスを使用するクラウド サービスと関連付けることができます。
Microsoft Azure で IP アドレスを予約する方法
先日から、Azure サブスクリプションで Azure の PowerShell コマンドレット (英語) や REST API (英語) を使用して予約済み IP アドレスを作成できるようになっています。IP アドレスの予約は、次のリージョンを除くすべてのリージョンで可能です。サポート対象外のリージョンでも、まもなくサポートを追加する予定です。
- ブラジル (プレビュー)
- 中国東部
- 中国北部
Azure 管理ポータルからの予約済み IP アドレスの作成はサポートされていませんのでご注意ください。PowerShell コマンドレットを使用して予約済み IP アドレスを作成する場合の例を次に示します。
New-AzureReservedIP –ReservedIPName “MyWebsiteIP” –Label “WebsiteIP” –Location “Japan West”
Azure プラットフォームでは、既存の Cloud Services や Virtual Machines の IP アドレスの予約はサポートしていません。この機能は、近いうちにサポート開始を発表する予定です。
Virtual Machines で予約済み IP アドレスを使用する方法
サブスクリプションで予約済み IP アドレスの作成が完了したら、その予約済み IP を使用して VM のデプロイメントを作成できます。PowerShell コマンドレットの New-AzureVM で予約済み IP を使用する場合の例を次に示します。
New-AzureVMConfig -Name "WebAppVM" -InstanceSize Small -ImageName $images[130].ImageName | Add-AzureProvisioningConfig -Windows -AdminUsername $username -Password $password | New-AzureVM -ServiceName "MaheshWebApp" -ReservedIPName "MyWebSiteIP" -Location "Japan West"
2 つの主要なシナリオを例に挙げて説明します。
- VM のシャットダウン - これまでは、すべての VM インスタンスがシャットダウン状態に移行されると、パブリック IP アドレスは解放され、VM インスタンスが起動されると新しいパブリック IP が割り当てられていました。しかし、今回のリリースでは、VM で予約済み IP を使用している場合、この予約済み IP を VM の再デプロイのときに使用できます。
- VM の削除- 予約済み IP を使用しているすべての VM を削除した場合でも、予約済み IP はユーザーのサブスクリプションで保持されるため、同一リージョンで再度 VM をデプロイするときに使用できます。
VM の REST API に関するドキュメントは、こちらのページでご覧いただけます。
Cloud Services (Web/Worker ロール) で予約済み IP アドレスを使用する方法
今回は、予約済み IP の使用を Cloud Services (Web/Worker) のデプロイメントでサポートすることも同時に発表しました。Cloud Services で予約済み IP を使用するには、SDK バージョン 2.3 (2014 年 4 月のリリース) をダウンロードする必要があります。サービス構成スキーマ (cscfg ファイル) で予約済み IP を参照する場合の例を次に示します。
<?xml version="1.0" encoding="utf-8"?>
<ServiceConfiguration serviceName="ReservedIPSample" 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>
<ReservedIPs>
<ReservedIP name="MyWebSiteIP"/>
</ReservedIPs>
</AddressAssignments>
</NetworkConfiguration>
</ServiceConfiguration>
Web/Worker ロールのデプロイメントを削除すると、それまでそのデプロイメントに関連付けられていた予約済み IP はサブスクリプションで使用可能になり、同一リージョン内でデプロイを実行するときに使用することができます。
サブスクリプションで予約済み IP アドレスを解放する方法
Virtual Machines と Cloud Services のどちらのデプロイメントにも関連付けられていない予約済み IP アドレスにも料金は発生しますのでご注意ください。このため、不要な IP アドレスは解放することを推奨します。予約済み IP に対する課金の詳細については、こちらのページをご覧ください。サブスクリプションから予約済み IP を解放する場合は、次の PowerShell コマンドレットを使用します。
Remove-AzureReservedIP -ReservedIPName "MyWebSiteIP" -Force
予約済み IP アドレスとアフィニティ グループに基づく仮想ネットワーク
現時点では、Microsoft Azure では予約済み IP に関連付けられたクラウド サービスや仮想マシンを「アフィニティ グループに基づく仮想ネットワーク」にデプロイすることはできません。次のスニペットは、予約済み IP と関連付けられた仮想マシンを「アフィニティ グループに基づく仮想ネットワーク」にデプロイしようとした際に表示されるエラー メッセージの例です。
New-AzureVM : BadRequest : The deployment contains VirtualNetwork DemoVNET that belongs to an Affinity Group and ReservedIP that belongs to a region. This combination is not allowed.
予約済み IP アドレスとリージョン仮想ネットワーク
今回のリリースでは、リージョン (地域に基づく) 仮想ネットワークのサポートも発表しました。詳細については、こちらの記事を参照してください。Microsoft Azure では、予約済み IP と関連付けられたクラウド サービスや仮想マシンを地域に基づく仮想ネットワークにデプロイできます。
予約済み IP アドレスの料金
IPv4 アドレスは非常にひっ迫した状況にあるため、Microsoft Azure では、一部の条件で少額ながら IP アドレスに料金を設定しています。予約済み IP の料金と課金に関してよく寄せられる質問は、こちらのページを参照してください。Cloud Services では、少なくとも 1 つの Web/Worker ロールまたは VM インスタンスを実行する必要があります。
請求書には、予約済み IP に関して 2 つのエンティティが記載されます。
- 予約済み IP アドレスの使用時間 – 次の 2 つの場合について、サブスクリプションで予約済み IP アドレスを使用した時間が時間単位で記載されます。
- デプロイメント (Virtual Machines または Cloud Services) の実行中のインスタンスに関連付けられていなかった時間
- サブスクリプションで予約済み IP アドレスを追加使用していた時間
- 予約済み IP の再マッピング – IP アドレスと新しいクラウド サービスを関連付けるたびに、1 回の再マッピングとして計上されます。再マッピングの料金の詳細については、予約済み IP の料金ページでご覧いただけます。
予約済み IP アドレスのサブスクリプションの制限
すべての Azure サブスクリプションで、予約済み IP の使用は 5 個まで(日本語翻訳版注:無償で使えるのが5個まで。サブスクリプションごとの上限は10個まで)認められています。お客様のサブスクリプションでこの予約済み IP の制限数を増加させる場合は、こちらのページからサポート要求をお送りください。Azure サブスクリプションの制限に関するドキュメントは、こちらのページ (英語) をご覧ください。