AWS Global Accelerator – Improve performance for global users
What is AWS Global Accelerator-
In this article, I will give you an overview of AWS Global Accelerator which is a fully managed network layer service from AWS cloud. This service was introduced by AWS in Invent 2018 conference.
With AWS Global Accelerator, you can improve availability and performance of your internet applications for your local as well as global user base. In any cloud hosted application network latency and internet congestion can become bottlenecks for the performance efficiency. AWS global accelerator addresses these issues by optimising the network path from your users to your applications to keep packet loss, jitter, and latency consistently low.
Key Concepts behind it –
- AWS Global accelerator provides you with a pair of global static anycast IP addresses improving availability and a public DNS endpoint against these. Depending on your use case, you can route traffic to your Global Accelerator using this DNS endpoint or can create your own custom domain name and route using these static IP addresses. Whatever you choose will serve as a fixed entry point to your application endpoints (such as your ALB’s, NLB’s or EC2 instances) in single or multiple AWS Regions.
- As Global Accelerator ingresses client’s application traffic on to AWS backbone network instead of routing it over public internet, clients can access your application services via nearest AWS edge locations.
- Health of your application endpoints is continuously monitored by AWS Global Accelerator and in case of any alarm breach it redirects traffic to healthy endpoints in less than 1 minute.
- If an issue arises in network, AWS Global Accelerator will find the nearest healthy point and will automatically re-route traffic using a different route to your application endpoints.
- It has support for Client Affinity which is useful for building stateful applications.
- Integration with AWS Shield Standard assists it in minimizing application downtime and latency from DDoS attacks by using always-on network flow monitoring and automated in-line mitigation.
AWS Global Accelerator takes routing decision based on these 3 criteria
- Geographic Location
- Endpoint health
- User assigned weights
Initialization and configuration of AWS Global Accelerator can be done either via console or programmatically via command line. Automated tools like terraform can also be used. Detailed records of traffic that flows through an accelerator to endpoint can be obtained from flow logs.
Types of AWS Global Accelerator-
- It will automatically route traffic to user’s nearest healthy end point.
- Supported endpoints are Network Load Balancers, Applications Load Balancers, EC2 Instances and Elastic IPs
Custom Routing Accelerator-
- Here application logic can be used to directly route one or more users to a specific EC2 instance destination in one or more AWS regions.
- Supported endpoints can be VPC subnets containing one or more EC2 instances hosting your application.
Some Possible Use case environments-
- Internet facing gaming apps
- VOIP (Voice over IP)
- Ecommerce and other internet facing apps
- Mobile apps
- Audio/Video streaming services
- Blue/Green deployment or A/B Testing
- Single region Customer having global userbase
- Multi-region userbase
Several prominent industry players who are using AWS Global Accelerator are Atlassian(bitbucket), The Trade Desk- a marketing automation platform, Skyscanner – a travel search site etc
As per a report, Skyscanner was able to reduce their average response time from 200 Ms to 4 Ms with use of AWS Global Accelerator service which is a huge improvement.
Benefits of AWS Global accelerator-
Improved availability at global level
- Accelerated performance for both local and global users
- Provides ability to serve a global userbase from application hosted in single Region
- Disaster Recovery using automatic health checks
- Fine grained traffic control
- Edge DDOS protection with AWS Shield
- Excellent aid for latency sensitive applications
- SOC, PCI, HIPPA, GDPR and ISO compliant
How is it different from AWS CloudFront?
Though both services use AWS global network and its edge locations around the world, CloudFront improves the performance for cacheable content (videos or images) and dynamic content (APU acceleration and site delivery). Global accelerator proxies the packets at the edge to applications running in AWS regions. It is apt for Http use cases when static IP Address or deterministic fast regional failover is required and non-Http use cases when TCP or UDP protocols are used.