AWS Cloud WAN series · Part 5 of 17

AWS Cloud WAN: Attachment Types in Practice

Fifth in the AWS Cloud WAN series. Article 4 covered how attachments get mapped to segments; this one covers what the attachments actually are — the five ways something connects to a Core Network Edge, what each is good at, and the two traps (asymmetric inspection and the AZ-ID shuffle) that bite regardless of which type you pick. Every claim is sourced to AWS docs.

TL;DR

There are exactly five attachment types, and the choice is mostly mechanical once you name what you’re connecting: a cloud VPC, on-premises over the public internet, an SD-WAN fabric, an existing Transit Gateway, or a private circuit. A Core Network Edge is, mechanically, an AWS-managed Transit Gateway, so the attachment model, appliance mode, and best-path routing all mirror TGW behavior — if you know TGW, you already know most of this. The two things that actually break in production aren’t about choosing a type: appliance mode on any inspection VPC, and using AZ IDs (not AZ names) when you place attachment subnets across accounts.

Pick it this way

  • VPC for any cloud workload — always.
  • Site-to-Site VPN to start hybrid fast, or where there’s no Direct Connect.
  • Direct Connect gateway for production-grade hybrid (Article 6).
  • Connect to extend an SD-WAN fabric, one segment per VRF.
  • TGW peering to coexist with or migrate off existing Transit Gateways.

Don’t get caught by

  • Forgetting appliance mode on an inspection VPC — inspection silently breaks.
  • Placing subnets by AZ name across accounts — names are shuffled per account.
  • Giving a peered TGW the same ASN as the edge — the peering errors.
  • Expecting static routes on Connect, peering, or DX — they’re BGP-only.
Figure 1 · The fan-in at one edge AWS Region · us-east-1App VPCPrivate subnetTransport VPC (SD-WAN transit)Appliance subnetVPC attachmentConnect (GRE/BGP)Site-to-Site VPNTGW peeringDirect ConnectCloud WANCore Network EdgeApp workloadSD-WANapplianceTransit Gateway(same Region)Branch siteSite-to-Site VPNOn-prem DCvia Direct Connect
Everything reaches the global network through one edge. Each line is a different kind of attachment — same edge, different on-ramps.

Everything joins the core through an attachment — and there are exactly five kinds

A Core Network Edge (CNE) is the regional connection point Cloud WAN manages for you in each Region. AWS is blunt about what it is: a CNE “is also known as an AWS Transit Gateway, and it inherits many of the same properties.” That one sentence is the cheat code for this whole article. The way things attach, how appliance mode pins flows, how the edge breaks a routing tie — it’s TGW mechanics with a global control plane on top. Whatever connects to that edge does so through an attachment, and every attachment walks the same lifecycle: it sits in one of eight states (Creating, Pending attachment acceptance, Available, Failed, and a few more) until it lands at Available and starts carrying traffic.

There are five types, and the whole list fits in a sentence: VPC for cloud workloads, Site-to-Site VPN and Direct Connect gateway for on-premises, Connect for SD-WAN appliances, and Transit Gateway peering for coexisting with TGWs you already run. Figure 1 shows them fanning into a single edge. One detail worth banking early: all five types work both for ordinary workload segments and for the Network Function Groups that service insertion uses for inspection (Articles 8–10), so you’re never boxed in on where appliances versus workloads can live.

Connecting your cloud workloads — the VPC attachment and the limits it inherits

The VPC attachment is the one you’ll create most. It wires an Amazon VPC straight to the edge, and because the edge is a managed TGW, it behaves like a TGW VPC attachment and inherits the same limits. You pick the subnets where the attachment’s elastic network interfaces land — one subnet per Availability Zone you want to serve, and that single subnet lets traffic reach every subnet in that AZ.

Two gotchas catch people. You cannot use a Local Zone subnet for a Cloud WAN VPC attachment — it errors out. And cross-VPC DNS resolution only works between VPCs on the same edge — not across Regions, not across different edges. That second one surprises teams who assume Cloud WAN’s global reach extends to name resolution; it doesn’t, and the fix (Route 53 Resolver, or same-edge placement) is a design decision, not a toggle.

Figure 2 · The five types side by side Five attachment types — what each is for and what to watch TYPE BEST FOR ROUTING REACHES EDGE VIA HARD RULE VPC cloud VPCs propagated ENI — one subnet per AZ no Local Zone subnet S2S VPN quick hybrid BGP (ECMP) IPsec tunnels ~1.25 Gbps per tunnel Connect SD-WAN fabric BGP only GRE over a VPC attach needs inside- CIDR blocks TGW peering TGW coexistence BGP only same-Region peering TGW ASN must differ Direct Connect GW production hybrid BGP only direct — no TGW 1 segment per gateway
Most real networks run several of these at once. The “hard rule” column is where designs go wrong — read it before you pick.

Reaching outside AWS — VPN to start, Direct Connect for production, Connect for SD-WAN

Three of the five types exist to get traffic in and out of AWS, and they sort by how serious you are about the link.

Site-to-Site VPN is the fast on-ramp: a managed IPsec VPN from your on-premises equipment into the core. It supports dynamic routing over BGP and benefits from the vpn-ecmp-support toggle (on by default), which spreads traffic across multiple equal-cost tunnels for throughput and redundancy. Each tunnel tops out around 1.25 Gbps, and ECMP aggregates several. It’s the right call to get hybrid working this week, or anywhere Direct Connect simply isn’t available — but for predictable, production-grade performance most enterprises eventually want a private circuit.

Direct Connect gateway is that private circuit. The native attachment connects a Direct Connect gateway straight to the core network with no intermediary Transit Gateway, exchanging routes bidirectionally over BGP. Two constraints matter here and recur in Article 6: a DXGW’s ASN must sit outside the edge’s ASN range, and a single DXGW can associate with only one Cloud WAN segment (though multiple DXGWs can share one segment). This whole attachment type is the subject of the next article, so I’ll keep it short — just know it’s the native, no-TGW path, and it’s BGP-only.

Connect is the odd one out: it exists to plug third-party SD-WAN appliances into the core without standing up IPsec VPNs. Here’s the correction worth internalizing, because plenty of write-ups get it wrong: a Cloud WAN Connect attachment rides on top of an existing VPC attachment as its transport — not a Direct Connect attachment. (DX-as-transport for Connect is a Transit Gateway feature; it isn’t a thing in Cloud WAN.) Over that transport it builds GRE tunnels with BGP for dynamic routing — GRE peers run up to ~5 Gbps each — and it draws tunnel addresses from the inside-cidr-blocks pool you defined in the policy back in Article 2. Connect is BGP-only; it does not support static routes. The reason it exists is segmentation carry-through: you map each SD-WAN VRF to a Cloud WAN segment, usually by creating one GRE-based Connect attachment per segment, so isolation survives end to end into AWS.

Living alongside your Transit Gateways — the peering attachment

The fifth type is the one that makes Cloud WAN adoption survivable in a brownfield estate. Transit Gateway peering peers a Core Network Edge with a TGW in the same Region, and then — this is the precise part — you extend a specific TGW route table to a specific Cloud WAN segment. The whole TGW does not map to a segment; one route-table attachment maps one route table to one segment, and you can create several over a single peering — one per routing domain you want to keep separate.

This is the linchpin of migration and coexistence (Articles 11–12): you keep TGWs for what they’re good at — regional hubs, and terminating Direct Connect — while extending native segmentation into Cloud WAN. In fact, if you want Direct Connect reachability without moving off your TGW yet, this is how you get it: terminate the DX on the regional TGW as you do today, peer that TGW to the edge, and reach on-prem over the peering. AWS still recommends a TGW per Region for Direct Connect in some designs, precisely so each Region’s workloads reach the circuit locally.

Two rules. Peering routing is dynamic BGP only — try to add a static route and it errors. And the hard one: the TGW’s ASN must differ from the edge’s ASN. Plan ASNs across your whole estate before you build (the same conflict Article 2 flagged), because a CNE’s ASN is immutable once set. There’s a billing nicety too: the peering itself bills at the attachment hourly rate, but the route-table attachments layered on it carry no additional charge.

Why stateful inspection silently breaks — appliance mode and the AZ-ID trap

These two traps share a root cause — where a flow physically lands — and neither depends on which attachment type you chose. Both will produce baffling, intermittent failures if you miss them.

Appliance mode first, because it’s non-negotiable for any stateful device. A firewall or IPS tracks connection state, so it must see both directions of a flow on the same instance in the same AZ. Without help, the outbound packet might traverse the appliance in AZ-a while the return comes back through a different appliance in AZ-b — which has no state for that flow and drops it. That’s asymmetric routing, and it breaks inspection quietly (Figure 3).

Figure 3 · Asymmetric routing, and the fix Without appliance mode return takes a different AZ — no state source appliance AZ-a appliance AZ-b out return ✗ dropped With appliance mode both directions pinned to one AZ source appliance AZ-a out return (same AZ) ✓ state intact — passes
Appliance mode pins a flow to one AZ for its entire life, guaranteeing the return path hits the same stateful instance.

