Multiple Availability Zones Deployment of API7 Gateway
Deploying API7 Gateway across multiple availability zones (AZs) provides high availability and protects your API services against the failure of an entire AZ. This page details the multi-AZ deployment pattern and its configuration.
Multi-AZ Architecture
In a multi-AZ deployment, the Control Plane and Data Plane components are distributed across different AZs within the same region.
- Control Plane: Typically deployed in a single primary AZ, but can be scaled to multiple AZs if your infrastructure supports it.
- Data Plane: Deployed in multiple AZs (e.g., AZ-a, AZ-b, AZ-c) to ensure continuous traffic handling if one AZ becomes unavailable.
- Load Balancer: A cross-AZ load balancer distributes incoming traffic to all healthy DP nodes across all AZs.
Multi-AZ Deployment Pattern
A typical multi-AZ deployment involves the following components:
- Region: A specific geographic area (e.g.,
us-east-1). - Availability Zones: Independent failure domains within the region (e.g.,
us-east-1a,us-east-1b). - Cross-AZ Networking: Low-latency, high-bandwidth networking connects the CP and DP nodes across AZs.
Failure Domain Isolation
By distributing DP nodes across multiple AZs, you isolate your failure domains. If an AZ experiences an outage (e.g., due to power failure or network issues), the load balancer will stop sending traffic to the DP nodes in that AZ and redistribute it to the healthy nodes in the remaining AZs.
Configuration for Multi-AZ
Data Plane Nodes
Deploy the same Data Plane configuration to every node in every AZ. List one DP Manager endpoint per AZ in deployment.etcd.host so that each DP node can fail over to a Control Plane in another AZ if its local one becomes unreachable:
deployment:
role: traditional
role_traditional:
config_provider: etcd
etcd:
host:
- "https://dp-manager.az-a.internal:7943"
- "https://dp-manager.az-b.internal:7943"
- "https://dp-manager.az-c.internal:7943"
prefix: /apisix
timeout: 30
Each entry must point to a DP Manager TLS listener (default port 7943). The DP iterates the list on startup and reconnects to the next entry whenever the current one becomes unhealthy. For the full set of supported fields, see the Data Plane configuration reference.
Load Balancer
Configure your load balancer to perform cross-AZ health checks and load balancing.
- Health Checks: Use the DP status API (port 7085, endpoints
/statusor/status/ready) for health monitoring. - Cross-AZ Load Balancing: Enable cross-AZ load balancing to distribute traffic evenly across all AZs.