To test latency and connectivity issues with AWS Global Accelerator, you can use a combination of active network measurement tools, health checks, and monitoring strategies. Here is a detailed approach:
1. Use the AWS Global Accelerator Speed Comparison Tool
- This tool compares download speeds between Global Accelerator and the public internet from different AWS Regions.
- You select a file size to download, and the tool downloads files over HTTPS/TCP from Application Load Balancers in various regions.
- It helps you see direct speed comparisons and identify if Global Accelerator improves performance over the public internet.
- Run the test multiple times at different times to account for variability due to external factors like last-mile network quality and distance[2].
2. Conduct Active Bandwidth and Latency Tests with iPerf3
- Install iPerf3 on both your accelerator endpoint (e.g., EC2 instance behind Global Accelerator) and the client machine from where you want to test.
- Run iPerf3 in server mode on the EC2 instance:
iperf3 --server --interval 20 [-p 5201]
- Run iPerf3 in client mode on your test machine, targeting the Global Accelerator IP address:
iperf3 --client --interval 10 --time 300 [-p 5201]
- Customize parameters such as test duration (`--time`), reporting interval (`--interval`), and bidirectional testing (`-d`) as needed.
- Compare results by running tests against both the Global Accelerator IP and the direct EC2 endpoint IP to observe improvements in throughput and latency when using Global Accelerator[2].
3. Perform HTTP Load Testing with Apache Bench or Similar Tools
- Use Apache Bench (ab) or similar HTTP load testing tools to measure request rates, latency, and throughput.
- Run tests against the Global Accelerator endpoint and the direct endpoint to compare performance metrics like requests per second (RPS), time per request (TPR), and connection times.
- Repeat tests multiple times and at different times of day to identify consistent patterns[2].
4. Monitor Endpoint Health and Configuration
- Ensure that your Global Accelerator endpoint groups and listeners are properly configured, including health check settings.
- Health checks should be configured with appropriate protocol, port, path, interval, and threshold count to accurately reflect endpoint health.
- Unhealthy endpoints are automatically removed from traffic routing by Global Accelerator, so verify that your endpoints are healthy to avoid unexpected routing behavior[5][9].
5. Test Connectivity Using Basic Network Tools
- Use tools like `ping`, `curl`, or `wget` from different geographic locations to test connectivity to your Global Accelerator IP addresses.
- Note that Global Accelerator responds to ICMP echo requests (pings) at the edge, but these pings do not reach your backend endpoints, so they only confirm edge availability, not endpoint health[3].
- For deeper connectivity testing, use TCP-based tools like iPerf or HTTP requests.
6. Measure Network Jitter
- Collect real user latency data over time using your monitoring tools or third-party services.
- Calculate jitter as the standard deviation of latency (e.g., first byte latency) over a period (recommended averaging over 7 to 14 days for stability).
- Lower jitter indicates more consistent latency, which is beneficial for application performance[2].
7. Use CloudWatch Metrics and Alarms
- Monitor Global Accelerator metrics such as `RejectedConnectionCount`, `HealthyEndpointCount`, and latency metrics via Amazon CloudWatch.
- Set alarms to detect anomalies like high connection rejections or endpoint health degradation.
- Use these insights to correlate with your latency and connectivity tests and identify potential issues[5].
Summary
By combining these methods-speed comparison tools, iPerf3 bandwidth tests, HTTP load testing, health check verification, connectivity tests, jitter measurement, and CloudWatch monitoring-you can comprehensively test latency and connectivity issues with AWS Global Accelerator. This approach helps you pinpoint whether performance problems are due to Global Accelerator, endpoint health, network conditions, or configuration errors, enabling you to optimize your global application delivery effectively.
Citations:
[1] https://aws.amazon.com/blogs/networking-and-content-delivery/measuring-aws-global-accelerator-performance-and-analyzing-results/
[2] https://docs.aws.amazon.com/global-accelerator/latest/dg/introduction-speed-comparison-tool.html
[3] https://docs.aws.amazon.com/global-accelerator/latest/dg/introduction-how-it-works.html
[4] https://aws.amazon.com/blogs/networking-and-content-delivery/use-aws-global-accelerator-to-improve-application-performance/
[5] https://repost.aws/questions/QUuNiUCKYUSkKScntMG8MMeA/timeout-aws-global-accelerator
[6] https://aws.amazon.com/blogs/networking-and-content-delivery/best-practices-for-deployment-with-aws-global-accelerator/
[7] https://www.youtube.com/watch?v=s5sjsdDC0Lg
[8] https://cloudonaut.io/review-aws-global-accelerator-latency-multi-region-disaster-recovery/
[9] https://docs.aws.amazon.com/pdfs/global-accelerator/latest/dg/global-accelerator-guide.pdf