Subchapter 94.4
references/connecting-many-sites-with-a-vpn-concentrator.mdMarkdown12 KBView on GitHub
Domain expertise for consolidating multi-site connectivity with an AWS Site-to-Site VPN Concentrator: a transit gateway attachment that gives 5 Gbps of aggregate bandwidth shared across many remote sites, with endpoints in two Availability Zones. Covers the deployment profile the Concentrator fits, the transit-gateway-only and BGP-only constraints, the per-site work that remains, and the cost comparison against per-site connections.
Does not cover sizing one connection’s throughput (the choosing-tunnel-bandwidth reference) or the general connection build (the creating-a-site-to-site-vpn-connection reference), though each site’s connection follows that build. Use this reference when the customer has many low-bandwidth sites, not one high-throughput site.
Execute commands using the AWS MCP server when connected (sandboxed execution, audit logging,
observability). Fall back to the AWS CLI otherwise. Pass --region {region} matching the transit gateway.
To consolidate many sites, confirm the deployment fits the Concentrator profile, create the Concentrator on a transit gateway, then create one VPN connection per site against it. See the Procedure section below.
The procedure covers:
| Choice | Use when |
|---|---|
| VPN Concentrator | 25 or more remote sites, each needing roughly 50 to 100 Mbps, sharing 5 Gbps aggregate bandwidth (retail chains, restaurant franchises, hotels, multi-site healthcare) |
| Individual VPN connections | A handful of sites, or a single site that needs high throughput on its own |
| Large (5 Gbps) tunnels | One site that needs high per-tunnel throughput (the choosing-tunnel-bandwidth reference) |
Constraints:
The Concentrator is a transit gateway attachment only, so it does not work with a virtual private gateway, and connections on it must use BGP routing; static routing is not an option.
Constraints:
The Concentrator shares one attachment, but each remote site still needs its own VPN connection and its own customer gateway, and every site must use a unique CIDR block to avoid routing conflicts across the shared attachment.
Constraints:
A Concentrator bills per hour for the attachment plus a smaller per-connection charge. It is cheaper than a full 1.25 Gbps connection per site only when there are enough low-bandwidth sites to amortize the attachment cost.
Constraints:
The Concentrator requires a transit gateway. If the customer only has a virtual private gateway, they must create a transit gateway first (Transit-gateway-only constraints).
Concentrator connections require BGP. The device must support BGP (Transit-gateway-only and BGP-only constraints).
Two sites use overlapping CIDR blocks. Give each site a unique CIDR block (Per-site work remains).
Below the break-even site count, per-site connections are cheaper. Reconsider the fit (Cost comparison).
Use the monitoring-and-troubleshooting-tunnels reference for setting up CloudWatch alarms and VPN logs on the Concentrator’s connections.
This procedure confirms the deployment fits the Concentrator profile, creates the Concentrator on a transit gateway, creates one BGP VPN connection per site with a unique CIDR block, then surfaces the console link to verify.
Constraints for parameter acquisition:
Constraints:
aws sts get-caller-identityConstraints:
You MUST create the Concentrator on the existing transit gateway. It provisions two endpoints, one per Availability Zone:
aws ec2 create-vpn-concentrator --transit-gateway-id {transit_gateway_id} --region {region}You MUST capture the concentrator ID from the response
Constraints:
You MUST create each site’s customer gateway and a BGP VPN connection against the Concentrator, with a unique CIDR block per site. Per site, create the customer gateway, then the connection against the transit gateway the Concentrator is on, supplying two TunnelOptions objects so both tunnels use strong options:
aws ec2 create-customer-gateway --type ipsec.1 --public-ip {site_customer_gateway_ip} \
--bgp-asn {site_customer_gateway_asn} --region {region}
aws ec2 create-vpn-connection --type ipsec.1 --customer-gateway-id {site_customer_gateway_id} \
--transit-gateway-id {transit_gateway_id} \
--pre-shared-key-storage SecretsManager \
--options "StaticRoutesOnly=false,TunnelOptions=[{Phase1EncryptionAlgorithms=[{Value=AES256}],Phase2EncryptionAlgorithms=[{Value=AES256}],Phase1IntegrityAlgorithms=[{Value=SHA2-256}],Phase2IntegrityAlgorithms=[{Value=SHA2-256}],Phase1DHGroupNumbers=[{Value=14}],Phase2DHGroupNumbers=[{Value=14}]},{Phase1EncryptionAlgorithms=[{Value=AES256}],Phase2EncryptionAlgorithms=[{Value=AES256}],Phase1IntegrityAlgorithms=[{Value=SHA2-256}],Phase2IntegrityAlgorithms=[{Value=SHA2-256}],Phase1DHGroupNumbers=[{Value=14}],Phase2DHGroupNumbers=[{Value=14}]}]" \
--region {region}You MUST use --pre-shared-key-storage SecretsManager on all create-vpn-connection calls to store PSKs in AWS Secrets Manager so they are not returned as plain text in APIs like describe-vpn-connections; this incurs a small additional Secrets Manager cost per secret
You MUST set strong tunnel options (AES-256, SHA-256 or higher, Diffie-Hellman group 14 or higher) rather than the AES-128 / SHA-1 / DH group 2 minimums
You MUST supply two TunnelOptions objects, one per tunnel, since every connection has two tunnels; a single-element array leaves Tunnel 2 on the weak AES-128 / SHA-1 / DH group 2 defaults
You MUST NOT use static routing; Concentrator connections require BGP
You MUST confirm no two sites share a CIDR block
Constraints:
You MUST confirm the Concentrator and each site’s connection report the expected state
You MUST present the VPN Concentrators console link, filling {region} from the request, and tell the customer to open it and confirm the Concentrator and attached connections:
https://console.aws.amazon.com/vpc/home?region={region}#SiteToSiteVpnConcentrators:{
"region": "us-east-1",
"transit_gateway_id": "tgw-0abc1234",
"site_count": 40,
"per_site_bandwidth": "75 Mbps",
"sites": [
{"customer_gateway_ip": "203.0.113.10", "customer_gateway_asn": 65010, "ip_range": "10.20.1.0/24"},
{"customer_gateway_ip": "203.0.113.11", "customer_gateway_asn": 65011, "ip_range": "10.20.2.0/24"}
]
}Fit confirmed: 40 sites at ~75 Mbps each share 5 Gbps aggregate, within the Concentrator profile.
Created the Concentrator on tgw-0abc1234 (endpoints in two AZs) and one BGP VPN connection per site,
each with a unique CIDR block. Open the Concentrators view to confirm:
https://console.aws.amazon.com/vpc/home?region=us-east-1#SiteToSiteVpnConcentrators:See the Troubleshooting section above for common issues (attachment failures, static routing rejection, overlapping CIDRs, cost).
A Concentrator multiplies the number of tunnels and secrets the customer manages on one shared attachment, so per-site authentication and isolation matter more than for a single connection.
Constraints: