Estimate NAT gateway connection and bandwidth capacity for outbound cloud traffic.
A NAT gateway's maximum concurrent connections to any single destination IP/protocol/port combination is limited by the number of ephemeral source ports available, multiplied by how many public IP addresses the gateway can use: connections = ports_per_ip × elastic_ips. Each additional public IP effectively multiplies the available port pool, since ports are tracked per source-IP, allowing the gateway to open many more simultaneous connections to the same busy destination before running into port exhaustion. Bandwidth is a separate, independent limit — the gateway's throughput ceiling regardless of connection count.
Max concurrent connections
connections = ports_per_ip × elastic_ips
NAT translates each outbound connection to a unique combination of (public IP, source port). With only one public IP, you're limited to that IP's ~64,000 usable ports per destination; adding a second IP effectively doubles the available port pool for connections to the same busy destination.
When too many simultaneous connections are made to the same destination IP and port (e.g. a single popular API endpoint) and the available port pool for that destination is used up, new connection attempts fail until existing ones close and free up a port — adding more elastic IPs directly mitigates this.
Yes — the port limit is per unique (destination IP, destination port, protocol) tuple, not a global cap. A NAT gateway can typically support many multiples of this connection count in aggregate as long as traffic is spread across many different destinations rather than concentrated on one.
It depends on the workload — many short-lived connections to few destinations (e.g. web scraping a single site) tend to hit port limits first, while sustained large data transfers tend to hit the bandwidth ceiling first. Both should be checked independently, as this calculator does.