Azure App Services からのハイブリッド接続Azure App Service Hybrid Connections

ハイブリッド接続は、Azure のサービスであり、Azure App Service の機能でもあります。Hybrid Connections is both a service in Azure and a feature in Azure App Service. サービスとして使用した場合、その用途と機能は、Azure App Service の用途と機能を上回ります。As a service, it has uses and capabilities beyond those that are used in App Service. ハイブリッド接続の詳細と Azure App Service では提供されない使用方法については、Azure Relay ハイブリッド接続に関するページを参照してください。To learn more about Hybrid Connections and their usage outside App Service, see Azure Relay Hybrid Connections.

Azure App Service 内では、ハイブリッド接続を使用して、他のネットワークのアプリケーション リソースにアクセスできます。Within App Service, Hybrid Connections can be used to access application resources in other networks. アプリからアプリケーション エンドポイントにアクセスできます。It provides access from your app to an application endpoint. アプリケーションにアクセスするために別の機能を有効にすることはありません。It does not enable an alternate capability to access your application. App Service で使用されるとき、各ハイブリッド接続は、単一の TCP ホストとポートの組み合わせに相互に関連付けられます。As used in App Service, each Hybrid Connection correlates to a single TCP host and port combination. つまり、TCP リッスン ポートにアクセスしている限り、任意のオペレーティング システムの任意のアプリケーションがハイブリッド接続エンドポイントになることができます。This means that the Hybrid Connection endpoint can be on any operating system and any application, provided you are accessing a TCP listening port. ハイブリッド接続では、アプリケーション プロトコルやアクセス先は認識されません。The Hybrid Connections feature does not know or care what the application protocol is, or what you are accessing. それは、ネットワーク アクセスを提供するだけです。It is simply providing network access.

動作のしくみHow it works

ハイブリッド接続機能は、Service Bus Relay に対する 2 つの発信呼び出しで構成されます。The Hybrid Connections feature consists of two outbound calls to Azure Service Bus Relay. App Service でアプリが実行されているホストにライブラリから接続されます。There is a connection from a library on the host where your app is running in App Service. また、ハイブリッド接続マネージャー (HCM) から Service Bus Relay へも接続します。There is also a connection from the Hybrid Connection Manager (HCM) to Service Bus Relay. HCM は、アクセスしようとしているネットワーク ホスト内にデプロイされるリレー サービスです。The HCM is a relay service that you deploy within the network hosting the resource you are trying to access.

この 2 つの結合された接続を通して、HCM の他方の側の固定されたホストとポートの組み合わせに至るアプリの TCP トンネルが設定されます。Through the two joined connections, your app has a TCP tunnel to a fixed host:port combination on the other side of the HCM. 接続では、セキュリティには TLS 1.2 が、認証/承認には Shared Access Signature (SAS) キーが使用されます。The connection uses TLS 1.2 for security and shared access signature (SAS) keys for authentication and authorization.

ハイブリッド接続のフローの概要図

アプリが DNS 要求を行い、その要求が構成済みのハイブリッド接続エンドポイントと一致した場合、発信 TCP トラフィックがハイブリッド接続を介してリダイレクトされます。When your app makes a DNS request that matches a configured Hybrid Connection endpoint, the outbound TCP traffic will be redirected through the Hybrid Connection.

注意

つまり、ハイブリッド接続では常に DNS 名を使用するようにします。This means that you should try to always use a DNS name for your Hybrid Connection. 一部のクライアント ソフトウェアは、エンドポイントで IP アドレスが使用されている場合は DNS 参照を実行しません。Some client software does not do a DNS lookup if the endpoint uses an IP address instead.

App Service のハイブリッド接続のメリットApp Service Hybrid Connection benefits

