Amazon EC2 instance network bandwidth - Amazon Elastic Compute Cloud

Amazon EC2 instance network bandwidth

The network bandwidth available to an EC2 instance depends on the destination of the traffic. The following bandwidth quotas apply to aggregate multi-flow bandwidth on a per-instance basis.

Inside the Region

Traffic between an instance and a target destination in the same Region can utilize the full network bandwidth available to the instance.

Outside the Region

Traffic between an instance and a target destination has an aggregate bandwidth quota of 5 Gbps if the target is not in the same Region as the instance, including traffic to AWS Direct Connect or the internet.

Single flow (5-tuple) bandwidth is limited to 5 Gbps, regardless of the direction of traffic. For use cases that require low latency and high single flow bandwidth, use a cluster placement group to achieve bandwidth up to 10 Gbps for instances in the same placement group. Alternatively, set up multiple paths between any two endpoints to achieve higher bandwidth using Multipath TCP (MPTCP).

Available instance bandwidth

The available network bandwidth of an instance depends on the number of vCPUs that it has. For example, an m5.8xlarge instance has 32 vCPUs and 10 Gbps network bandwidth, and an m5.16xlarge instance has 64 vCPUs and 20 Gbps network bandwidth. However, instances might not achieve this bandwidth; for example, if they exceed network allowances at the instance level, such as packet per second or number of tracked connections.

Typically, instances with 16 vCPUs or fewer (size 4xlarge and smaller) are documented as having "up to" a specified bandwidth; for example, "up to 10 Gbps". These instances have a baseline bandwidth. To meet additional demand, they can use a network I/O credit mechanism to burst beyond their baseline bandwidth. Instances can use burst bandwidth for a limited time, typically from 5 to 60 minutes, depending on the instance size.

An instance receives the maximum number of network I/O credits at launch. If the instance exhausts its network I/O credits, it returns to its baseline bandwidth. A running instance earns network I/O credits whenever it uses less network bandwidth than its baseline bandwidth. A stopped instance does not earn network I/O credits. Instance burst is on a best effort basis, even when the instance has credits available, as burst bandwidth is a shared resource.

The following documentation describes the network performance for all instances, plus the baseline network bandwidth available for instances that can use burst bandwidth.

To view network performance using the AWS CLI

You can use the describe-instance-types AWS CLI command to display information about an instance type. The following example displays network performance information for all C5 instances.

aws ec2 describe-instance-types --filters "Name=instance-type,Values=c5.*" --query "InstanceTypes[].[InstanceType, NetworkInfo.NetworkPerformance]" --output table ------------------------------------- | DescribeInstanceTypes | +--------------+--------------------+ | c5.4xlarge | Up to 10 Gigabit | | c5.xlarge | Up to 10 Gigabit | | c5.12xlarge | 12 Gigabit | | c5.24xlarge | 25 Gigabit | | c5.9xlarge | 10 Gigabit | | c5.2xlarge | Up to 10 Gigabit | | c5.large | Up to 10 Gigabit | | c5.metal | 25 Gigabit | | c5.18xlarge | 25 Gigabit | +--------------+--------------------+

Monitor instance bandwidth

You can use CloudWatch metrics to monitor instance network bandwidth and the packets sent and received. You can use the network performance metrics provided by the Elastic Network Adapter (ENA) driver to monitor when traffic exceeds the network allowances that Amazon EC2 defines at the instance level.

You can configure whether Amazon EC2 sends metric data for the instance to CloudWatch using one-minute periods or five-minute periods. It is possible that the network performance metrics would show that an allowance was exceeded and packets were dropped while the CloudWatch instance metrics do not. This can happen when the instance has a short spike in demand for network resources (known as a microburst), but the CloudWatch metrics are not granular enough to reflect these microsecond spikes.