In this demo, we’re going to walk through how to set up AWS Global Accelerator, a global
networking service that runs in the edge locations of the AWS network. AWS Global Accelerator
takes advantage of the vast, congestion-free AWS global network to optimize the path from our users
to our applications, improving both their availability and performance by up to 60%.
When we think about web applications and network infrastructure at a high level, we may imagine it
looking something like this:
But in reality, it looks a lot more like this:
End users will usually travel across multiple networks before reaching our applications. Each time they pass from one
network to another, it adds latency and reduces performance. AWS Global Accelerator solves this by moving our users’ traffic
onto the AWS global network more quickly. Using the public AWS Global Accelerator Speed Comparison tool,
we can compare regions and see up to 60% decreased latency vs. the public Internet.
Let’s open up AWS Global Accelerator in the AWS Management Console and take a look at
how quick and easy it is to get started with an example load-balanced application already running on AWS.
We begin by clicking the “Create accelerator” button and giving it a name. If we had a pool of static IP addresses of
our own that we’ve brought to AWS, we could configure Global Accelerator to use those.
That’s not the case though, so we’ll just click Next. Now we need to create one or more listeners.
Our existing Application Load Balancer is listening for TCP connections on port 80, so we’ll use the
same settings for our Global Accelerator listener. But we could also listen on multiple comma-separated ports or over an entire range of ports if needed
If we wanted to maintain client affinity by routing a specific user to the same application endpoint each
time they connect via the same source IP address, we could enable the “Client affinity” setting here.
Our sample application is stateless though, so we can skip that. We could also configure our listeners for
UDP connections on the appropriate ports, but we won’t be needing that for this sample application either.
Endpoint groups are collections of individual endpoints in a single AWS Region. You can
add up to ten of these Endpoint Groups (i.e. regions) behind a single accelerator.
Our sample application is running in North Virginia, so we need to select the “us-east-1” region here, as
none of the other regions available would contain the endpoint we actually want to send traffic to.
If we had instances of our application deployed to multiple AWS Regions, with load balancers of their
own, we’d want to add an endpoint group in each of those regions as well.
We could then control the percentage of traffic that’s being directed to the group using the
“Traffic dial” setting. Think of it as a volume knob for that endpoint group. By default, every endpoint group
is accepting 100% of the traffic directed to it. As for health checks, Global Accelerator is going to use the
same health check settings that are configured for our load balancer endpoint, so we don’t need to
modify these settings ourselves for this example. If we were going to be having Global Accelerator
route traffic directly to individual EC2 instances or Elastic IP addresses, then we’d configure those
separate health check settings here. Let’s move on and add our endpoint.
We’ve defined one endpoint group, and if we select Application Load Balancer as the endpoint type, we
can choose our sample application’s load balancer in the endpoint dropdown menu. We could also
select an internal Application Load Balancer if applicable.
The “Weight” setting here balances traffic across multiple endpoints, which we can use to direct
more or less traffic to specific endpoints in our endpoint group, such as a new version of the application that we
want to gradually send new traffic to, before setting its weight to 100% and rolling it out fully.
Finally, we'll leave the “Preserve client IP address” setting at its default and click “Create accelerator".
Great, our accelerator is being provisioned! It'll take a few minutes to become available, but once it’s ready,
we can verify that our application still works as expected using the provided DNS name. We’ll also see this association
under the Integrated Services tab of the ALB console. After updating the appropriate Route 53 record set to
point to the Global Accelerator DNS name instead of the original Application Load Balancer address, our users can
start enjoying the performance benefits that come with being routed to our application more efficiently.
AWS Global Accelerator is a global service that supports endpoints in multiple AWS Regions.
You can finnd the complete list of supported edge locations and the Global Accelerator FAQ page
linked in the video description, along with more information of how to get started or dive deeper into its
more advanced features. Thanks for watching !