ハイブリッド接続機能には、次のようなさまざまなメリットがあります。There are a number of benefits to the Hybrid Connections capability, including:

  • アプリは、オンプレミスのシステムとサービスへセキュリティで保護されたアクセスを実行できます。Apps can access on-premises systems and services securely.
  • インターネットにアクセス可能なエンドポイントは必要ありません。The feature does not require an internet-accessible endpoint.
  • すばやく簡単に設定できます。It is quick and easy to set up.
  • 各ハイブリッド接続が単一のホストとポートの組み合わせに照合されるため、セキュリティ面で優れています。Each Hybrid Connection matches to a single host:port combination, helpful for security.
  • 通常はファイアウォールに穴を開ける必要はありません。It normally does not require firewall holes. 接続はすべて、標準的な Web ポート経由の発信です。The connections are all outbound over standard web ports.
  • ネットワーク レベルの機能であるため、アプリで使用される言語とエンドポイントで使用されるテクノロジに依存しません。Because the feature is network level, it is agnostic to the language used by your app and the technology used by the endpoint.
  • 単一のアプリから複数のネットワークにアクセスするために使用できます。It can be used to provide access in multiple networks from a single app.

ハイブリッド接続で実行できないことThings you cannot do with Hybrid Connections

ハイブリッド接続では次のことができません。Things you cannot do with Hybrid Connections include:

  • ドライブのマウントMount a drive.
  • UDP の使用Use UDP.
  • FTP パッシブ モードや拡張パッシブ モードなどの動的ポートを使用する TCP ベースのサービスへのアクセスAccess TCP-based services that use dynamic ports, such as FTP Passive Mode or Extended Passive Mode.
  • LDAP のサポート (UDP が必要な場合があるため)Support LDAP, because it can require UDP.
  • Active Directory のサポート (App Service worker にドメイン参加できないため)Support Active Directory, because you cannot domain join an App Service worker.

アプリでハイブリッド接続を追加または作成するAdd and Create Hybrid Connections in your app

ハイブリッド接続を作成するには、Azure Portal に移動し、アプリを選択します。To create a Hybrid Connection, go to the Azure portal and select your app. [ネットワーク] > [ハイブリッド接続エンドポイントの構成] の順に選択します。Select Networking > Configure your Hybrid Connection endpoints. ここで、アプリ用に構成されているハイブリッド接続を確認できます。Here you can see the Hybrid Connections that are configured for your app.

ハイブリッド接続の一覧のスクリーンショット

新しいハイブリッド接続を追加するには、[+] [ハイブリッド接続の追加] を選択します。To add a new Hybrid Connection, select [+] Add hybrid connection. 既に作成したハイブリッド接続が一覧表示されます。You'll see a list of the Hybrid Connections that you already created. アプリに 1 つ以上のハイブリッド接続を追加するには、追加する接続をクリックし、[選択したハイブリッド接続の追加] をクリックします。To add one or more of them to your app, select the ones you want, and then select Add selected Hybrid Connection.

ハイブリッド接続ポータルのスクリーンショット

新しいハイブリッド接続を作成するには、[ハイブリッド接続の新規作成] を選択します。If you want to create a new Hybrid Connection, select Create new hybrid connection. 以下を指定します。Specify the:

  • ハイブリッド接続の名前。Hybrid Connection name.
  • エンドポイント ホストの名前。Endpoint hostname.
  • エンドポイント ポート。Endpoint port.
  • 使用する Service Bus 名前空間。Service Bus namespace you want to use.

[ハイブリッド接続の新規作成] ダイアログ ボックスのスクリーン ショット

すべてのハイブリッド接続は Service Bus 名前空間に関連付けられており、各 Service Bus 名前空間は Azure リージョンに存在します。Every Hybrid Connection is tied to a Service Bus namespace, and each Service Bus namespace is in an Azure region. ネットワーク待機時間の誘発を避けるためには、できるだけアプリと同じリージョンの Service Bus 名前空間を使用することが重要です。It's important to try to use a Service Bus namespace in the same region as your app, to avoid network induced latency.

