Skip to content

Commit d7ffa8f

Browse files
authored
Merge pull request #180943 from dlepow/shg
[APIM] FQDNs required by self-hosted gateway
2 parents 966a023 + 5d514e0 commit d7ffa8f

File tree

1 file changed

+42
-21
lines changed

1 file changed

+42
-21
lines changed

articles/api-management/self-hosted-gateway-overview.md

Lines changed: 42 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -7,60 +7,83 @@ author: dlepow
77

88
ms.service: api-management
99
ms.topic: article
10-
ms.date: 05/25/2021
10+
ms.date: 01/19/2022
1111
ms.author: danlep
1212
---
1313

1414
# Self-hosted gateway overview
1515

16-
This article explains how self-hosted gateway feature of Azure API Management enables hybrid and multi-cloud API management, presents its high-level architecture, and highlights its capabilities.
16+
This article explains how the self-hosted gateway feature of Azure API Management enables hybrid and multi-cloud API management, presents its high-level architecture, and highlights its capabilities.
1717

1818
## Hybrid and multi-cloud API management
1919

2020
The self-hosted gateway feature expands API Management support for hybrid and multi-cloud environments and enables organizations to efficiently and securely manage APIs hosted on-premises and across clouds from a single API Management service in Azure.
2121

22-
With the self-hosted gateway, customers have the flexibility to deploy a containerized version of the API Management gateway component to the same environments where they host their APIs. All self-hosted gateways are managed from the API Management service they are federated with, thus providing customers with the visibility and unified management experience across all internal and external APIs. Placing the gateways close to the APIs allow customers to optimize API traffic flows and address security and compliance requirements.
22+
With the self-hosted gateway, customers have the flexibility to deploy a containerized version of the API Management gateway component to the same environments where they host their APIs. All self-hosted gateways are managed from the API Management service they are federated with, thus providing customers with the visibility and unified management experience across all internal and external APIs. Placing the gateways close to the APIs allows customers to optimize API traffic flows and address security and compliance requirements.
2323

2424
Each API Management service is composed of the following key components:
2525

2626
- Management plane, exposed as an API, used to configure the service via the Azure portal, PowerShell, and other supported mechanisms.
27-
- Gateway (or data plane) is responsible for proxying API requests, applying policies, and collecting telemetry
27+
- Gateway (or data plane), which is responsible for proxying API requests, applying policies, and collecting telemetry
2828
- Developer portal used by developers to discover, learn, and onboard to use the APIs
2929

30-
By default, all these components are deployed in Azure, causing all API traffic (shown as solid black arrows on the picture below) to flow through Azure regardless of where backends implementing the APIs are hosted. The operational simplicity of this model comes at the cost of increased latency, compliance issues, and in some cases, additional data transfer fees.
30+
By default, all these components are deployed in Azure, causing all API traffic (shown as solid black arrows on the following picture) to flow through Azure regardless of where backends implementing the APIs are hosted. The operational simplicity of this model comes at the cost of increased latency, compliance issues, and in some cases, extra data transfer fees.
3131

32-
![API traffic flow without self-hosted gateways](media/self-hosted-gateway-overview/without-gateways.png)
32+
:::image type="content" source="media/self-hosted-gateway-overview/without-gateways.png" alt-text="API traffic flow without self-hosted gateways":::
3333

34-
Deploying self-hosted gateways into the same environments where the backend API implementations are hosted allows API traffic to flow directly to the backend APIs, which improves latency, optimizes data transfer costs, and enables compliance while retaining the benefits of having a single point of management, observability, and discovery of all APIs within the organization regardless of where their implementations are hosted.
34+
Deploying self-hosted gateways into the same environments where the backend API implementations are hosted allows API traffic to flow directly to the backend APIs, which reduces latency, optimizes data transfer costs, and enables compliance while retaining the benefits of having a single point of management, observability, and discovery of all APIs within the organization regardless of where their implementations are hosted.
3535

