Skip to content

We connected four regions. Why did one routing change affect all of them?

The Route Exists. Does the Request Arrive? · Part 2 of 6 · 5 min read

Read the worked explanation ↓

Interview question. A travel platform runs services in four cloud regions. Teams request private access across twelve VPCs. The networking team suggests either connecting every VPC to every other VPC, attaching them to regional transit hubs, or exposing selected services through private endpoints. Design a topology that a Principal engineer can defend on cost, access control, failure isolation and recovery.

I would start by refusing the assumption that every service needs to reach every other service. A payments worker in region A may need a fraud-scoring API in region B, but it probably should not have layer-three access to B's build agents, monitoring backends and development databases. Network reachability is itself a product requirement. It determines which mistake or compromised workload can affect which systems.

If all twelve VPCs truly require direct pairwise peering, a complete mesh has 12 × 11 / 2 = 66 peer relationships. That count is only the number of links. It does not count route entries, DNS zones, policy reviews, account boundaries or changes when another VPC arrives. A complete mesh is often the wrong abstraction even when its first two links look simple.

Four region-local routing hubs connect only approved regional service paths, contrasting full connectivity with segmented private access.
Four region-local routing hubs connect only approved regional service paths, contrasting full connectivity with segmented private access.
Think first

Design connectivity for twelve VPCs across four regions, with thirty allowed service flows and a hard requirement that payment requests remain available if any one remote region loses network connectivity. Choose connectivity per traffic class, explain routing ownership and write three failure tests.

Take a few minutes to form an approach, then compare it with the worked explanation.

Reveal the worked explanation

Three choices solve different problems

Direct VPC peering gives two VPCs a private route to each other without requiring traffic to pass through a third VPC. For a small number of carefully chosen relationships, it can be straightforward and avoids a shared transit hub. It is not transitive. If a team thinks its peering topology forms a general network graph through which packets can pass by hopping across peers, the design is already flawed.

A transit gateway attaches many VPCs and provides configurable route tables for traffic between them. A regional hub can simplify connectivity inside one region, and peerings between transit gateways can connect supported regions. On AWS, inter-region transit gateway peering needs explicit static routes. I would not assume one hub can simply forward through several other hub peerings or that route propagation between those peerings behaves like a global routing fabric. If a flow crosses regions, draw that exact supported path.

Private service endpoints such as PrivateLink solve a narrower problem. A consumer reaches a specifically published service through an endpoint instead of receiving full network routing to the provider's whole address space. This can be useful between organizational boundaries or where two VPCs use overlapping CIDRs. It does not provide general bidirectional VPC connectivity, and service support, cross-region capability and fees must be confirmed. For most teams, reduced network exposure is worth the extra configuration.

Regional independence must be designed, not named

Suppose a central hub in region A carries every control-plane request for all four regions. Region B still has working compute and databases, but the hub in A loses an attachment. B's services could fail even though no resource in B is broken. Calling the deployment multi-region would hide a shared failure domain.

I would group traffic into classes before choosing links. Local request serving should use regional dependencies whenever possible. Cross-region replication and recovery control traffic should travel on deliberate, measured paths. A small set of remote administrative APIs may use authenticated private endpoints. Data pipelines moving bulk bytes can use different capacity reservations from synchronous user-facing APIs. Separate route tables and security policies for these classes, and validate that production cannot accidentally route through development attachments.

That separation also makes failure tests meaningful. Remove the inter-region peer between A and B in staging. Which requests still complete locally? Which data replication stream pauses? Which asynchronous queue accumulates work? What can restart when connectivity returns? A network cut should not silently turn into a business-level permission to double-charge or discard work.

The bill and the traffic graph matter

The cheapest-looking topology on a slide may cost more in practice. Transit gateways and private endpoints can charge for attachments, endpoint-hours or processed bytes. Inter-region transfer has separate cost considerations. The precise numbers depend on provider, region and product, so I would use measured traffic matrices rather than inventing a universal price comparison.

For example, if a service makes forty remote API calls per user operation, moving those packets over a private backbone might change reliability or egress charges, but it will not remove physical round-trip latency. That calls for application redesign, which the final lesson in this series will address. Keeping networking and application communication costs separate prevents a more expensive private link from becoming a false performance fix.

I would build a matrix listing who initiates each connection, destination service, bytes transferred per day, latency budget, authentication, data classification and whether the flow may be unavailable during a region isolation event. This document is more useful than a picture with twelve fully connected boxes. It leads naturally to service endpoints for narrow relationships and regional transit hubs where many local workloads genuinely need routed connectivity.

The release gate would check actual subnet and hub route tables, DNS resolution, network policies, endpoint access policies and route-diff review. We would test attachment failure, wrong route propagation, overlapping address allocation, one-region isolation and rollback. Regional independence means those tests produce bounded effects. A topology diagram alone cannot prove it.

Go deeper

AWS VPC peering is nontransitive. Transit gateway route tables can associate attachments and accept propagated routes, while inter-region TGW peering currently uses static routes. Cross-region PrivateLink access exists for eligible endpoint services and supported regions, but it is a service-level consumption model, not a transit-router replacement. Model the transit appliance itself as a fault and policy domain, even when the cloud provider operates it. For an enterprise network with different trust zones, route table segmentation may be as important as raw availability.

Check your reasoning

  • Identify permitted service-to-service traffic before linking VPCs.
  • Calculate pairwise full mesh cost and explain nontransitive VPC peering.
  • Compare regional TGW route segmentation with service-level private endpoints.
  • Model a failed regional hub or inter-region attachment as a failure domain.
  • Validate traffic-cost estimates, route review and service recovery tests.

Common mistake: A collection of TGW peerings automatically forms a fully transitive global fabric.

Which approach best bounds access and failure propagation across twelve VPCs in four regions?

Read the answer explanation

Choose connectivity from an approved traffic matrix and test isolation under peer failures — Connect only required flows, and draw each supported route. Peering, transit hubs and private service endpoints have different routing semantics.

Apply it elsewhere

Two subsidiaries need to call one shared verification API but their private IPv4 ranges overlap. Compare service-level endpoint publishing with full routed connectivity, including security and operational tradeoffs.

Compare your approach

Defend reachability scope, nontransitive links, hub route segmentation, service endpoints, traffic matrix, failure isolation, route review and cost based on measured bytes rather than nominal VPC count.

One more constraint

Does connecting transit gateways with inter-region peerings automatically create full transitive routing among every attached VPC in every region?

Quick revision

Start with the allowed traffic matrix, not the number of VPCs. Direct peering is useful for limited links but is not transitive. Regional transit hubs simplify many-to-many routing but introduce policy and failure domains, and cross-region peerings need explicit routes. Private endpoints expose selected services without broad network reachability. Separate local serving from remote replication, measure byte costs, and test region isolation to prove independence.

References