ハイブリッド接続をアプリから削除するには、ハイブリッド接続を右クリックし、[切断] を選択します。If you want to remove your Hybrid Connection from your app, right-click it and select Disconnect.

ハイブリッド接続をアプリに追加すると、ハイブリッド接続を選択するだけで詳細情報を表示できます。When a Hybrid Connection is added to your app, you can see details on it simply by selecting it.

ハイブリッド接続の詳細のスクリーンショット

Azure Relay ポータルでのハイブリッド接続の作成Create a Hybrid Connection in the Azure Relay portal

アプリ内からポータルを操作するだけでなく、Azure Relay ポータルからハイブリッド接続を作成することもできます。In addition to the portal experience from within your app, you can create Hybrid Connections from within the Azure Relay portal. ハイブリッド接続を App Service で使用するには、以下が必要です。For a Hybrid Connection to be used by App Service, it must:

  • クライアント承認を要求する。Require client authorization.
  • メタデータ項目に、host:port の組み合わせを値として含むエンドポイントの名前を付ける。Have a metadata item, named endpoint, that contains a host:port combination as the value.

ハイブリッド接続と App Service プランHybrid Connections and App Service plans

App Service ハイブリッド接続は、Basic、Standard、Premium、および Isolated の価格 SKU でのみ利用できます。App Service Hybrid Connections are only available in Basic, Standard, Premium, and Isolated pricing SKUs. 料金プランに関連付けられている制限があります。There are limits tied to the pricing plan.

料金プランPricing plan プランで使用できるハイブリッド接続の数Number of Hybrid Connections usable in the plan
BasicBasic 55
標準Standard 2525
PremiumPremium 200200
IsolatedIsolated 200200

App Service プランの UI には、使用されているハイブリッド接続の数と、それを使用するアプリが表示されます。The App Service plan UI shows you how many Hybrid Connections are being used and by what apps.

App Service プラン プロパティのスクリーン ショット

[ハイブリッド接続] を選択して詳細を表示します。Select the Hybrid Connection to see details. アプリ ビューに表示されるすべての情報を表示できます。You can see all the information that you saw at the app view. そのハイブリッド接続を使用している同じプラン内の他のアプリの数も確認できます。You can also see how many other apps in the same plan are using that Hybrid Connection.

App Service プランで使用できるハイブリッド接続エンドポイントの数には制限があります。There is a limit on the number of Hybrid Connection endpoints that can be used in an App Service plan. ただし、各ハイブリッド接続は、そのプラン内の無制限の数のアプリで使用できます。Each Hybrid Connection used, however, can be used across any number of apps in that plan. たとえば、1 つの App Service プラン内の 5 つの異なるアプリによって使用されている 1 つのハイブリッド接続は、1 つのハイブリッド接続とみなされます。For example, a single Hybrid Connection that is used in five separate apps in an App Service plan counts as one Hybrid Connection.

価格Pricing

App Service プランの SKU 要件が存在する以外に、ハイブリッド接続を使用するには追加コストがかかります。In addition to there being an App Service plan SKU requirement, there is an additional cost to using Hybrid Connections. ハイブリッド接続によって使用されるリスナーごとに料金が発生します。There is a charge for each listener used by a Hybrid Connection. リスナーはハイブリッド接続マネージャーです。The listener is the Hybrid Connection Manager. 5 個のハイブリッド接続が 2 つのハイブリッド接続マネージャーによってサポートされている場合、リスナーは 10 になります。If you had five Hybrid Connections supported by two Hybrid Connection Managers, that would be 10 listeners. 詳細については、「Service Bus の価格」をご覧ください。For more information, see Service Bus pricing.

Hybrid Connection Manager の使用Hybrid Connection Manager

