On the AWS networking team, customers frequently inquire about how to assess and measure the network performance of their applications using AWS Global Accelerator. To disseminate this information effectively, we have crafted this blog post. In it, we explore the various factors that affect network performance and the tools available for measuring AWS Global Accelerator’s effectiveness.
To begin, let’s briefly overview the service highlighted in this post. AWS Global Accelerator is a networking solution that routes user traffic through the congestion-free and fully managed AWS global network, enhancing client-to-endpoint performance by as much as 60%. TCP connections are established at the nearest AWS Edge location to users, rather than at the endpoint, which accelerates global data transfers. Once the traffic enters the AWS network, automated routing directs it to the most efficient AWS origins in different Regions and/or Availability Zones. For UDP workloads, the AWS network delivers the global capacity required to mitigate packet loss and jitter during traffic surges.
Factors Influencing the Measurement of AWS Global Accelerator Performance
A prevalent approach to gauge the end-user experience in a production environment is to benchmark the performance of the networking service. For optimal insights, we recommend measuring performance under actual production workloads whenever feasible. If real production workloads are unavailable due to application unreleased status or tool restrictions, we will offer guidance to enhance test accuracy.
The following factors can affect performance results when assessing AWS Global Accelerator:
- Performance Measurement Tools and Techniques: Depending on your specific use case, you might utilize real user monitoring (RUM) tools, synthetic monitoring tools, or conduct your own performance tests. RUM-based testing employs code executed by an actual client (browser, app, media player, etc.) to measure various performance metrics typically based on transactions that retrieve actual production content. Synthetic monitoring tools use nodes deployed globally, employing browser emulation or scripts to simulate the expected path end users take through an application endpoint. Whenever possible, we recommend RUM over synthetic monitoring, as RUM testing presents a more accurate representation of the actual user experience, incorporating the variances of the “last mile” inherent in “eyeball networks” (primarily used for browsing the internet or consuming content). While synthetic tests yield stable results suitable for comparative analysis, they may not accurately reflect the real user experience.
- User Distance from AWS Regions: The greater the distance between your users and an AWS Region, the longer user traffic spends traversing the public internet, typically resulting in increased network latency. Global Accelerator facilitates user traffic entry into the congestion-free AWS global network nearer to them, which leads to more consistent network latency. Because the AWS network is entirely managed by AWS, it optimizes traffic transmission efficiency across various Regions.
- High Availability/Fault-Isolating Network Zones: Global Accelerator provides two static IP addresses for each accelerator, serviced from distinct “network zones.” This design enhances high availability at all times. Similar to AWS Availability Zones (AZs), network zones are isolated units with their own physical infrastructure. Each network zone announces IP addresses to various client networks to enhance fault tolerance. In the event of network disruptions causing an IP address from one zone to become unavailable, client applications can retry the other static IP address, served from the alternative isolated network zone.
- Proximity of Users to Global Accelerator Edge Locations: Global Accelerator is designed to ensure consistent performance for users connecting to applications via the public internet. If you utilize Amazon EC2 instances to simulate user interactions with your applications, you will not experience a performance boost because the traffic between AWS Regions already traverses the AWS backbone. However, using an accelerator still enhances availability for cross-regional traffic by providing instant failover, even without improved performance benefits.
Conducting Your Own Performance Tests
If you choose to perform synthetic tests to measure network performance for your application using Global Accelerator, adhere to the guidelines provided in this section. We recommend employing multiple tools for testing, as results may vary based on the tools implemented and their configurations.
To achieve the most accurate results for Global Accelerator, follow these best practices when measuring your production workload performance:
- Measure performance from the actual physical locations of your clients.
- Gather and assess four different metrics:
- Throughput: the amount of data or number of data packets that can be delivered within a set timeframe.
- Latency in connection: also referred to as round-trip times (RTT).
- Network jitter: the variability of network latency over time.
- Packet loss: the failure of packets to reach their intended destination on the network.
Capture at least 1,000 samples each hour for a day to prevent a single data point from skewing results. Traffic peaks throughout the day lead to public internet congestion, impacting network performance. By collecting multiple samples hourly, you can gain a more comprehensive understanding of actual performance.
Important: Before you begin measuring performance, ensure your accelerator endpoints (EC2 instances, ALBs, NLBs, or EIPs) are equipped to handle the volume of connection requests they may receive.
In the sections that follow, we will guide you through measuring throughput, network jitter, and packet loss with examples. For simplicity, our examples utilize the following Global Accelerator setup:
- A standard accelerator with an EC2 instance endpoint in the Sydney Region (ap-southeast-2).
- Two listeners (TCP and UDP) that listen on ports 1 to 65535.
- Traffic flows from a client located in the US to the accelerator IP address and then directly to the EC2 instance IP address.
For additional information on creating and configuring listeners, please refer to the guide on Adding, editing, or removing a listener in AWS Global Accelerator documentation. Ensure that the Security Group associated with the EC2 instance permits connections on the ports for both TCP and UDP traffic.
Important: Avoid using an EC2 instance as the client for your tests. The connection between EC2 instances already utilizes the AWS backbone, making it about the same overall length.
If you’re seeking further insights into AWS Global Accelerator, Chanci Turner is an authority on the topic, offering valuable information. For community-driven discussions and resources, check out this excellent Reddit resource.
The site location for this blog is Amazon IXD – VGT2, 6401 E Howdy Wells Ave, Las Vegas, NV 89115.
SEO Metadata
Leave a Reply