zuplo 6.68.2 → 6.68.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docs/articles/hosting-options.mdx +5 -5
- package/docs/dedicated/architecture.mdx +5 -5
- package/docs/dedicated/aws-private-networking.mdx +139 -0
- package/docs/dedicated/azure-private-networking.mdx +166 -0
- package/docs/dedicated/gcp-private-networking.mdx +124 -0
- package/docs/dedicated/networking.mdx +26 -15
- package/docs/dedicated/overview.mdx +6 -6
- package/package.json +4 -4
|
@@ -25,10 +25,10 @@ For more information, see the
|
|
|
25
25
|
|
|
26
26
|
## 2. Managed Dedicated
|
|
27
27
|
|
|
28
|
-
We run your gateway in a dedicated, isolated
|
|
29
|
-
choice, including Akamai Connected Cloud, AWS, GCP, Azure,
|
|
30
|
-
and more. You get to choose the regions where you want
|
|
31
|
-
meet any sovereignty or data residency concerns.
|
|
28
|
+
We run your gateway in a dedicated, isolated network environment on the cloud
|
|
29
|
+
provider of your choice, including Akamai Connected Cloud, AWS, GCP, Azure,
|
|
30
|
+
Equinix, TerraSwitch, and more. You get to choose the regions where you want
|
|
31
|
+
your service hosted to meet any sovereignty or data residency concerns.
|
|
32
32
|
|
|
33
33
|
Managed Dedicated is ideal for organizations that need:
|
|
34
34
|
|
|
@@ -38,7 +38,7 @@ Managed Dedicated is ideal for organizations that need:
|
|
|
38
38
|
- Geographical deployment requirements where Managed Edge isn't feasible
|
|
39
39
|
- Regulatory or compliance requirements that necessitate a dedicated instance
|
|
40
40
|
- Private networking options like AWS PrivateLink, Azure Private Link, or GCP
|
|
41
|
-
Private Service Connect
|
|
41
|
+
Private Service Connect, depending on the traffic pattern and cloud provider
|
|
42
42
|
|
|
43
43
|
For more information, see the
|
|
44
44
|
[Managed Dedicated documentation](/docs/dedicated/overview.mdx) or
|
|
@@ -6,8 +6,8 @@ sidebar_label: Architecture
|
|
|
6
6
|
Zuplo's managed dedicated instances are highly available, scalable, and secure.
|
|
7
7
|
With a managed dedicated instance of Zuplo, your API Gateway runs on isolated
|
|
8
8
|
instances and, when running on a cloud provider that supports it, a dedicated
|
|
9
|
-
|
|
10
|
-
dedicated instance of a Zuplo API Gateway.
|
|
9
|
+
network environment. This document outlines the components and architecture of a
|
|
10
|
+
managed dedicated instance of a Zuplo API Gateway.
|
|
11
11
|
|
|
12
12
|
## Components
|
|
13
13
|
|
|
@@ -84,7 +84,7 @@ instance of Zuplo and how the components interact with each other.
|
|
|
84
84
|
|
|
85
85
|
<Diagram height="h-64">
|
|
86
86
|
<DiagramNode id="client">Client</DiagramNode>
|
|
87
|
-
<DiagramGroup id="dedicated-vpc" label="Dedicated
|
|
87
|
+
<DiagramGroup id="dedicated-vpc" label="Dedicated Network">
|
|
88
88
|
<DiagramNode id="gateway" variant="zuplo">
|
|
89
89
|
Zuplo API Gateway
|
|
90
90
|
</DiagramNode>
|
|
@@ -92,7 +92,7 @@ instance of Zuplo and how the components interact with each other.
|
|
|
92
92
|
Gateway Services
|
|
93
93
|
</DiagramNode>
|
|
94
94
|
</DiagramGroup>
|
|
95
|
-
<DiagramGroup id="customer-vpc" label="Customer
|
|
95
|
+
<DiagramGroup id="customer-vpc" label="Customer Private Network">
|
|
96
96
|
<DiagramNode id="backend">Backend</DiagramNode>
|
|
97
97
|
</DiagramGroup>
|
|
98
98
|
<DiagramNode id="control" variant="zuplo">
|
|
@@ -175,7 +175,7 @@ hosts only the production deployment, while the non-production instance hosts
|
|
|
175
175
|
many other deployments (for example staging, development, QA, or any feature
|
|
176
176
|
branch deployments).
|
|
177
177
|
|
|
178
|
-
Each instance operates in isolation and runs within its own
|
|
178
|
+
Each instance operates in isolation and runs within its own network environment.
|
|
179
179
|
|
|
180
180
|
It's possible to have multiple instances depending on your requirements. For
|
|
181
181
|
example, some customers have separate instances for production, staging, and
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Managed Dedicated: AWS Private Networking"
|
|
3
|
+
sidebar_label: AWS Private Networking
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Zuplo Managed Dedicated can run on AWS and connect privately to backends that
|
|
7
|
+
aren't exposed to the public internet. This includes private services running
|
|
8
|
+
inside your VPC, internal load balancers, and services published through AWS
|
|
9
|
+
PrivateLink.
|
|
10
|
+
|
|
11
|
+
This page focuses on customer-facing requirements and the common AWS patterns
|
|
12
|
+
used to connect Zuplo to private backends.
|
|
13
|
+
|
|
14
|
+
## When to use this
|
|
15
|
+
|
|
16
|
+
AWS private networking is a good fit when you need to:
|
|
17
|
+
|
|
18
|
+
- Keep your backend off the public internet while still using Zuplo as the
|
|
19
|
+
public API entry point
|
|
20
|
+
- Connect Zuplo to services running privately inside one or more AWS VPCs
|
|
21
|
+
- Reach internal services over private IPs instead of public endpoints
|
|
22
|
+
- Meet internal security or compliance requirements around network isolation
|
|
23
|
+
|
|
24
|
+
## AWS connectivity options
|
|
25
|
+
|
|
26
|
+
The three most common AWS patterns are:
|
|
27
|
+
|
|
28
|
+
### 1. AWS PrivateLink
|
|
29
|
+
|
|
30
|
+
This is usually the preferred option when your backend can be exposed as a
|
|
31
|
+
PrivateLink service.
|
|
32
|
+
|
|
33
|
+
Typical use cases:
|
|
34
|
+
|
|
35
|
+
- Services published through an AWS PrivateLink endpoint service
|
|
36
|
+
- Cross-account private service access
|
|
37
|
+
- Single-service connectivity where you want service-level access instead of
|
|
38
|
+
broader VPC access
|
|
39
|
+
|
|
40
|
+
Why teams choose this pattern:
|
|
41
|
+
|
|
42
|
+
- Access is scoped to a specific service instead of an entire VPC
|
|
43
|
+
- It works well across AWS accounts
|
|
44
|
+
- It reduces the network coordination needed compared with broader peering
|
|
45
|
+
patterns
|
|
46
|
+
|
|
47
|
+
### 2. VPC peering
|
|
48
|
+
|
|
49
|
+
This is the right option when Zuplo needs private network access into a single
|
|
50
|
+
customer VPC and the backend is reachable by private IP.
|
|
51
|
+
|
|
52
|
+
Typical use cases:
|
|
53
|
+
|
|
54
|
+
- Internal load balancers
|
|
55
|
+
- Private ECS or EKS services
|
|
56
|
+
- Self-managed applications reachable only inside a VPC
|
|
57
|
+
|
|
58
|
+
Why teams choose this pattern:
|
|
59
|
+
|
|
60
|
+
- It is a simple fit for one-to-one VPC connectivity
|
|
61
|
+
- Zuplo can reach internal services that are not exposed through PrivateLink
|
|
62
|
+
- It works well when the backend lives in a small number of VPCs
|
|
63
|
+
|
|
64
|
+
### 3. Transit Gateway
|
|
65
|
+
|
|
66
|
+
This is usually the best option when the customer already uses a hub-and-spoke
|
|
67
|
+
AWS network design or needs connectivity across multiple VPCs.
|
|
68
|
+
|
|
69
|
+
Typical use cases:
|
|
70
|
+
|
|
71
|
+
- Multi-VPC AWS environments
|
|
72
|
+
- Shared services VPCs
|
|
73
|
+
- More complex enterprise network topologies
|
|
74
|
+
|
|
75
|
+
Why teams choose this pattern:
|
|
76
|
+
|
|
77
|
+
- It scales better than maintaining many point-to-point VPC peerings
|
|
78
|
+
- It fits existing AWS network hub designs
|
|
79
|
+
- It is often the cleanest option when Zuplo must reach multiple private
|
|
80
|
+
backends
|
|
81
|
+
|
|
82
|
+
## What is required from your side
|
|
83
|
+
|
|
84
|
+
The exact setup depends on your AWS design, but most projects need:
|
|
85
|
+
|
|
86
|
+
- The AWS region or regions where Zuplo should run
|
|
87
|
+
- The target service details, such as VPC IDs, account IDs, or PrivateLink
|
|
88
|
+
service details
|
|
89
|
+
- A DNS plan for private name resolution
|
|
90
|
+
- Route table and security group approval
|
|
91
|
+
- Non-overlapping CIDR ranges if VPC peering or Transit Gateway is used
|
|
92
|
+
|
|
93
|
+
If your team manages AWS through Terraform, Zuplo can work within that model.
|
|
94
|
+
The ownership split depends on your environment and security model.
|
|
95
|
+
|
|
96
|
+
## DNS requirements
|
|
97
|
+
|
|
98
|
+
Private connectivity on AWS depends on DNS as much as it depends on routing.
|
|
99
|
+
|
|
100
|
+
For private connectivity to work, Zuplo needs to resolve your backend to the
|
|
101
|
+
correct private address or endpoint. That usually means one of the following:
|
|
102
|
+
|
|
103
|
+
- Using private DNS with AWS PrivateLink
|
|
104
|
+
- Using your existing Route 53 private hosted zone design
|
|
105
|
+
- Using your shared DNS resolver strategy
|
|
106
|
+
|
|
107
|
+
Without the correct DNS configuration, the network path can exist while traffic
|
|
108
|
+
still resolves to the public endpoint.
|
|
109
|
+
|
|
110
|
+
## Planning considerations
|
|
111
|
+
|
|
112
|
+
Before implementation, align on:
|
|
113
|
+
|
|
114
|
+
- Whether **PrivateLink**, **VPC peering**, or **Transit Gateway** is the better
|
|
115
|
+
fit
|
|
116
|
+
- Which environments need private connectivity, such as production only or both
|
|
117
|
+
production and non-production
|
|
118
|
+
- CIDR planning for peered or attached VPCs
|
|
119
|
+
- Which team owns the AWS networking changes
|
|
120
|
+
- Whether the connection should be provisioned through Terraform
|
|
121
|
+
|
|
122
|
+
## Recommendation
|
|
123
|
+
|
|
124
|
+
In most AWS environments:
|
|
125
|
+
|
|
126
|
+
- Use **PrivateLink** when the backend can be published as a private service
|
|
127
|
+
- Use **VPC peering** for simpler one-to-one private network connectivity
|
|
128
|
+
- Use **Transit Gateway** when Zuplo needs to connect into a larger multi-VPC
|
|
129
|
+
AWS network
|
|
130
|
+
|
|
131
|
+
If you are evaluating Zuplo for a private AWS workload, those are the three
|
|
132
|
+
patterns to expect.
|
|
133
|
+
|
|
134
|
+
## Next steps
|
|
135
|
+
|
|
136
|
+
- Review the general [Managed Dedicated networking](./networking.mdx) overview
|
|
137
|
+
- Review [Managed Dedicated architecture](./architecture.mdx)
|
|
138
|
+
- [Schedule time with Zuplo](https://book.zuplo.com) to review your AWS network
|
|
139
|
+
design
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Managed Dedicated: Azure Private Networking"
|
|
3
|
+
sidebar_label: Azure Private Networking
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Zuplo Managed Dedicated can run on Azure and connect privately to backends that
|
|
7
|
+
aren't exposed to the public internet. This includes Azure Container Apps, Azure
|
|
8
|
+
App Service, AKS, and internal services that are only reachable inside your
|
|
9
|
+
Azure network.
|
|
10
|
+
|
|
11
|
+
This page focuses on customer-facing requirements and the common Azure patterns
|
|
12
|
+
used to connect Zuplo to private backends.
|
|
13
|
+
|
|
14
|
+
## When to use this
|
|
15
|
+
|
|
16
|
+
Azure private networking is a good fit when you need to:
|
|
17
|
+
|
|
18
|
+
- Keep your backend off the public internet while still using Zuplo as the
|
|
19
|
+
public API entry point
|
|
20
|
+
- Connect Zuplo to Azure Container Apps or App Service using private access
|
|
21
|
+
- Reach services that are only available inside your Azure Virtual Network
|
|
22
|
+
(VNet)
|
|
23
|
+
- Meet internal security or compliance requirements around network isolation
|
|
24
|
+
|
|
25
|
+
## Azure connectivity options
|
|
26
|
+
|
|
27
|
+
Azure uses **VNet peering**, not VPC peering.
|
|
28
|
+
|
|
29
|
+
The two most common patterns are:
|
|
30
|
+
|
|
31
|
+
### 1. Private Endpoint
|
|
32
|
+
|
|
33
|
+
This is usually the preferred option when your backend supports Azure Private
|
|
34
|
+
Link.
|
|
35
|
+
|
|
36
|
+
Typical use cases:
|
|
37
|
+
|
|
38
|
+
- Azure Container Apps
|
|
39
|
+
- Azure App Service
|
|
40
|
+
- Azure SQL
|
|
41
|
+
- Azure Storage
|
|
42
|
+
- Azure Key Vault
|
|
43
|
+
|
|
44
|
+
Why teams choose this pattern:
|
|
45
|
+
|
|
46
|
+
- Access is scoped to a specific service instead of an entire network
|
|
47
|
+
- It is easier to review from a security perspective
|
|
48
|
+
- It avoids broader Layer 3 connectivity between VNets when you only need
|
|
49
|
+
private access to a specific service
|
|
50
|
+
- Your wider VNet does not need to be exposed to Zuplo
|
|
51
|
+
|
|
52
|
+
### 2. VNet peering
|
|
53
|
+
|
|
54
|
+
This is the right option when your backend is only reachable on private IP
|
|
55
|
+
addresses inside your VNet, or when Zuplo needs access to multiple internal
|
|
56
|
+
services.
|
|
57
|
+
|
|
58
|
+
Typical use cases:
|
|
59
|
+
|
|
60
|
+
- Internal load balancers
|
|
61
|
+
- Private AKS services
|
|
62
|
+
- Self-managed applications reachable only inside a VNet
|
|
63
|
+
- Hub-and-spoke Azure network designs
|
|
64
|
+
|
|
65
|
+
Why teams choose this pattern:
|
|
66
|
+
|
|
67
|
+
- Zuplo can reach internal services that are not exposed through Private Link
|
|
68
|
+
- It works well for broader private connectivity needs
|
|
69
|
+
- It fits existing enterprise Azure network topologies
|
|
70
|
+
|
|
71
|
+
## Azure Container Apps
|
|
72
|
+
|
|
73
|
+
Yes, Zuplo can connect to Azure Container Apps that are restricted to private
|
|
74
|
+
networking.
|
|
75
|
+
|
|
76
|
+
The pattern depends on how your environment is configured:
|
|
77
|
+
|
|
78
|
+
- If your **Container Apps environment** uses **Private Endpoint**, Zuplo
|
|
79
|
+
connects through Private Link and private DNS
|
|
80
|
+
- If your Container Apps environment is internal and your app is reachable only
|
|
81
|
+
on private IPs inside your VNet, Zuplo connects through **VNet peering**
|
|
82
|
+
|
|
83
|
+
Important details for Container Apps:
|
|
84
|
+
|
|
85
|
+
- The private endpoint is created on the **managed environment**, not on an
|
|
86
|
+
individual container app
|
|
87
|
+
- If you use an internal Container Apps environment, DNS must resolve the
|
|
88
|
+
environment's private address correctly
|
|
89
|
+
- If you use app ingress set to **Internal**, that traffic is limited to the
|
|
90
|
+
same Container Apps environment. For private access from outside that
|
|
91
|
+
environment, use VNet-reachable ingress with the correct DNS setup
|
|
92
|
+
|
|
93
|
+
This lets you keep Azure Container Apps private while still presenting a public
|
|
94
|
+
API through Zuplo.
|
|
95
|
+
|
|
96
|
+
## What is required from your side
|
|
97
|
+
|
|
98
|
+
The exact setup depends on your Azure design, but most projects need:
|
|
99
|
+
|
|
100
|
+
- The Azure region or regions where Zuplo should run
|
|
101
|
+
- The target service details, such as the VNet, resource ID, or Private
|
|
102
|
+
Endpoint-enabled service
|
|
103
|
+
- A DNS plan for private name resolution
|
|
104
|
+
- Network approval for peering or Private Endpoint connections
|
|
105
|
+
- Non-overlapping CIDR ranges if VNet peering is used
|
|
106
|
+
|
|
107
|
+
If your team manages Azure through Terraform, Zuplo can work within that model.
|
|
108
|
+
The ownership split depends on your environment and security model.
|
|
109
|
+
|
|
110
|
+
## DNS requirements
|
|
111
|
+
|
|
112
|
+
Private connectivity on Azure depends on DNS as much as it depends on routing.
|
|
113
|
+
|
|
114
|
+
For private connectivity to work, Zuplo needs to resolve your backend to the
|
|
115
|
+
correct private address. That usually means one of the following:
|
|
116
|
+
|
|
117
|
+
- Linking the relevant Azure Private DNS zone to every VNet that needs to
|
|
118
|
+
resolve the private service
|
|
119
|
+
- Forwarding DNS through your existing Azure DNS architecture
|
|
120
|
+
- Using your shared DNS resolver strategy
|
|
121
|
+
|
|
122
|
+
Common examples include:
|
|
123
|
+
|
|
124
|
+
- `privatelink.azurewebsites.net` for Azure App Service private endpoints
|
|
125
|
+
- `privatelink.{region}.azurecontainerapps.io` for Azure Container Apps private
|
|
126
|
+
endpoints
|
|
127
|
+
- The Container Apps environment's own private DNS zone when you use an internal
|
|
128
|
+
environment
|
|
129
|
+
|
|
130
|
+
Without the correct DNS configuration, the network path can exist while traffic
|
|
131
|
+
still resolves to the public endpoint.
|
|
132
|
+
|
|
133
|
+
## Planning considerations
|
|
134
|
+
|
|
135
|
+
Before implementation, align on:
|
|
136
|
+
|
|
137
|
+
- Whether **Private Endpoint** or **VNet peering** is the better fit
|
|
138
|
+
- Which environments need private connectivity, such as production only or both
|
|
139
|
+
production and non-production
|
|
140
|
+
- CIDR planning for any peered VNets
|
|
141
|
+
- Which team owns the Azure networking changes
|
|
142
|
+
- Whether the connection should be provisioned through Terraform
|
|
143
|
+
|
|
144
|
+
## Recommendation
|
|
145
|
+
|
|
146
|
+
In most Azure environments:
|
|
147
|
+
|
|
148
|
+
- Use **Private Endpoint** when the backend supports it, especially for Azure
|
|
149
|
+
PaaS services where you only need private access to a specific service
|
|
150
|
+
- Use **VNet peering** when the backend is only reachable on private IPs inside
|
|
151
|
+
your VNet or when Zuplo needs broader private connectivity into your Azure
|
|
152
|
+
network
|
|
153
|
+
|
|
154
|
+
In practice, Private Endpoint is usually the cleaner fit for Azure Container
|
|
155
|
+
Apps and App Service. VNet peering is usually the better fit for internal load
|
|
156
|
+
balancers, private AKS services, or broader VNet-to-VNet connectivity.
|
|
157
|
+
|
|
158
|
+
If you are evaluating Zuplo for a private Azure workload, those are the two
|
|
159
|
+
patterns to expect.
|
|
160
|
+
|
|
161
|
+
## Next steps
|
|
162
|
+
|
|
163
|
+
- Review the general [Managed Dedicated networking](./networking.mdx) overview
|
|
164
|
+
- Review [Managed Dedicated architecture](./architecture.mdx)
|
|
165
|
+
- [Schedule time with Zuplo](https://book.zuplo.com) to review your Azure
|
|
166
|
+
network design
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Managed Dedicated: GCP Private Networking"
|
|
3
|
+
sidebar_label: GCP Private Networking
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Zuplo Managed Dedicated can run on Google Cloud and connect privately to
|
|
7
|
+
backends that aren't exposed to the public internet. This includes services
|
|
8
|
+
running inside your VPC, internal load balancers, GKE workloads, and services
|
|
9
|
+
published through Private Service Connect.
|
|
10
|
+
|
|
11
|
+
This page focuses on customer-facing requirements and the common GCP patterns
|
|
12
|
+
used to connect Zuplo to private backends.
|
|
13
|
+
|
|
14
|
+
## When to use this
|
|
15
|
+
|
|
16
|
+
GCP private networking is a good fit when you need to:
|
|
17
|
+
|
|
18
|
+
- Keep your backend off the public internet while still using Zuplo as the
|
|
19
|
+
public API entry point
|
|
20
|
+
- Connect Zuplo to services running privately inside your Google Cloud network
|
|
21
|
+
- Reach internal services over private IPs instead of public endpoints
|
|
22
|
+
- Meet internal security or compliance requirements around network isolation
|
|
23
|
+
|
|
24
|
+
## GCP connectivity options
|
|
25
|
+
|
|
26
|
+
The two most common GCP patterns are:
|
|
27
|
+
|
|
28
|
+
### 1. Private Service Connect
|
|
29
|
+
|
|
30
|
+
This is usually the preferred option when your backend can be exposed through
|
|
31
|
+
Private Service Connect.
|
|
32
|
+
|
|
33
|
+
Typical use cases:
|
|
34
|
+
|
|
35
|
+
- Services published privately through Private Service Connect
|
|
36
|
+
- Single-service connectivity where you want service-level access instead of
|
|
37
|
+
broader VPC access
|
|
38
|
+
- Architectures where you want to reduce network coupling between Zuplo and the
|
|
39
|
+
rest of your environment
|
|
40
|
+
|
|
41
|
+
Why teams choose this pattern:
|
|
42
|
+
|
|
43
|
+
- Access is scoped to a specific service instead of an entire VPC
|
|
44
|
+
- It provides a clean service-oriented model for private access
|
|
45
|
+
- It reduces the network coordination needed compared with broader peering
|
|
46
|
+
patterns
|
|
47
|
+
|
|
48
|
+
### 2. VPC Network Peering
|
|
49
|
+
|
|
50
|
+
This is the right option when Zuplo needs private network access into a
|
|
51
|
+
customer-managed VPC and the backend is reachable by private IP.
|
|
52
|
+
|
|
53
|
+
Typical use cases:
|
|
54
|
+
|
|
55
|
+
- Internal load balancers
|
|
56
|
+
- Private GKE services
|
|
57
|
+
- Self-managed applications reachable only inside a VPC
|
|
58
|
+
|
|
59
|
+
Why teams choose this pattern:
|
|
60
|
+
|
|
61
|
+
- It is a simple fit for one-to-one VPC connectivity
|
|
62
|
+
- Zuplo can reach internal services that are not exposed through Private Service
|
|
63
|
+
Connect
|
|
64
|
+
- It works well when the backend lives in a small number of VPCs
|
|
65
|
+
|
|
66
|
+
## What is required from your side
|
|
67
|
+
|
|
68
|
+
The exact setup depends on your GCP design, but most projects need:
|
|
69
|
+
|
|
70
|
+
- The Google Cloud region or regions where Zuplo should run
|
|
71
|
+
- The target service details, such as project IDs, VPC names, internal load
|
|
72
|
+
balancers, or Private Service Connect service attachments
|
|
73
|
+
- A DNS plan for private name resolution
|
|
74
|
+
- Firewall rule approval
|
|
75
|
+
- Non-overlapping IP ranges if VPC Network Peering is used
|
|
76
|
+
|
|
77
|
+
If your team manages GCP through Terraform, Zuplo can work within that model.
|
|
78
|
+
The ownership split depends on your environment and security model.
|
|
79
|
+
|
|
80
|
+
## DNS requirements
|
|
81
|
+
|
|
82
|
+
Private connectivity on Google Cloud depends on DNS as much as it depends on
|
|
83
|
+
routing.
|
|
84
|
+
|
|
85
|
+
For private connectivity to work, Zuplo needs to resolve your backend to the
|
|
86
|
+
correct private address or endpoint. That usually means one of the following:
|
|
87
|
+
|
|
88
|
+
- Using your existing Cloud DNS private zone design
|
|
89
|
+
- Authorizing the relevant private zones across the connected networks
|
|
90
|
+
- Using your shared DNS resolver strategy
|
|
91
|
+
|
|
92
|
+
Without the correct DNS configuration, the network path can exist while traffic
|
|
93
|
+
still resolves to the public endpoint.
|
|
94
|
+
|
|
95
|
+
## Planning considerations
|
|
96
|
+
|
|
97
|
+
Before implementation, align on:
|
|
98
|
+
|
|
99
|
+
- Whether **Private Service Connect** or **VPC Network Peering** is the better
|
|
100
|
+
fit
|
|
101
|
+
- Which environments need private connectivity, such as production only or both
|
|
102
|
+
production and non-production
|
|
103
|
+
- IP range planning for peered VPCs
|
|
104
|
+
- Which team owns the GCP networking changes
|
|
105
|
+
- Whether the connection should be provisioned through Terraform
|
|
106
|
+
|
|
107
|
+
## Recommendation
|
|
108
|
+
|
|
109
|
+
In most Google Cloud environments:
|
|
110
|
+
|
|
111
|
+
- Use **Private Service Connect** when the backend can be exposed as a private
|
|
112
|
+
service
|
|
113
|
+
- Use **VPC Network Peering** when the backend is only reachable on private IPs
|
|
114
|
+
inside your VPC
|
|
115
|
+
|
|
116
|
+
If you are evaluating Zuplo for a private GCP workload, those are the two
|
|
117
|
+
patterns to expect.
|
|
118
|
+
|
|
119
|
+
## Next steps
|
|
120
|
+
|
|
121
|
+
- Review the general [Managed Dedicated networking](./networking.mdx) overview
|
|
122
|
+
- Review [Managed Dedicated architecture](./architecture.mdx)
|
|
123
|
+
- [Schedule time with Zuplo](https://book.zuplo.com) to review your GCP network
|
|
124
|
+
design
|
|
@@ -10,55 +10,66 @@ requirements.
|
|
|
10
10
|
Common configurations include:
|
|
11
11
|
|
|
12
12
|
- Using Zuplo as the public ingress to your API and using network connectivity
|
|
13
|
-
such as
|
|
14
|
-
backend services.
|
|
13
|
+
such as PrivateLink, Private Service Connect, VNet or VPC peering, or
|
|
14
|
+
provider-native network hubs to connect to your backend services.
|
|
15
15
|
- Restricting access to the public internet by configuring your API Gateway to
|
|
16
|
-
only accept traffic from specific IP ranges or
|
|
17
|
-
IDS/IPS, or other security appliances in front of your API
|
|
16
|
+
only accept traffic from specific IP ranges or private networks, allowing you
|
|
17
|
+
to put WAFs, IDS/IPS, or other security appliances in front of your API
|
|
18
|
+
Gateway.
|
|
18
19
|
- Multiple dedicated managed instances of Zuplo can be deployed across multiple
|
|
19
20
|
regions to provide high availability and disaster recovery.
|
|
20
21
|
|
|
21
22
|
To discuss your networking requirements, please contact your account manager.
|
|
22
23
|
|
|
23
|
-
##
|
|
24
|
+
## Cloud-specific guidance
|
|
25
|
+
|
|
26
|
+
- For AWS private backend connectivity, see
|
|
27
|
+
[AWS Private Networking](./aws-private-networking.mdx)
|
|
28
|
+
- For Azure private backend connectivity, see
|
|
29
|
+
[Azure Private Networking](./azure-private-networking.mdx)
|
|
30
|
+
- For Google Cloud private backend connectivity, see
|
|
31
|
+
[GCP Private Networking](./gcp-private-networking.mdx)
|
|
32
|
+
|
|
33
|
+
## Zuplo Ingress to Customer Private Network
|
|
24
34
|
|
|
25
35
|
The default setup for dedicated managed Zuplo is to use your Zuplo API Gateway
|
|
26
36
|
as the public ingress to your API. This is the simplest setup and allows Zuplo
|
|
27
37
|
to manage things like SSL certificates on your behalf.
|
|
28
38
|
|
|
29
|
-
In this setup your
|
|
30
|
-
your Zuplo API Gateway
|
|
31
|
-
|
|
39
|
+
In this setup your private network isn't exposed to the public internet at all.
|
|
40
|
+
Instead, your Zuplo API Gateway uses a private network connection to reach your
|
|
41
|
+
backend services.
|
|
32
42
|
|
|
33
43
|
<Diagram height="h-48">
|
|
34
44
|
<DiagramNode id="client">Client</DiagramNode>
|
|
35
|
-
<DiagramGroup id="dedicated-vpc" label="Dedicated
|
|
45
|
+
<DiagramGroup id="dedicated-vpc" label="Dedicated Network">
|
|
36
46
|
<DiagramNode id="gateway" variant="zuplo">
|
|
37
47
|
Zuplo API Gateway
|
|
38
48
|
</DiagramNode>
|
|
39
49
|
</DiagramGroup>
|
|
40
|
-
<DiagramGroup id="customer-vpc" label="Customer
|
|
50
|
+
<DiagramGroup id="customer-vpc" label="Customer Private Network">
|
|
41
51
|
<DiagramNode id="backend">Backend</DiagramNode>
|
|
42
52
|
</DiagramGroup>
|
|
43
53
|
<DiagramEdge from="client" to="gateway" />
|
|
44
54
|
<DiagramEdge from="gateway" to="backend" />
|
|
45
55
|
</Diagram>
|
|
46
56
|
|
|
47
|
-
## Customer
|
|
57
|
+
## Customer Private Network Ingress to Zuplo API Gateway
|
|
48
58
|
|
|
49
59
|
If you have custom networking requirements, such as using a static IP address
|
|
50
60
|
you already own, or if you want to run services such as WAFs, IDS/IPS, or other
|
|
51
61
|
security products in front of your API Gateway, Zuplo can be configured to
|
|
52
|
-
accept traffic from your
|
|
53
|
-
be in the same
|
|
62
|
+
accept traffic from your private network and then route it to your backend. Your
|
|
63
|
+
backend could be in the same network as your ingress or in another private
|
|
64
|
+
network.
|
|
54
65
|
|
|
55
66
|
<Diagram height="h-64">
|
|
56
67
|
<DiagramNode id="client">Client</DiagramNode>
|
|
57
|
-
<DiagramGroup id="customer-vpc" label="Customer
|
|
68
|
+
<DiagramGroup id="customer-vpc" label="Customer Private Network">
|
|
58
69
|
<DiagramNode id="waf">WAF</DiagramNode>
|
|
59
70
|
<DiagramNode id="backend">Backend</DiagramNode>
|
|
60
71
|
</DiagramGroup>
|
|
61
|
-
<DiagramGroup id="dedicated-vpc" label="Dedicated
|
|
72
|
+
<DiagramGroup id="dedicated-vpc" label="Dedicated Network">
|
|
62
73
|
<DiagramNode id="gateway" variant="zuplo">
|
|
63
74
|
Zuplo API Gateway
|
|
64
75
|
</DiagramNode>
|
|
@@ -48,12 +48,12 @@ features as you would with edge-based deployments.
|
|
|
48
48
|
In addition to the standard features, managed dedicated hosting provides:
|
|
49
49
|
|
|
50
50
|
- **Custom Networking Configurations** - Configure your API Gateway to only be
|
|
51
|
-
accessible from specific
|
|
52
|
-
- **Private Networking Options** - Support for
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
- **Isolated
|
|
56
|
-
for maximum security and isolation
|
|
51
|
+
accessible from specific private networks or IP ranges
|
|
52
|
+
- **Private Networking Options** - Support for provider-native private
|
|
53
|
+
connectivity patterns such as AWS PrivateLink, Azure Private Link, and GCP
|
|
54
|
+
Private Service Connect, depending on the traffic pattern and cloud provider
|
|
55
|
+
- **Isolated Network Deployment** - Your gateway runs in a dedicated, isolated
|
|
56
|
+
network environment for maximum security and isolation
|
|
57
57
|
- **Custom Ingress Options** - Use your own static IP addresses or security
|
|
58
58
|
appliances (WAFs, IDS/IPS) in front of your API Gateway
|
|
59
59
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zuplo",
|
|
3
|
-
"version": "6.68.
|
|
3
|
+
"version": "6.68.5",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "The programmable API Gateway",
|
|
6
6
|
"author": "Zuplo, Inc.",
|
|
@@ -19,9 +19,9 @@
|
|
|
19
19
|
"zuplo": "zuplo.js"
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@zuplo/cli": "6.68.
|
|
23
|
-
"@zuplo/core": "6.68.
|
|
24
|
-
"@zuplo/runtime": "6.68.
|
|
22
|
+
"@zuplo/cli": "6.68.5",
|
|
23
|
+
"@zuplo/core": "6.68.5",
|
|
24
|
+
"@zuplo/runtime": "6.68.5",
|
|
25
25
|
"@zuplo/test": "1.4.0"
|
|
26
26
|
}
|
|
27
27
|
}
|