
Standard accelerators can use Application Load Balancers, Network Load Balancers, Amazon EC2 instances, and Elastic IP addresses. Confirm the endpoint type and regional placement before writing the Terraform configuration.
No. Global Accelerator, CloudFront, Route 53, and load balancers address different architecture layers. Choose each service for its own routing, caching, DNS, or load-balancing responsibility.
A traffic dial controls the share of new traffic accepted by a regional endpoint group. An endpoint weight controls the proportion sent to an individual endpoint within that group.
No. AWS applies the updated traffic-dial setting to new connections. Established connections are not terminated just to adjust traffic distribution.
Yes. The wrapper exposes health-check protocol, port, path, interval, and threshold settings. Verify behavior against the endpoint type, especially where AWS uses an Application Load Balancer or Network Load Balancer health check.
Your application can change across Regions without asking clients to chase a new entry point. This guide shows how to model that traffic layer with AWS Global Accelerator and Terraform.
If you are moving an application across Regions, changing load balancers, or planning a controlled rollout, traffic should not depend on a last-minute AWS Console change. This guide focuses on standard accelerators for applications behind Application Load Balancers, Network Load Balancers, Amazon EC2 instances, or Elastic IP addresses.
AWS Global Accelerator provides static entry points for applications and routes client traffic to regional endpoints. A listener accepts traffic for a configured protocol and port range. Each listener is associated with one or more regional endpoint groups, and each group contains the application endpoints that can receive traffic.
For a standard accelerator, AWS considers user location, endpoint health, and configured endpoint weights when it selects an endpoint. The listener, endpoint-group, and endpoint model is the part you need to make explicit before a change reaches production.
This is not a blanket latency or availability promise. It gives your team one place to define ingress addresses, listener behavior, regional routing, and the controls used when the architecture changes.
Use a standard accelerator when clients need fixed entry points and your application must route new connections to supported endpoints in one or more AWS Regions. It is useful when traffic controls belong in the same review as the rest of a release.
For AWS DevOps teams, the practical objective is a configuration that can be planned, reviewed, applied, and handed over without relying on undocumented AWS Console changes.
Terraform exposes this configuration through the aws_globalaccelerator_accelerator resource, including the accelerator name, address type, flow logs, and tags.
The Das Meta wrapper keeps the Global Accelerator configuration in one focused contract instead of spreading related controls through a hand-built setup. Released in terraform-aws-modules v3.1.0, it provides typed listeners and endpoint groups; validates ports, regional uniqueness, weights, traffic dials, health checks, and port overrides; and supports optional flow-log delivery to an existing Amazon S3 bucket.
Das Meta's global-accelerator wrapper module was released in v3.1.0. Its listener and endpoint-group contract makes traffic controls reviewable before deployment.
This minimal example follows the v3.1.0 input interface. Before production use, the module owner should confirm the source address, provider constraints, endpoint ARN values, and test coverage.
module "global_accelerator" {
source = "git::https://github.com/dasmeta/terraform-aws-modules.git//modules/global-accelerator?ref=v3.1.0"
name = "public-api"
ip_address_type = "IPV4"
listeners = {
https = {
protocol = "TCP"
port_ranges = [{ from_port = 443, to_port = 443 }]
endpoint_groups = {
eu_central_1 = {
endpoint_group_region = "eu-central-1"
traffic_dial_percentage = 100
health_check = {
protocol = "HTTPS"
port = 443
path = "/health"
interval_seconds = 30
threshold_count = 3
}
endpoints = [{ endpoint_id = var.eu_central_1_alb_arn, weight = 128 }]
}
us_east_1 = {
endpoint_group_region = "us-east-1"
endpoints = [{ endpoint_id = var.us_east_1_alb_arn, weight = 128 }]
}
}
}
}
flow_logs = {
enabled = true
s3_bucket = var.flow_logs_s3_bucket
s3_prefix = "global-accelerator/public-api"
}
tags = { ManagedBy = "Terraform" }
}
The example intentionally omits application-specific networking, DNS, security-group, and deployment decisions. Those remain part of the surrounding architecture and require their own review.
Think in two levels. Endpoint weights distribute traffic between endpoints inside one endpoint group. Traffic dials control the percentage of traffic accepted by a regional endpoint group after traffic has already been directed there. They work together, but they do not solve the same problem.
At regional level, traffic_dial_percentage determines how much traffic an endpoint group accepts. Within that group, endpoint weight decides how traffic is distributed.
Say you are updating one Region. Reduce that Region's traffic dial for new connections, keep the change in version control, and check the expected new-connection path. In the receiving Region, use endpoint weights if you need to distribute traffic between two endpoints during a controlled test. Plan the rollback before the change window.
An update to traffic_dial_percentage affects new connections; it does not close existing ones. That distinction matters during a regional change window.
Do not start with the service. Start with the traffic decision: which entry points clients use, which Regions may receive new connections, who approves a change, and how you roll it back. AWS Global Accelerator and Terraform give that decision a repeatable form before it reaches production.
After the rollout, the same ownership question remains: Cloud Infrastructure Management is for teams that need day-to-day control, whereas Cloud Architecture Consulting helps teams map traffic and endpoint decisions before implementation.