AWS Security ChangesHomeSearch

AWS AWSEC2 documentation change

Service: AWSEC2 · 2025-05-10 · Documentation low

File: AWSEC2/latest/UserGuide/ena-nitro-perf.md

Summary

Updated ENA queues documentation with technical details about queue allocation, performance tuning, monitoring, and CLI commands for queue configuration

Security assessment

The changes focus on network performance optimization through ENA queue management and configuration instructions. While they discuss resource allocation and system tuning, there is no mention of vulnerabilities, security patches, or access controls. The modifications are operational/performance improvements rather than security-related updates.

Diff

diff --git a/AWSEC2/latest/UserGuide/ena-nitro-perf.md b/AWSEC2/latest/UserGuide/ena-nitro-perf.md
index aed745480..a7a63556d 100644
--- a//AWSEC2/latest/UserGuide/ena-nitro-perf.md
+++ b//AWSEC2/latest/UserGuide/ena-nitro-perf.md
@@ -125 +125 @@ Similarly, a Nitro card can process more packets across multiple flows as oppose
-**Number of Elastic Network Adapter (ENA) queues**
+**Elastic Network Adapter (ENA) queues**
@@ -128 +128 @@ Similarly, a Nitro card can process more packets across multiple flows as oppose
-By default, the maximum number of ENA queues are allocated to a network interface based on your instance size and type. Reducing the queue count can reduce the maximum PPS rate achievable. We recommend using the default queue allocation for best performance.
+ENA (Elastic Network Adapter) uses multiple receive (Rx) and transmit (Tx) queues (ENA queues) to improve network performance and scalability on EC2 instances. These queues efficiently manage network traffic by load-balancing sent and received data across available queues.
@@ -130 +130 @@ By default, the maximum number of ENA queues are allocated to a network interfac
-For Linux, a network interface is configured with the maximum by default. For applications based on the Data Plane Development Kit (DPDK), we recommend that you configure the maximum number of queues available.
+For more information, see ENA queues.
@@ -178,0 +179,17 @@ NitroV3 and earlier platforms do not use hardware acceleration for traffic betwe
+You can maximize your network performance on Nitro system by adjusting network settings.
+
+###### Topics
+
+  * Considerations
+
+  * Tune PPS performance
+
+  * Monitor performance on Linux instances
+
+  * ENA queues
+
+
+
+
+### Considerations
+
@@ -189,0 +207,2 @@ For more considerations and best practices for your instance configuration on Li
+### Tune PPS performance
+
@@ -213 +232 @@ The following list contains actions that you can take to tune your PPS performan
-###### Monitor performance on Linux instances
+### Monitor performance on Linux instances
@@ -216,0 +236,108 @@ You can use Ethtool metrics on Linux instances to monitor instance networking pe
+### ENA queues
+
+ENA queues are allocated to network interfaces with default static limits based on the instance type and size. On supported instance types, you can dynamically allocate these queues across Elastic Network Interfaces (ENIs). While the total queue count per instance depends on its type and size, you can configure multiple ENIs with ENA queues until you meet the maximum queue count for the ENI and the instance.
+
+Flexible ENA queue allocation optimizes resource distribution, enabling maximum vCPU utilization. High network performance workloads typically require multiple ENA queues. You can fine-tune network performance and packets per second (PPS) by adjusting queue counts according to your specific workload needs. For example, network-intensive applications may require more queues compared to CPU-intensive applications.
+
+###### Topics
+
+  * Supported instances
+
+  * ENA queues availability
+
+  * Modify the number of queues
+
+
+
+
+#### Supported instances
+
+The following instances support dynamic allocation of multiple ENA queues.
+
+  * General purpose: M6i, M6id, M6idn, M6in
+
+  * Compute optimized: C6i, C6id, C6in
+
+  * Memory optimized: R6i, R6in
+
+
+
+
+You can use the following command to verify if your instance supports dynamic allocation of ENA queues.
+    
+    
+    aws ec2 describe-instance-types --filters Name=network-info.flexible-ena-queues-support,Values=supported
+
+Amazon EC2 bare metal instances do not support flexible ENA queues.
+
+#### ENA queues availability
+
+The number of available ENA queues is based on the instance type and size. Use the following command to find the number of available queues.
+    
+    
+    aws ec2 describe-instance-types --filters "Name=network-info.flexible-ena-queues-support,Values=supported" --query "InstanceTypes[*].[InstanceType,NetworkInfo.NetworkCards[*].DefaultEnaQueueCountPerInterface,NetworkInfo.NetworkCards[*].MaximumEnaQueueCount,NetworkInfo.NetworkCards[*].MaximumEnaQueueCountPerInterface]" --output json
+
+You can see the `DefaultEnaQueueCountPerInterface`, `MaximumEnaQueueCountPerInterface`, and the `MaximumEnaQueueCount` available across all ENIs on the instance.
+
+#### Modify the number of queues
+
+You can modify the number of ENA queues using AWS Management Console or AWS CLI. In the AWS Management Console, the ENA queues configuration is available under each Netwrok interface setting.
+
+To modify the number of ENA queues using the AWS CLI, use either one of the following commands. Before modifying the queue count, use the following command to check your current queue count.
+    
+    
+    aws ec2 describe-instances --instance-id i-1234567890abcdef0
+
+###### Note
+
+  * Your instance must be stopped before modifying the number of ENA queues.
+
+  * The value for ENA queues must be a power of 2, such as, 1, 2, 4, 8, 16, 32, etc.
+
+  * The number of queues allocated to any single ENI cannot exceed the number of vCPUs available on your instance.
+
+
+
+
+`**[attach-network-interface](https://docs.aws.amazon.com/cli/latest/reference/ec2/attach-network-interface.html)**`
+
+In the following example, 32 ENA queues are configured on an ENI.
+    
+    
+    aws ec2 attach-network-interface \
+      --network-interface-id eni-001aa1bb223cdd4e4 \
+      --instance-id i-1234567890abcdef0 \
+      --device-index 1 \
+      --ena-queue-count 32
+
+`**[run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html)**`
+
+In the following example, 2 ENA queues each are configured on 3 ENIs.
+    
+    
+    aws ec2 run-instances \
+      --image-id ami-12ab3c30 \
+      --instance-type c6i.large \
+      --min-count 1 \
+      --max-count 1 \
+      --network-interfaces \
+        "[{\"DeviceIndex\":0,\"SubnetId\":\"subnet-123456789012a345a\",\"EnaQueueCount\":2},
+          {\"DeviceIndex\":1,\"SubnetId\":\"subnet-123456789012a345a\",\"EnaQueueCount\":2},
+          {\"DeviceIndex\":2,\"SubnetId\":\"subnet-123456789012a345a\",\"EnaQueueCount\":2}]"
+
+`**[modify-network-interface-attribute](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-network-interface-attribute.html)**`
+
+In the following example, 32 ENA queues are configured on an ENI.
+    
+    
+    aws ec2 modify-network-interface-attribute \
+    --network-interface-id eni-1234567890abcdef0 \
+    --attachment AttachmentId=eni-attach-12345678,EnaQueueCount=32
+
+In the following example, the ENA count is reset to the default value.
+    
+    
+    aws ec2 modify-network-interface-attribute \
+    --network-interface-id eni-1234567890abcdef0 \
+    --attachment AttachmentId=eni-attach-12345678,DefaultEnaQueueCount=true
+