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 !