Appliance mode forces the edge to pin a given flow to a single AZ in the appliance VPC for that flow’s lifetime. When source and destination are in the same AZ it uses that AZ’s appliance interface; when they differ it picks one AZ by flow-hash and sticks with it. The details that trip people up:

The general rule is blunt: any inspection VPC attachment gets appliance mode, full stop.

The AZ-ID trap is the subtler sibling. AWS randomizes Availability Zone names per accountus-east-1a in one account is not necessarily the same physical zone as us-east-1a in another, because AWS shuffles the name-to-physical mapping per account to balance load. For most workloads this is invisible. For Cloud WAN it isn’t: shared-services and inspection VPCs often need attachments from different accounts to land in the same physical zone for low-latency, symmetric paths. The fix is to place attachment subnets by AZ ID (e.g. use1-az1), which is stable across accounts, rather than by AZ name — and to pin that in your IaC. Miss it and you get latency and symmetry problems that are genuinely hard to explain.

When the same destination is learned twice — how a route wins

Attach enough things and the edge will eventually learn the same destination CIDR from several places at once. It needs a tiebreaker, and because the edge is a managed TGW, it follows TGW route-evaluation semantics. Walk it top down (Figure 4):

Figure 4 · The best-path ladder How the edge breaks a tie — first rung that decides, wins 1 Most specific prefix wins a /24 beats a /16, regardless of source — this is your strongest lever 2 Static beats propagated a static/local route outranks anything learned dynamically for the same prefix 3 Equal prefix, different sources — source priority static → prefix-list → VPC-propagated → Direct Connect GW → Connect → Site-to-Site VPN → TGW peering 4 Equal BGP routes — attributes, then a coin flip shorter AS_PATH → lower MED → same-Region preferred; a genuine tie across equal Regions is broken at random Source: Transit Gateway route-evaluation semantics; VPC-propagated outranks Direct Connect gateway-propagated.
Specificity is the lever you actually control. Everything below rung 1 is a default you tune with routing policies, not a thing to rely on.

Rung 1 — most specific prefix wins. A /24 beats a /16 regardless of where either was learned. Standard longest-prefix-match, and it’s the strongest tool you have: if you want traffic to prefer a path, advertise (or summarize to) a more specific prefix on it.

Rung 2 — static beats propagated. For the same prefix, a static or local route outranks anything learned dynamically. (This is exactly the property that makes a TGW-to-Cloud-WAN migration safe: a static route on the TGW keeps winning until you delete it, so you can stand Cloud WAN up alongside with zero traffic impact — Articles 11–12.)

Rung 3 — equal prefix from different sources. A fixed source-priority order applies: static, then prefix-list, then VPC-propagated, then Direct Connect gateway, then Connect, then Site-to-Site VPN, then TGW peering. One correction here that the older write-ups get backwards: VPC-propagated outranks Direct Connect gateway-propagated, not the other way around.

Rung 4 — equal prefix, same type, BGP. Now BGP attributes decide: shorter AS_PATH, then lower MED, with the same-Region edge preferred when AS_PATH lengths are equal. And if everything is genuinely equal across Regions? The edge that forwards is chosen at random — AWS’s word, not mine — which is the root of those “why is this traffic exiting the wrong Region” mysteries.

The practical upshot: specificity is your strongest, most reliable lever. Everything below it is a default. With the 2025.11 routing policies (Article 2) you can now actively shape these decisions — setting local preference, prepending or replacing AS_PATH, adjusting MED — rather than living with the defaults. Mind the boundaries, though: VPC attachments only support inbound allow/drop filtering (VPCs don’t speak BGP), summarization is outbound and BGP-attachments-only, and BGP community propagation covers VPN and Connect but not Direct Connect or TGW peering. That shaping is what makes a primary/backup Direct Connect design behave predictably instead of randomly.

Which attachment for which job — the decision

Strip away the detail and the choice is short:

Most real global networks run several at once — VPC attachments for workloads, DXGW or VPN for hybrid, Connect for SD-WAN sites, peering attachments during a migration window. The segmentation model from Article 3 holds across all of them: a segment is a segment regardless of how an attachment reaches it. So the type decision is mostly local and reversible; the two decisions that actually hurt to get wrong — appliance mode on inspection VPCs, and AZ-ID placement — cut across every type, which is why they got their own section.