ハイブリッド接続を機能させるためには、ハイブリッド接続エンドポイントをホストしているネットワークにリレー エージェントを作成する必要があります。The Hybrid Connections feature requires a relay agent in the network that hosts your Hybrid Connection endpoint. そのリレー エージェントは、Hybrid Connection Manager (HCM) と呼ばれます。That relay agent is called the Hybrid Connection Manager (HCM). [Azure ポータル]にあるアプリから HCM をダウンロードするには、 portal[ネットワーク] > [ハイブリッド接続エンドポイントの構成] を選択します。To download HCM, from your app in the Azure portal, select Networking > Configure your Hybrid Connection endpoints.

このツールは、Windows Server 2012 以降のバージョンの Windows で実行されます。This tool runs on Windows Server 2012 and later. HCM はサービスとして実行し、送信のためにポート 443 で Azure Relay に接続します。The HCM runs as a service and connects outbound to Azure Relay on port 443.

HCM をインストールしたら、HybridConnectionManagerUi.exe を実行して、このツールの UI を使用できます。After installing HCM, you can run HybridConnectionManagerUi.exe to use the UI for the tool. このファイルは、Hybrid Connection Manager のインストール ディレクトリにあります。This file is in the Hybrid Connection Manager installation directory. Windows 10 では、検索ボックスにハイブリッド接続マネージャー UIと入力して検索できます。In Windows 10, you can also just search for Hybrid Connection Manager UI in your search box.

ハイブリッド接続マネージャーのスクリーンショット

HCM UI を起動すると、HCM のこのインスタンスに構成されているすべてのハイブリッド接続の一覧が最初に表示されます。When you start the HCM UI, the first thing you see is a table that lists all the Hybrid Connections that are configured with this instance of the HCM. 変更を加える場合は、まず Azure で認証します。If you want to make any changes, first authenticate with Azure.

1 つまたは複数のハイブリッド接続を HCM に追加するには:To add one or more Hybrid Connections to your HCM:

  1. HCM UI を起動します。Start the HCM UI.

  2. [Configure another hybrid connection] (別のハイブリッド接続の構成) を選択します。Select Configure another Hybrid Connection. [Configure New Hybrid Connection] (新しいハイブリッド接続の構成) のスクリーン ショットScreenshot of Configure New Hybrid Connections

  3. Azure のアカウントを使用してサインインします。Sign in with your Azure account.

  4. サブスクリプションを選択します。Choose a subscription.

  5. HCM をリレーするハイブリッド接続を選択します。Select the Hybrid Connections that you want the HCM to relay. ハイブリッド接続のスクリーンショットScreenshot of Hybrid Connections

  6. [保存] を選択します。Select Save.

追加したハイブリッド接続が表示されます。You can now see the Hybrid Connections you added. 構成済みのハイブリッド接続を選択すると詳細を表示することもできます。You can also select the configured Hybrid Connection to see details.

ハイブリッド接続の詳細のスクリーンショット

構成済みのハイブリッド接続を HCM でサポートするには、以下が必要です。To support the Hybrid Connections it is configured with, HCM requires:

  • ポート 443 経由の Azure への TCP アクセスTCP access to Azure over port 443.
  • ハイブリッド接続エンドポイントに対する TCP アクセスTCP access to the Hybrid Connection endpoint.
  • エンドポイント ホストおよび Service Bus 名前空間で DNS 参照を実行する機能。The ability to do DNS look-ups on the endpoint host and the Service Bus namespace.

注意

Azure Relay は、Web ソケットを使用して接続します。Azure Relay relies on Web Sockets for connectivity. この機能は、Windows Server 2012 以降でのみご利用いただけます。This capability is only available on Windows Server 2012 or later. このため、ハイブリッド接続マネージャーは、Windows Server 2012 より前のバージョンではサポートされていません。Because of that, HCM is not supported on anything earlier than Windows Server 2012.

冗長性Redundancy

