Service Fabric クラスターのポートを開く
Azure Service Fabric クラスターにデプロイされたロード バランサーは、ノード上で動作するアプリにトラフィックを送信します。 別のポートを使用するようにアプリを変更する場合は、Azure Load Balancer でそのポートを公開 (または別のポートをルーティング) する必要があります。
Service Fabric クラスターを Azure にデプロイすると、ロード バランサーが自動的に作成されます。 ロード バランサーがない場合は、インターネットに接続するロード バランサーの構成に関するページを参照してください。
Note
Azure を操作するには、Azure Az PowerShell モジュールを使用することをお勧めします。 作業を始めるには、「Azure PowerShell をインストールする」を参照してください。 Az PowerShell モジュールに移行する方法については、「AzureRM から Az への Azure PowerShell の移行」を参照してください。
Service Fabric の構成
Service Fabric アプリケーションの ServiceManifest.xml 構成ファイルは、アプリケーションによる使用が想定されるエンドポイントを定義します。 エンドポイントを定義する構成ファイルが更新されたら、そのポート (または別のポート) を公開するようにロード バランサーを更新する必要があります。 Service Fabric のエンドポイントを作成する方法の詳細については、エンドポイントの設定に関するページを参照してください。
ロード バランサー規則の作成
ロード バランサー規則は、インターネットに接続するポートを開き、アプリケーションが使用する内部ノードのポートにトラフィックを転送します。 ロード バランサーがない場合は、インターネットに接続するロード バランサーの構成に関するページを参照してください。
ロード バランサー規則を作成するには、次の情報を収集する必要があります。
- ロード バランサー名。
- ロード バランサーと Service Fabric クラスターのリソース グループ。
- 外部ポート。
- 内部ポート。
Azure CLI
Azure CLI を使用してロード バランサー規則を作成するためのコマンドは 1 つのみです。 新しい規則を作成するには、ロード バランサー名とリソース グループ名の両方を把握している必要があります。
Note
ロード バランサーの名前を確認する必要がある場合は、このコマンドを使用すると、すべてのロード バランサーと関連するリソース グループの一覧を簡単に取得できます。
az network lb list --query "[].{ResourceGroup: resourceGroup, Name: name}"
az network lb rule create --backend-port 40000 --frontend-port 39999 --protocol Tcp --lb-name LB-svcfab3 -g svcfab_cli -n my-app-rule
Azure CLI コマンドには、いくつかのパラメーターがあります。それらのパラメーターを次の表に示します。
パラメーター | 説明 |
---|---|
--backend-port |
Service Fabric アプリケーションがリッスンしているポート。 |
--frontend-port |
ロード バランサーが外部接続用に公開するポート。 |
-lb-name |
変更するロード バランサーの名前。 |
-g |
ロード バランサーと Service Fabric クラスターの両方を備えたリソース グループ。 |
-n |
ルールの希望の名前。 |
Note
Azure CLI を使用してロード バランサーを作成する方法の詳細については、Azure CLI を使用したロード バランサーの作成に関するページを参照してください。
PowerShell
PowerShell は、Azure CLI よりも少し複雑です。 次の概念的な手順に従って、ルールを作成します。
- Azure からロード バランサーを取得します。
- 規則を作成します。
- 規則をロード バランサーに追加します。
- ロード バランサーを更新します。
Note
ロード バランサーの名前を確認する必要がある場合は、このコマンドを使用すると、すべてのロード バランサーと関連するリソース グループの一覧を簡単に取得できます。
Get-AzLoadBalancer | Select Name, ResourceGroupName
# Get the load balancer
$lb = Get-AzLoadBalancer -Name LB-svcfab3 -ResourceGroupName svcfab_cli
# Create the rule based on information from the load balancer.
$lbrule = New-AzLoadBalancerRuleConfig -Name my-app-rule7 -Protocol Tcp -FrontendPort 39990 -BackendPort 40009 `
-FrontendIpConfiguration $lb.FrontendIpConfigurations[0] `
-BackendAddressPool $lb.BackendAddressPools[0] `
-Probe $lb.Probes[0]
# Add the rule to the load balancer
$lb.LoadBalancingRules.Add($lbrule)
# Update the load balancer on Azure
$lb | Set-AzLoadBalancer
New-AzLoadBalancerRuleConfig
コマンドでは、-FrontendPort
はロード バランサーが外部接続用に公開するポートを表し、-BackendPort
は Service Fabric アプリがリッスンするポートを表します。
Note
PowerShell を使用してロード バランサーを作成する方法の詳細については、PowerShell を使用したロード バランサーの作成に関するページを参照してください。
次のステップ
Service Fabric でのネットワークの詳細について確認する。