Hybrid connectivity is where many Cloud WAN projects live or die, and Direct Connect earns its own treatment. Article 6 goes deep on the native Direct Connect gateway attachment: how route advertisement works per Region, tuning BGP best-path for symmetric on-premises↔AWS routing, the single-segment-per-DXGW constraint, and how it compares to the older “DX via a Transit Gateway” pattern you may be migrating away from.

Sources

  1. AWS — Core network policies (JSON) reference: core-network-configuration defaults (vpn-ecmp-support true by default), inside-cidr-blocks minimum /24, and the attachment-type values. docs.aws.amazon.com/.../cloudwan-policies-json.html
  2. AWS — What is AWS Cloud WAN: a Core Network Edge “is also known as an AWS Transit Gateway, and it inherits many of the same properties.” docs.aws.amazon.com/.../what-is-cloudwan.html
  3. AWS — VPC attachments in Cloud WAN: one subnet/ENI per AZ, no Local Zone subnet, cross-VPC DNS only on the same edge, and appliance mode (pins a flow to one AZ; enabled on the VPC attachment; VPC-only; independent of service insertion). docs.aws.amazon.com/.../cloudwan-vpc-attachment.html
  4. AWS — Site-to-Site VPN attachments in Cloud WAN: managed IPsec, dynamic BGP, ECMP across equal-cost tunnels, ~1.25 Gbps per tunnel. docs.aws.amazon.com/.../cloudwan-s2s-vpn-attachment.html
  5. AWS — Connect attachments in Cloud WAN: transport is an existing VPC attachment; GRE (or Tunnel-less) with BGP; BGP-only (no static routes); requires inside-cidr-blocks; ~5 Gbps per GRE peer. docs.aws.amazon.com/.../cloudwan-connect-attachment.html
  6. AWS — Transit Gateway peering & route-table attachments: peers a CNE with a same-Region TGW; one route-table attachment extends one TGW route table to one segment; dynamic BGP only (static route errors); TGW ASN must differ from the CNE ASN. docs.aws.amazon.com/.../cloudwan-peerings.html
  7. AWS — Direct Connect gateway attachments: attach directly to the core network with no intermediary TGW; automatic bidirectional BGP; a DXGW associates with a single segment (multiple DXGWs may share one); DXGW ASN must be outside the core ASN range; BGP-only. docs.aws.amazon.com/.../cloudwan-dxattach-about.html
  8. AWS — Create and manage attachments: the eight attachment lifecycle states (Creating, Deleting, Pending network update, Pending tag acceptance, Pending attachment acceptance, Rejected, Available, Failed). docs.aws.amazon.com/.../cloudwan-create-attachment.html
  9. AWS — How transit gateways work: route-evaluation order — longest-prefix match, static beats propagated, and the source-priority list (static → prefix-list → VPC-propagated → Direct Connect gateway → Connect → VPN → peering). docs.aws.amazon.com/vpc/.../how-transit-gateways-work.html
  10. AWS — Achieve optimal routing with AWS Cloud WAN for multi-Region networks (blog): same-Region preference when AS_PATH lengths are equal, and the random forwarding-CNE tiebreak when routes are otherwise equal. aws.amazon.com/blogs/.../achieve-optimal-routing-with-aws-cloud-wan-for-multi-region-networks
  11. AWS — Working with Availability Zone IDs (RAM): AZ names are randomized per account; use the stable AZ ID (e.g. use1-az1) for consistent physical placement across accounts. docs.aws.amazon.com/ram/.../working-with-az-ids.html
  12. AWS — Cloud WAN routing policies (2025.11): set local preference / MED / AS_PATH; VPC attachments only do inbound allow/drop; summarization is outbound and BGP-attachments-only; BGP communities cover VPN and Connect but not Direct Connect or TGW peering. docs.aws.amazon.com/.../cloudwan-routing-policies.html
  13. AWS — Service insertion in the core network policy: a Network Function Group can contain VPC, VPN, Connect, TGW route-table, and Direct Connect gateway attachments; appliance mode on the inspection VPC is still required for stateful inspection. docs.aws.amazon.com/.../cloudwan-policy-service-insertion.html
  14. AWS — Cloud WAN and Transit Gateway migration and interoperability patterns (blog): a static TGW route takes precedence over a dynamically-learned Cloud WAN route (safe cutover); AWS recommends a TGW per Region for Direct Connect in some designs. aws.amazon.com/blogs/.../aws-cloud-wan-and-aws-transit-gateway-migration-and-interoperability-patterns
  15. AWS — Cloud WAN pricing: attachments bill at the per-hour attachment rate; TGW route-table attachments on a peering carry no additional charge. aws.amazon.com/cloud-wan/pricing/