HCM はそれぞれ、複数のハイブリッド接続をサポートできます。Each HCM can support multiple Hybrid Connections. また、特定のハイブリッド接続については、複数の HCM がサポートすることができます。Also, any given Hybrid Connection can be supported by multiple HCMs. 既定の動作は、特定のエンドポイントに対して構成された HCM でのトラフィックの転送です。The default behavior is to route traffic across the configured HCMs for any given endpoint. ネットワークからのハイブリッド接続の高可用性が必要な場合は、複数の HCM を別個のコンピューターで実行します。If you want high availability on your Hybrid Connections from your network, run multiple HCMs on separate machines. リレー サービスがトラフィックを HCM に分散するために使用する負荷分散アルゴリズムでは、割り当てがランダムに行われます。The load distribution algorithm used by the Relay service to distribute traffic to the HCMs is random assignment.

ハイブリッド接続の手動追加Manually add a Hybrid Connection

サブスクリプションを持っていないユーザーが特定のハイブリッド接続に対する HCM インスタンスをホストするには、ハイブリッド接続用のゲートウェイ接続文字列を共有します。To enable someone outside your subscription to host an HCM instance for a given Hybrid Connection, share the gateway connection string for the Hybrid Connection with them. Azure Portal の [ハイブリッド接続プロパティ] でゲートウェイ接続文字列を確認できます。You can see the gateway connection string in the Hybrid Connection properties in the Azure portal. この文字列を使用するには、HCM で [手動で入力] ボタンをクリックし、ゲートウェイ接続文字列を貼り付けます。To use that string, select Enter Manually in the HCM, and paste in the gateway connection string.

ハイブリッド接続の手動追加

アップグレードUpgrade

ハイブリッド接続マネージャーは、問題の修正や機能強化のために定期的に更新されます。There are periodic updates to the Hybrid Connection Manager to fix issues or provide improvements. アップグレードがリリースされると HCM UI にポップアップが表示されます。When upgrades are released, a popup will show up in the HCM UI. アップグレードを適用すると、変更が適用され、HCM が再起動されます。Applying the upgrade will apply the changes and restart the HCM.

ハイブリッド接続をプログラミングによってアプリに追加するAdding a Hybrid Connection to your app programmatically

次に示す API を直接使用して、アプリに接続するハイブリッド接続を管理できます。The APIs noted below can be used directly to manage the Hybrid Connections connected to your apps.

/subscriptions/[subscription name]/resourceGroups/[resource group name]/providers/Microsoft.Web/sites/[app name]/hybridConnectionNamespaces/[relay namespace name]/relays/[hybrid connection name]?api-version=2016-08-01

ハイブリッド接続に関連付けられた JSON オブジェクトは次のようになります。The JSON object associated with a Hybrid Connection looks like:

{
  "name": "[hybrid connection name]",
  "type": "Microsoft.Relay/Namespaces/HybridConnections",
  "location": "[location]",
  "properties": {
    "serviceBusNamespace": "[namespace name]",
    "relayName": "[hybrid connection name]",
    "relayArmUri": "/subscriptions/[subscription id]/resourceGroups/[resource group name]/providers/Microsoft.Relay/namespaces/[namespace name]/hybridconnections/[hybrid connection name]",
    "hostName": "[endpoint host name]",
    "port": [port],
    "sendKeyName": "defaultSender",
    "sendKeyValue": "[send key]"
  }
}

この情報を使用する方法の 1 つとして、ARMClient GitHub プロジェクトから取得できる armclient があります。One way to use this information is with the armclient, which you can get from the ARMClient GitHub project. 既存のハイブリッド接続をアプリに接続する例を次に示します。Here is an example on attaching a pre-existing Hybrid Connection to your app. 上記のスキーマに対して次の JSON ファイルを作成します。Create a JSON file per the above schema like:

{
  "name": "relay-demo-hc",
  "type": "Microsoft.Relay/Namespaces/HybridConnections",
  "location": "North Central US",
  "properties": {
    "serviceBusNamespace": "demo-relay",
    "relayName": "relay-demo-hc",
    "relayArmUri": "/subscriptions/ebcidic-asci-anna-nath-rak1111111/resourceGroups/myrelay-rg/providers/Microsoft.Relay/namespaces/demo-relay/hybridconnections/relay-demo-hc",
    "hostName": "my-wkstn.home",
    "port": 1433,
    "sendKeyName": "defaultSender",
    "sendKeyValue": "Th9is3is8a82lot93of3774stu887ff122235="
  }
}

