AWS Global Accelerator
AWS Global Accelerator is a networking service that gives your application two fixed public IP addresses and then routes every user’s traffic onto the private AWS global network as quickly as possible. Instead of bouncing across the unpredictable public internet, packets hop onto the AWS backbone at the nearest edge location and travel a fast, congestion-managed path to your servers. The result is lower latency, fewer dropped connections, and near-instant failover if a whole region goes down. It is built for live, non-cacheable traffic like multiplayer games, real-time APIs, and voice over IP (VoIP).
What problem does it solve?
When a user in Tokyo connects to your server in Virginia, their packets normally travel across many third-party internet networks. Each hop adds latency and risk. Global Accelerator changes this in two ways:
- Anycast IPs. Anycast means one IP address is announced from many locations at once. Global Accelerator gives you two static anycast IP addresses. A user automatically reaches the closest AWS edge location that advertises that IP, with no DNS change or app change.
- AWS backbone routing. From that edge location, traffic rides AWS’s own private network all the way to your application, avoiding the slow public internet.
It also performs continuous health checks. If your endpoint in one AWS Region becomes unhealthy, Global Accelerator reroutes traffic to a healthy Region in seconds, because the IP addresses never change.
When to use this (and when not to)
Use Global Accelerator when you have non-cacheable, latency-sensitive TCP or UDP traffic and need fast regional failover: online games, trading and financial APIs, VoIP and video conferencing, IoT ingestion, or any global app where a static entry IP is required (for example, customers must allowlist your IPs in their firewall).
Do not use it for serving images, videos, scripts, or other static content to a global audience. That is caching, and caching is Amazon CloudFront’s job (see What is CloudFront). Global Accelerator does not cache anything.
Global Accelerator vs CloudFront
This is the single most common point of confusion, so let’s make it concrete.
| Feature | Global Accelerator | CloudFront |
|---|---|---|
| Primary job | Optimize the network path and failover | Cache content at the edge |
| Traffic type | TCP and UDP (any port/protocol) | HTTP and HTTPS only |
| Caching | None | Yes, this is the whole point |
| Entry point | Two static anycast IPs | DNS name (and optional caching) |
| Best for | Games, APIs, VoIP, real-time apps | Websites, media, downloads, APIs you want cached |
| Failover | Near-instant cross-Region | Origin failover via origin groups |
Gotcha: Global Accelerator does not store or cache your content. If your goal is to make a static website or video library load faster worldwide, that’s caching, and CloudFront does it. Global Accelerator speeds up the path for live traffic that can’t be cached. Many teams use both: CloudFront for the static front end, Global Accelerator for the real-time API or game server behind it.
Core building blocks
- Accelerator — the top-level resource. It owns the two static anycast IPs.
- Listener — defines a port range and protocol (for example, TCP 443).
- Endpoint group — one per AWS Region. It holds your actual endpoints and lets you set a traffic dial (percentage of traffic) and health checks.
- Endpoint — an Application Load Balancer (ALB), Network Load Balancer (NLB), Elastic IP (a permanent public IP address), or EC2 instance.
How to create an accelerator (Console)
- Open the AWS Management Console and go to Global Accelerator.
- Choose Create accelerator, give it a name like
prod-game-accelerator, and keep the type Standard. - Add a listener: protocol TCP, port 443 (or your game/API port). Click Next.
- Add an endpoint group and pick a Region, for example
us-east-1. Set the traffic dial to 100. Click Next. - Add endpoints in that group — select your ALB or NLB (for example
arn:aws:elasticloadbalancing:...:loadbalancer/app/prod-alb/abc123). Set a weight (default 128). - Optionally add a second endpoint group in another Region (such as
eu-west-1) for cross-Region failover. - Choose Create accelerator. After a minute or two the status becomes Deployed and you’ll see your two static IPs.
How to create an accelerator (AWS CLI v2)
First create the accelerator:
aws globalaccelerator create-accelerator \
--name prod-game-accelerator \
--ip-address-type IPV4 \
--enabled \
--region us-west-2
Output:
{
"Accelerator": {
"AcceleratorArn": "arn:aws:globalaccelerator::111122223333:accelerator/0a1b2c3d",
"Name": "prod-game-accelerator",
"Status": "IN_PROGRESS",
"IpSets": [
{
"IpFamily": "IPv4",
"IpAddresses": ["75.2.0.10", "99.83.0.20"]
}
],
"DnsName": "a0a1b2c3d.awsglobalaccelerator.com"
}
}
The two IPs (75.2.0.10 and 99.83.0.20) are your permanent anycast addresses. Next add a listener:
aws globalaccelerator create-listener \
--accelerator-arn arn:aws:globalaccelerator::111122223333:accelerator/0a1b2c3d \
--protocol TCP \
--port-ranges FromPort=443,ToPort=443 \
--region us-west-2
Then create an endpoint group that points at your load balancer:
aws globalaccelerator create-endpoint-group \
--listener-arn arn:aws:globalaccelerator::111122223333:listener/0a1b2c3d/9z8y7x \
--endpoint-group-region us-east-1 \
--traffic-dial-percentage 100 \
--endpoint-configurations EndpointId=arn:aws:elasticloadbalancing:us-east-1:111122223333:loadbalancer/app/prod-alb/abc123,Weight=128 \
--region us-west-2
Tip: Note that
--region us-west-2on these commands is just the API control-plane Region for Standard accelerators — it does not mean your traffic only goes there. The accelerator itself is global. Your traffic Regions are defined by the endpoint groups.
Point your domain at the accelerator
In Amazon Route 53, create an A or AAAA record for api.example.com that uses the static IPs, or an alias to the accelerator’s DnsName. Because the IPs never change, you can hard-code them or hand them to partners to allowlist. See DNS record types and Route 53 routing policies.
Cost note
Global Accelerator has a fixed charge of about $0.025 per hour per accelerator (roughly $18/month) whether or not it carries traffic, plus a per-GB data transfer premium that varies by Region (often $0.015–$0.10 per GB on top of normal data transfer). Delete accelerators you no longer use, and don’t spin one up just to test a static website — that’s a CloudFront job and CloudFront has a free tier.
Best practices
- Use Global Accelerator for TCP/UDP, non-cacheable, latency-sensitive workloads; use CloudFront for cacheable HTTP(S) content.
- Deploy endpoint groups in at least two Regions so failover has somewhere to go.
- Hand the two static anycast IPs (not the DNS name) to partners who need firewall allowlisting — they’re permanent.
- Tune the traffic dial per endpoint group to gradually shift traffic during deployments or to drain a Region for maintenance.
- Enable client affinity (source IP) for stateful protocols like gaming sessions so a client sticks to one endpoint.
- Delete idle accelerators — the hourly charge accrues even with zero traffic.