This page gives you a comparative overview of the load balancing features offered by Cloud Load Balancing. If you haven't already done so, begin by reading the following:
- To get an overview of the different load balancing solutions that are available in Google Cloud, see Load balancing overview.
- To determine which Google Cloud load balancer best meets your application's needs, see Choose a load balancer.
In the following tables, a checkmark indicates that a feature is supported. For more information about a feature, click the info link.
Type of load balancer
Feature | Internal HTTP(S) | External HTTP(S) | Internal TCP/UDP | External TCP/UDP Network | External SSL Proxy and TCP Proxy |
Internal TCP Proxy | ||
---|---|---|---|---|---|---|---|---|
Global | Classic | Regional | ||||||
Proxy | info | info |
info |
info |
SSL Proxy info TCP Proxy info |
info |
||
Pass-through | info | info |
Protocols from the load balancer to the backends
For links to reference information, see Backend services.
Feature | Internal HTTP(S) | External HTTP(S) | Internal TCP/UDP | External TCP/UDP Network | External SSL Proxy and TCP Proxy |
Internal TCP Proxy | |||
---|---|---|---|---|---|---|---|---|---|
Global | Classic | Regional | |||||||
One of: HTTP (HTTP/1.1) HTTPS (HTTP/1.1) HTTP/2 (requires TLS), including gRPC |
|||||||||
One of: TCP or UDP |
|||||||||
One of: SSL (TLS) or TCP |
|||||||||
GRE, ESP, ICMP, or ICMPv6 | info | ||||||||
WebSockets | info | info |
info |
info |
Protocols from the clients to the load balancer
For links to reference information, see Forwarding rules.
Feature | Internal HTTP(S) | External HTTP(S) | Internal TCP/UDP | External TCP/UDP Network | External SSL Proxy and TCP Proxy |
Internal TCP Proxy | |||
---|---|---|---|---|---|---|---|---|---|
Global | Classic | Regional | |||||||
One of: HTTP/1.1, HTTP/2, or HTTPS |
(no QUIC support) |
(includes QUIC) |
(includes QUIC) |
(no QUIC support) |
|||||
HTTP/3 (based on IETF QUIC) | |||||||||
One of: TCP or UDP |
|||||||||
SSL or TCP | TCP only |
||||||||
GRE, ESP, ICMP, or ICMPv6 | info | ||||||||
WebSockets | info | info | info | info |
Backends
Feature | Internal HTTP(S) | External HTTP(S) | Internal TCP/UDP | External TCP/UDP Network | External SSL Proxy and TCP Proxy |
Internal TCP Proxy | ||
---|---|---|---|---|---|---|---|---|
Global | Classic | Regional | ||||||
Backends must be in one region | (Standard Tier) |
(Standard Tier) |
||||||
Backends can be in multiple regions | (Premium Tier) |
(Premium Tier) |
||||||
Load balancer can have multiple backend services and a URL map | ||||||||
Virtual machine backends on Compute Engine | ||||||||
Zonal NEGs | Using GCE_VM_IP_PORT type endpoints with GKE:
|
Using GCE_VM_IP_PORT type endpoints with GKE:
| Using GCE_VM_IP_PORT type endpoints with GKE:
|
Using GCE_VM_IP type endpoints with GKE:
|
Use standalone zonal NEGs | GCE_VM_IP_PORT type endpoints |
||
Self-managed Kubernetes and GKE | Supported only with the GKE Gateway controller (Preview) |
|||||||
External endpoints in internet NEGs | info (Premium Tier) |
|||||||
Private external endpoints in hybrid NEG backends | info | info | info | info | info | info | ||
Cloud Storage in backend buckets | info | info | ||||||
Serverless backends | info
|
info
|
info
|
info
|
||||
Private Service Connect NEGs |
Access Google API |
Access published services |
Publish hybrid services |
Health checks
For links to reference information, see Health checks.
Feature | Internal HTTP(S) | External HTTP(S) | Internal TCP/UDP | External TCP/UDP Network | External SSL Proxy and TCP Proxy |
Internal TCP Proxy | ||
---|---|---|---|---|---|---|---|---|
Global | Classic | Regional | ||||||
gRPC health checks | 3 | 3 | 1 | 3 | ||||
HTTP health checks | 2 | 2 | 2 | 1 | ||||
HTTPS health checks | 2 | 2 | 2 | 1 | ||||
HTTP/2 health checks | 1 | |||||||
SSL health checks | 1 | |||||||
TCP health checks | 1 | |||||||
Configurable health checks:
|
||||||||
Configurable request path (HTTP, HTTPS, HTTP/2) | 1 | |||||||
Configurable request string or path (TCP or SSL) | 1 | |||||||
Configurable expected response string | 1 |
1 This table documents health checks supported by backend service-based network load balancers. Target pool-based network load balancers only support legacy HTTP health checks.
2 The regional external HTTP(S) load balancer doesn't support legacy health checks. The global external HTTP(S) load balancer and the global external HTTP(S) load balancer (classic) support legacy health checks only if both of the following are true:
- The backends are instance groups.
- The backend VMs serve traffic that uses the HTTP or HTTPS protocol.
3 If you are allowlisted to use Envoy distributed health checks, then regional external HTTP(S) load balancers, internal HTTP(S) load balancers, and internal regional TCP proxy load balancers that use hybrid NEG backends do not support gRPC health checks. For more information, see the Hybrid NEGs overview.
IP addresses
For links to reference information, see Addresses.
Feature | Internal HTTP(S) | External HTTP(S) | Internal TCP/UDP | External TCP/UDP Network | External SSL Proxy and TCP Proxy |
Internal TCP Proxy | ||
---|---|---|---|---|---|---|---|---|
Global | Classic | Regional | ||||||
Internal IP address, accessible in your Virtual Private Cloud (VPC) network | ||||||||
External IP address (global anycast) | (Premium Tier) |
(Premium Tier) |
||||||
External IP address (regional) | (Standard Tier) |
(Standard Tier) |
||||||
External IP address from Bring your own IP (BYOIP) | ||||||||
Multiple forwarding rules with the same IP address, each having a unique protocol and port combination | ||||||||
Internet accessible (including by clients that are in Google Cloud and have internet access) |
||||||||
Privately accessible |
|
|
|
|||||
Client source IP address preservation | X-Forwarded-For header | X-Forwarded-For header | X-Forwarded-For header | X-Forwarded-For header | In TCP Proxy header | In TCP Proxy header | ||
IPv6 support | IPv6 termination |
IPv6 termination (Premium Tier) |
info (Preview) |
info (Premium Tier) |
IPv6 termination (Premium Tier) |
Network topologies
Feature | Internal HTTP(S) | External HTTP(S) | Internal TCP/UDP | External TCP/UDP Network | External SSL Proxy and TCP Proxy |
Internal TCP Proxy | ||
---|---|---|---|---|---|---|---|---|
Global | Classic | Regional | ||||||
Relationships between VPC networks and load balancer backends | ||||||||
Backends must be in the same VPC network | ||||||||
Backends can be located in multiple VPC networks in
the same project (the networks do not have to be connected) |
||||||||
Backends can use a Shared VPC network | ||||||||
Load balancer frontend (URL map) can reference backend services
created in different service projects in a Shared VPC
network (cross-project service referencing) |
info |
info |
||||||
Client access to load balancers | ||||||||
Google Cloud or on-premises clients must access the load balancer privately by being either in the same VPC network, in a peered VPC network, or in another network connected using Cloud VPN tunnels or Cloud Interconnect attachments (VLANs) | With hybrid NEGs |
With hybrid NEGs |
With hybrid NEGs |
|||||
Google Cloud client VMs require external IP addresses or a
NAT solution like Cloud NAT to access the load balancer |
||||||||
On-premises client VMs require internet access to access the load balancer | Internet access is not required with hybrid NEGs |
Internet access is not required with hybrid NEGs |
Internet access is not required with hybrid NEGs |
|||||
Google Cloud client VMs can be located in any region | If global access is enabled |
(Premium Tier) | If global access is enabled |
If global access is enabled |
||||
Google Cloud client VMs can be located in any project (subject to other requirements in this table) |
Failover
Feature | Internal HTTP(S) | External HTTP(S) | Internal TCP/UDP | External TCP/UDP Network | External SSL Proxy and TCP Proxy |
Internal TCP Proxy | ||
---|---|---|---|---|---|---|---|---|
Global | Classic | Regional | ||||||
Automatic failover to healthy backends within same region | ||||||||
Automatic failover to healthy backends in other regions | (Premium Tier) |
(Premium Tier) |
||||||
Behavior when all backends are unhealthy | Returns HTTP 503 | Returns HTTP 503 | Returns HTTP 502 | Returns HTTP 503 | info
(configurable) |
info
(configurable1) |
Traffic dropped | Traffic dropped |
Configurable standby backends | info
(configurable) |
info
(configurable2) |
||||||
Connection draining on failover and failback | info
(configurable) |
info
(configurable3) |
This table documents failover as supported by backend service-based network load balancers.
1 When all the backends of a target pool-based network load balancer are unhealthy, traffic is distributed among all backends.2 Target pool-based network load balancers use backup pools to support failover.
3 Target pool-based network load balancers do not support configuration of connection draining on failover/failback.
Logging and monitoring
Feature | Internal HTTP(S) | External HTTP(S) | Internal TCP/UDP | External TCP/UDP Network | External SSL Proxy and TCP Proxy |
Internal TCP Proxy | ||
---|---|---|---|---|---|---|---|---|
Global | Classic | Regional | ||||||
Byte count metrics | info | info | info | info | info | info | ||
Packet count metrics | info | info | info | info | ||||
Round trip time or latency metrics | info | info | info | info | info | info | ||
Connection count metrics | info | info | ||||||
Connection attribute logs | info | info | ||||||
HTTP request count metrics | info | info | ||||||
HTTP request and response attribute logs | info | info |
Session affinity
For detailed information, see Session affinity.
For links to reference information, see Backend services.
Feature | Internal HTTP(S) | External HTTP(S) | Internal TCP/UDP | External TCP/UDP Network | External SSL Proxy and TCP Proxy |
Internal TCP Proxy | ||
---|---|---|---|---|---|---|---|---|
Global | Classic | Regional | ||||||
Headers | ||||||||
HTTP cookie | ||||||||
Generated cookie | ||||||||
Client IP, no destination (1-tuple)CLIENT_IP_NO_DESTINATION
|
info (Preview) | |||||||
Client IP, Destination IP (2-tuple)CLIENT_IP |
1 | 1 | ||||||
Client IP, Destination IP, Protocol (3-tuple)CLIENT_IP_PROTO |
1 | 1 | ||||||
Client IP, Client Port, Destination IP, Destination Port, Protocol
(5-tuple)CLIENT_IP_PORT_PROTO |
1,2 | 1,2 | ||||||
None (5-tuple)NONE |
3 | 3 |
1 Setting session affinity is only meaningful if the protocol uses sessions. For example, TCP.
2 If the protocol does not have a concept of ports or if the packet does not carry port information (subsequent UDP fragments, for example), then a 3-tuple hash of the Client IP, Destination IP, and protocol is used instead.
3 If the protocol has a concept of ports and the packet carries port
information, then None
is a 5-tuple hash. If the protocol does not have a
concept of ports or if the packet does not carry port information (for example,
subsequent UDP fragments), then None
is a 3-tuple hash of the Client IP,
Destination IP, and protocol.
Load balancing methods
For detailed information, see the Backend services overview.
For links to reference information, see Backend services.
Feature | Internal HTTP(S) | External HTTP(S) | Internal TCP/UDP | External TCP/UDP Network | External SSL Proxy and TCP Proxy |
Internal TCP Proxy | ||
---|---|---|---|---|---|---|---|---|
Global | Classic | Regional | ||||||
Balancing mode: connection | ||||||||
Balancing mode: rate (requests per second) | 2 | 2 | ||||||
Balancing mode: backend utilization (instance group backends only) |
2 | 2 | ||||||
Configurable maximum capacity per backend instance group or NEG | 2 | 2 | ||||||
Circuit breaking | 2 | |||||||
Percent of traffic/weight-based | ||||||||
Prefers region closest to client on the internet When the closest region is at capacity or isn't healthy, prefers next closest region |
(Premium Tier) |
(Premium Tier) |
||||||
Within zone/region load balancing policy | Load balancing locality policy 2 |
Round robin in a zone and load balancing locality policy |
Round robin in a zone |
Round robin in a zone and load balancing locality policy |
Hash-based distribution among all backends in the active pool when failover is configured, or among all backends in the region |
Hash-based distribution among all backends in the active pool when failover is configured, or among all backends in the region 1 |
Round robin in a zone |
Round robin in a zone and load balancing locality policy |
1 This table documents load balancing methods supported by backend service-based network load balancers. Target pool-based network load balancers also perform hash-based distribution among all instances in the target pool or backup pool.
2 This feature is not supported with load balancers using serverless NEG backends.
Routing and traffic management
Feature | Internal HTTP(S) | External HTTP(S) | Internal TCP/UDP | External TCP/UDP Network | External SSL Proxy and TCP Proxy |
Internal TCP Proxy | ||
---|---|---|---|---|---|---|---|---|
Global | Classic | Regional | ||||||
HTTP/Layer 7 request routing |
Suffix, prefix, and match on the following: |
Suffix, prefix, and match on the following: |
Suffix, prefix, and match on the following: |
Suffix, prefix, and match on the following: |
||||
Fault injection | info | |||||||
Configurable timeouts | info1 | info | info | info | info | info | ||
Retries | info1 | info | info | info | ||||
Redirects | info | info | info | info | ||||
URL rewrites | info | info | info | info | ||||
Request and response header transformations (configured on the URL map) |
info | info | info | |||||
Traffic splitting | info | |||||||
Traffic mirroring | info1 | info | info | |||||
Outlier detection | info | info | info | |||||
Retry failed requests | info | info | info |
For internal HTTP(S) load balancers, see the following:
- Traffic management overview for internal HTTP(S) load balancers
- Setting up traffic management for internal HTTP(S) load balancers
For the global external HTTP(S) load balancer, see the following:
- Traffic management overview for global external HTTP(S) load balancers
- Setting up traffic management for global external HTTP(S) load balancers
For the global external HTTP(S) load balancer (classic), see the following:
For the regional external HTTP(S) load balancer, see the following:
- Traffic management overview for regional external HTTP(S) load balancers
- Setting up traffic management for regional external HTTP(S) load balancers
For traffic management features available with Traffic Director, see Traffic Director features: Routing and traffic management.
Autoscaling and autohealing
Feature | Internal HTTP(S) | External HTTP(S) | Internal TCP/UDP | External TCP/UDP Network | External SSL Proxy and TCP Proxy |
Internal TCP Proxy | ||
---|---|---|---|---|---|---|---|---|
Global | Classic | Regional | ||||||
Managed instance group autoscaling based on load balancer serving capacity | ||||||||
Autohealing (native to managed instance groups and GKE) | ||||||||
Connection draining | 1 |
Security
Feature | Internal HTTP(S) | External HTTP(S) | Internal TCP/UDP | External TCP/UDP Network | External SSL Proxy and TCP Proxy |
Internal TCP Proxy | ||
---|---|---|---|---|---|---|---|---|
Global | Classic | Regional | ||||||
Managed certificates | info | info | info
(SSL proxy only) |
|||||
CORS | info | |||||||
Identity-Aware Proxy (IAP) | info | |||||||
Google Cloud Armor | info | info | info (Preview) | info | ||||
SSL offload | (SSL proxy only) |
|||||||
SSL policies (TLS version and cipher suites) |
info | info | info | info | info (SSL proxy only) |
Special features
Feature | Internal HTTP(S) | External HTTP(S) | Internal TCP/UDP | External TCP/UDP Network | External SSL Proxy and TCP Proxy |
Internal TCP Proxy | ||
---|---|---|---|---|---|---|---|---|
Global | Classic | Regional | ||||||
Cloud CDN | info | info (Premium Tier) |
||||||
External endpoints in internet NEGs as external backends for Cloud CDN | info (Premium Tier) |
|||||||
Media CDN | info (Premium Tier) |
|||||||
Internal DNS names | info | |||||||
Load balancer as next hop | info | |||||||
Specify network interface of a backend VM (Multi-NIC load balancing) |
The backend VM's nic0 must be in the same network
and region used by the forwarding rule. |
The load balancer only sends traffic to the first network interface
(nic0 ), whichever VPC network that
nic0 is in. |
info | The load balancer only sends traffic to the first network interface
(nic0 ) of the backend VM. The backend VM's
nic0 must be in the same network and region as the
forwarding rule. |
The load balancer only sends traffic to the first network interface
(nic0 ), whichever VPC network that
nic0 is in. |
The backend VM's nic0 must be in the same network
and region used by the forwarding rule. |
||
Custom request and response headers (configured on the backend service) |
info | info | ||||||
Automatic Service Directory registration (Preview) | info | info | ||||||
Connection tracking policy | 1 | |||||||
Source IP-based traffic steering (Preview) | 1 info | |||||||
Weighted load balancing | 1 info |
1 This table documents features supported by backend service-based network load balancers. Target pool-based network load balancers do not support these features.
What's next
For detailed information on each load balancer, see the following:
- External HTTP(S) load balancer overview (global, classic, and regional)
- Internal HTTP(S) load balancer overview
- External TCP proxy load balancer overview
- External SSL proxy load balancer overview
- Internal regional TCP proxy load balancer overview
- External TCP/UDP network load balancer overview
- Internal TCP/UDP load balancer overview