この API を使用するには、キーの送信とリレー リソース ID が必要です。 ファイル名 hctest.json として情報を保存した場合は、次のコマンドを発行してハイブリッド接続をアプリに接続します。If you saved your information with the filename hctest.json, issue this command to attach your Hybrid Connection to your app:

armclient login
armclient put /subscriptions/ebcidic-asci-anna-nath-rak1111111/resourceGroups/myapp-rg/providers/Microsoft.Web/sites/myhcdemoapp/hybridConnectionNamespaces/demo-relay/relays/relay-demo-hc?api-version=2016-08-01 @hctest.json

トラブルシューティングTroubleshooting

"接続済み" 状態の場合は、少なくとも 1 つの HCM がそのハイブリッド接続で構成され、Azure にアクセスできます。The status of "Connected" means that at least one HCM is configured with that Hybrid Connection, and is able to reach Azure. ハイブリッド接続の状態が [接続済み] にならない場合、Azure にアクセスできる HCM でハイブリッド接続が構成されていません。If the status for your Hybrid Connection does not say Connected, your Hybrid Connection is not configured on any HCM that has access to Azure.

クライアントがエンドポイントに接続できない主な理由は、エンドポイントが DNS 名の代わりに IP アドレスを使用して指定されたためです。The primary reason that clients cannot connect to their endpoint is because the endpoint was specified by using an IP address instead of a DNS name. アプリが目的のエンドポイントに到達できないときに IP アドレスを使用していた場合は、HCM を実行中のホストで有効な DNS 名の使用に切り替えます。If your app cannot reach the desired endpoint and you used an IP address, switch to using a DNS name that is valid on the host where the HCM is running. また、HCM が実行されているホストで DNS 名が解決されていることを確認してください。Also check that the DNS name resolves properly on the host where the HCM is running. HCM が実行されているホストからハイブリッド接続エンドポイントに接続していることを確認します。Confirm that there is connectivity from the host where the HCM is running to the Hybrid Connection endpoint.

App Service では、Advanced Tools (Kudu) コンソールから tcpping ツールを呼び出すことができます。In App Service, the tcpping tool can be invoked from the Advanced Tools (Kudu) console. このツールは、TCP エンドポイントにアクセスできるかどうかを通知できますが、ハイブリッド接続エンドポイントにアクセスできるかどうは通知しません。This tool can tell you if you have access to a TCP endpoint, but it does not tell you if you have access to a Hybrid Connection endpoint. コンソールで、ハイブリッド接続エンドポイントに対してツールを使用している場合は、host:port の組み合わせが使用されていることのみを確認できます。When you use the tool in the console against a Hybrid Connection endpoint, you are only confirming that it uses a host:port combination.

BizTalk ハイブリッド接続BizTalk Hybrid Connections

以前、この機能は BizTalk ハイブリッド接続と呼ばれていました。The early form of this feature was called BizTalk Hybrid Connections. これは 2018 年 5 月 31 日で終了となり、運用が停止されました。This capability went End of Life on May 31, 2018 and ceased operations. BizTalk ハイブリッド接続は、すべてのアプリから削除され、ポータルや API からアクセスできなくなっています。BizTalk hybrid connections have been removed from all apps and are not accessible through the portal or API. このような古い接続がまだハイブリッド接続マネージャーに構成されている場合、[中止] というステータスが表示され、一番下には有効期間が終了したという説明が表示されます。If you still have these older connections configured in the Hybrid Connection Manager, then you will see a status of Discontinued and display an End of Life statement at the bottom.

HCM での BizTalk ハイブリッド接続