36-
![API traffic flow with self-hosted gateways](media/self-hosted-gateway-overview/with-gateways.png)
36+
:::image type="content" source="media/self-hosted-gateway-overview/with-gateways.png" alt-text="API traffic flow with self-hosted gateways":::
3737

3838
## Packaging and features
3939

40-
The self-hosted gateway is a containerized, functionally equivalent version of the managed gateway deployed to Azure as part of every API Management service. The self-hosted gateway is available as a Linux-based Docker [container](https://aka.ms/apim/sputnik/dhub) from the Microsoft Container Registry. It can be deployed to Docker, Kubernetes, or any other container orchestration solution running on a server cluster on premises, cloud infrastructure, or for evaluation and development purposes, on a personal computer. You can also deploy the self-hosted gateway as a cluster extension to an [Azure Arc-enabled Kubernetes cluster](./how-to-deploy-self-hosted-gateway-azure-arc.md).
40+
The self-hosted gateway is a containerized, functionally equivalent version of the managed gateway deployed to Azure as part of every API Management service. The self-hosted gateway is available as a Linux-based Docker [container image](https://aka.ms/apim/sputnik/dhub) from the Microsoft Container Registry. It can be deployed to Docker, Kubernetes, or any other container orchestration solution running on a server cluster on premises, cloud infrastructure, or for evaluation and development purposes, on a personal computer. You can also deploy the self-hosted gateway as a cluster extension to an [Azure Arc-enabled Kubernetes cluster](./how-to-deploy-self-hosted-gateway-azure-arc.md).
4141

4242
The following functionality found in the managed gateways is **not available** in the self-hosted gateways:
4343

4444
- Azure Monitor logs
4545
- Upstream (backend side) TLS version and cipher management
4646
- Validation of server and client certificates using [CA root certificates](api-management-howto-ca-certificates.md) uploaded to API Management service. You can configure [custom certificate authorities](api-management-howto-ca-certificates.md#create-custom-ca-for-self-hosted-gateway) for your self-hosted gateways and [client certificate validation](api-management-access-restriction-policies.md#validate-client-certificate) policies to enforce them.
47-
- Integration with the [Service Fabric](../service-fabric/service-fabric-api-management-overview.md)
47+
- Integration with [Service Fabric](../service-fabric/service-fabric-api-management-overview.md)
4848
- TLS session resumption
49-
- Client certificate renegotiation. This means that for [client certificate authentication](api-management-howto-mutual-certificates-for-clients.md) to work API consumers must present their certificates as part of the initial TLS handshake. To ensure that, enable the negotiate client certificate setting when configuring a self-hosted gateway custom hostname.
50-
- Built-in cache. See this [document](api-management-howto-cache-external.md) to learn about using external cache in self-hosted gateways.
49+
- Client certificate renegotiation. This means that for [client certificate authentication](api-management-howto-mutual-certificates-for-clients.md) to work, API consumers must present their certificates as part of the initial TLS handshake. To ensure this behavior, enable the Negotiate Client Certificate setting when configuring a self-hosted gateway custom hostname.
50+
- Built-in cache. Learn about using an [external Redis-compatible cache](api-management-howto-cache-external.md) in self-hosted gateways.
5151

5252
## Connectivity to Azure
5353

54-
Self-hosted gateways require outbound TCP/IP connectivity to Azure on port 443. Each self-hosted gateway must be associated with a single API Management service and is configured via its management plane. Self-hosted gateway uses connectivity to Azure for:
54+
Self-hosted gateways require outbound TCP/IP connectivity to Azure on port 443. Each self-hosted gateway must be associated with a single API Management service and is configured via its management plane. A self-hosted gateway uses connectivity to Azure for:
5555

5656
- Reporting its status by sending heartbeat messages every minute
5757
- Regularly checking for (every 10 seconds) and applying configuration updates whenever they are available
5858
- Sending request logs and metrics to Azure Monitor, if configured to do so
5959
- Sending events to Application Insights, if set to do so
6060

61-
When connectivity to Azure is lost, self-hosted gateway will be unable to receive configuration updates, report its status, or upload telemetry.
61+
### FQDN dependencies
6262

63-
The self-hosted gateway is designed to "fail static" and can survive temporary loss of connectivity to Azure. It can be deployed with or without local configuration backup. In the former case, self-hosted gateways will regularly save a backup copy of the latest downloaded configuration on a persistent volume attached to its container or pod.
63+
To operate properly, each self-hosted gateway needs outbound connectivity on port 443 to the following endpoints associated with its cloud-based API Management instance:
64+
65+
* The public IP address of the API Management instance in its primary location
66+
* The hostname of the instance's management endpoint: `<apim-service-name>.management.azure-api.net`
67+
* The hostname of the instance's associated blob storage account: `<blob-storage-account-name>.blob.core.windows.net`
68+
* The hostname of the instance's associated table storage account: `<table-storage-account-name>.table.core.windows.net`
69+
* Public IP addresses from the Storage [service tag](../virtual-network/service-tags-overview.md) corresponding to the primary location of the API Management instance
70+
71+
> [!IMPORTANT]
72+
> * DNS hostnames must be resolvable to IP addresses and the corresponding IP addresses must be reachable.
73+
> * The associated storage account names are listed in the service's **Network connectivity status** page in the Azure portal.
74+
> * Public IP addresses underlying the associated storage accounts are dynamic and can change without notice.
75+
76+
If integrated with your API Management instance, also enable outbound connectivity to the associated public IP addresses, ports, and hostnames for:
77+
78+
* [Event Hubs](api-management-howto-log-event-hubs.md)
79+
* [Application Insights](api-management-howto-app-insights.md)
80+
* [External cache](api-management-howto-cache-external.md)
81+
82+
### Connectivity failures
83+
84+
When connectivity to Azure is lost, the self-hosted gateway is unable to receive configuration updates, report its status, or upload telemetry.
85+
86+
The self-hosted gateway is designed to "fail static" and can survive temporary loss of connectivity to Azure. It can be deployed with or without local configuration backup. With configuration backup, self-hosted gateways regularly save a backup copy of the latest downloaded configuration on a persistent volume attached to their container or pod.
6487

6588
When configuration backup is turned off and connectivity to Azure is interrupted:
6689

@@ -76,9 +99,7 @@ When connectivity is restored, each self-hosted gateway affected by the outage w
7699

77100
## Next steps
78101

79-
- [Read a whitepaper for additional background on this topic](https://aka.ms/hybrid-and-multi-cloud-api-management)
80-
- Review the guidance on [running the self-hosted gateway on Kubernetes in production](how-to-self-hosted-gateway-on-kubernetes-in-production.md).
81-
- Learn [how to deploy API Management self-hosted gateway to Docker](how-to-deploy-self-hosted-gateway-docker.md)
82-
- Learn [how to deploy API Management self-hosted gateway to Kubernetes with YAML](how-to-deploy-self-hosted-gateway-kubernetes.md)
83-
- Learn [how to deploy API Management self-hosted gateway to Kubernetes with Helm](how-to-deploy-self-hosted-gateway-kubernetes-helm.md)
84-
- Learn [how to deploy API Management self-hosted gateway to Azure Arc-enabled Kubernetes clusters](how-to-deploy-self-hosted-gateway-azure-arc.md)
102+
- Learn more about [API Management in a Hybrid and MultiCloud World](https://aka.ms/hybrid-and-multi-cloud-api-management)
103+
- [Deploy self-hosted gateway to Docker](how-to-deploy-self-hosted-gateway-docker.md)
104+
- [Deploy self-hosted gateway to Kubernetes](how-to-deploy-self-hosted-gateway-kubernetes.md)
105+
- [Deploy self-hosted gateway to Azure Arc-enabled Kubernetes cluster](how-to-deploy-self-hosted-gateway-azure-arc.md)

0 commit comments

Comments
 (0)