クラウド サービス用に複数の VIP を構成する
重要
Azure Load Balancer では、2 種類がサポートされています。Basic と Standard です。 この記事では、Basic Load Balancer について説明します。 Standard Load Balancer について詳しくは、Standard Load Balancer の概要に関するページをご覧ください。
Azure が提供する IP アドレスを使用して、パブリック インターネット経由で Azure クラウド サービスにアクセスできます。 このパブリック IP アドレスは、クラウド サービス内の仮想マシン (VM) インスタンスではなく、Azure ロード バランサーにリンクされているため、VIP (仮想 IP) と呼ばれます。 1 つの VIP を使用して、クラウド サービス内の任意の VM インスタンスにアクセスできます。
ただし、同じクラウド サービスへのエントリ ポイントとして複数の VIP が必要になる場合があります。 たとえば、クラウド サービスは、既定のポート 443 を使用して SSL 接続を必要とする複数の Web サイトをホストする場合があります。これは、各サイトが異なる顧客またはテナントに対してホストされるためです。 このシナリオでは、Web サイトごとに異なる公開 IP アドレスが必要です。 次の図は、同じパブリック ポートで複数の SSL 証明書が必要な一般的なマルチテナント Web ホスティングを示しています。
上記の例では、すべての VIP が同じパブリック ポート (443) を使用し、トラフィックは、すべての Web サイトをホストするクラウド サービスの内部 IP アドレスの一意のプライベート ポート上の 1 つ以上の負荷分散された VM にリダイレクトされます。
注
複数の VIP を使用する必要があるもう 1 つの状況は、同じ仮想マシンのセットで複数の SQL AlwaysOn 可用性グループ リスナーをホストすることです。
VIP は既定では動的です。つまり、クラウド サービスに割り当てられた実際の IP アドレスは、時間の経過と同時に変化する可能性があります。 この問題が発生しないようにするには、サービスの VIP を予約します。 予約済み VIP の詳細については、予約済みパブリック IPを参照してください。
注
VIP と予約 IP の価格については、IP アドレスの価格 を参照してください。
PowerShell を使用すると、クラウド サービスで使用される VIP を確認したり、VIP の追加と削除、エンドポイントへの VIP の関連付け、特定の VIP での負荷分散の構成を行うことができます。
制限事項
現時点では、マルチ VIP 機能は次のシナリオに制限されています。
- IaaSのみ です。 マルチ VIP は、VM を含むクラウド サービスに対してのみ有効にできます。 ロール インスタンスで PaaS シナリオでマルチ VIP を使用することはできません。
- PowerShell はのみです。 マルチ VIP は、PowerShell を使用してのみ管理できます。
これらの制限は一時的なものであり、いつでも変更される可能性があります。 今後の変更を確認するには、このページをもう一度確認してください。
クラウド サービスに VIP を追加する方法
サービスに VIP を追加するには、次の PowerShell コマンドを実行します。
Add-AzureVirtualIP -VirtualIPName Vip3 -ServiceName myService
このコマンドは、次の例のような結果を表示します。
OperationDescription OperationId OperationStatus
-------------------- ----------- ---------------
Add-AzureVirtualIP 4bd7b638-d2e7-216f-ba38-5221233d70ce Succeeded
クラウド サービスから VIP を削除する方法
上記の例でサービスに追加された VIP を削除するには、次の PowerShell コマンドを実行します。
Remove-AzureVirtualIP -VirtualIPName Vip3 -ServiceName myService
重要
VIP は、エンドポイントが関連付けられていない場合にのみ削除できます。
クラウド サービスから VIP 情報を取得する方法
クラウド サービスに関連付けられている VIP を取得するには、次の PowerShell スクリプトを実行します。
$deployment = Get-AzureDeployment -ServiceName myService
$deployment.VirtualIPs
スクリプトには、次の例のような結果が表示されます。
Address : 191.238.74.148
IsDnsProgrammed : True
Name : Vip1
ReservedIPName :
ExtensionData :
Address :
IsDnsProgrammed :
Name : Vip2
ReservedIPName :
ExtensionData :
Address :
IsDnsProgrammed :
Name : Vip3
ReservedIPName :
ExtensionData :
この例では、クラウド サービスには 3 つの VIP があります。
- Vip1 は既定のVIPです。それは、IsDnsProgrammedNameの値がtrueに設定されているためです。
- Vip2 と Vip3 は、IP アドレスがないため使用されません。 エンドポイントを VIP に関連付ける場合にのみ使用されます。
注
サブスクリプションは、エンドポイントに関連付けられた後にのみ、追加の VIP に対して課金されます。 価格の詳細については、「IP アドレスの価格」を参照してください。
エンドポイントに VIP を関連付ける方法
クラウド サービスの VIP をエンドポイントに関連付けるには、次の PowerShell コマンドを実行します。
Get-AzureVM -ServiceName myService -Name myVM1 |
Add-AzureEndpoint -Name myEndpoint -Protocol tcp -LocalPort 8080 -PublicPort 80 -VirtualIPName Vip2 |
Update-AzureVM
このコマンドは、ポート 80の Vip2 と呼ばれる VIP にリンクされたエンドポイントを作成し、ポート 8080で TCP を使用 myService という名前のクラウド サービス myVM1 という名前の VM にリンクします。
構成を確認するには、次の PowerShell コマンドを実行します。
$deployment = Get-AzureDeployment -ServiceName myService
$deployment.VirtualIPs
出力は次の例のようになります。
Address : 191.238.74.148
IsDnsProgrammed : True
Name : Vip1
ReservedIPName :
ExtensionData :
Address : 191.238.74.13
IsDnsProgrammed :
Name : Vip2
ReservedIPName :
ExtensionData :
Address :
IsDnsProgrammed :
Name : Vip3
ReservedIPName :
ExtensionData :
特定の VIP で負荷分散を有効にする方法
負荷分散のために、1 つの VIP を複数の仮想マシンに関連付けることができます。 たとえば、myService という名前のクラウド サービスと、myVM1 と myVM2 という名前 2 つの仮想マシンがあるとします。 クラウド サービスには複数の VIP があり、そのうちの 1 つは Vip2という名前です。 Vip2 上のポート 81 へのすべてのトラフィックが、ポート 8181の myVM1 と myVM2 の間で分散されるようにするには、次の PowerShell スクリプトを実行します。
Get-AzureVM -ServiceName myService -Name myVM1 |
Add-AzureEndpoint -Name myEndpoint -LoadBalancedEndpointSetName myLBSet -Protocol tcp -LocalPort 8181 -PublicPort 81 -VirtualIPName Vip2 -DefaultProbe |
Update-AzureVM
Get-AzureVM -ServiceName myService -Name myVM2 |
Add-AzureEndpoint -Name myEndpoint -LoadBalancedEndpointSetName myLBSet -Protocol tcp -LocalPort 8181 -PublicPort 81 -VirtualIPName Vip2 -DefaultProbe |
Update-AzureVM
別の VIP を使用するようにロード バランサーを更新することもできます。 たとえば、次の PowerShell コマンドを実行すると、Vip1 という名前の VIP を使用するように負荷分散セットを変更します。
Set-AzureLoadBalancedEndpoint -ServiceName myService -LBSetName myLBSet -VirtualIPName Vip1
次のステップ
Azure ロード バランサー の Azure Monitor ログを確認する
インターネットに接続 ロード バランサーの概要