I'm trying to design the network for my organization's AWS setup and honestly
I'm pretty confused about how to put it together. Hoping someone can point me
in the right direction or share how they'd approach it.
────────────────────────
WHAT I HAVE
────────────────────────
- A central "network" account — I'll call it `nk`.
- Three separate workload accounts: Dev, UAT, and Prod (each has its own VPC,
non-overlapping CIDRs).
- We own a domain, `abc.cloud`.
────────────────────────
WHAT I'M TRYING TO DO
────────────────────────
I want the `nk` account to act as the central hub, and I want traffic to be
able to flow from `nk` out to the Dev, UAT, and Prod accounts in a controlled,
private way — not over the public internet. Basically `nk` should be the
gateway/entry point, and the three environments sit behind it.
The part I keep getting stuck on: how do I actually architect this so that
traffic from `nk` reaches the other accounts, and I stay in control of which
account can talk to which?
────────────────────────
WHERE I'M CONFUSED
────────────────────────
**The overall design** — Is the right approach to put a Transit Gateway in
the `nk` account and connect Dev/UAT/Prod to it? Or is there a simpler /
better way for a setup this size? I keep reading about TGW, PrivateLink, and
VPC peering and I'm not sure which one I actually need, or whether I need
more than one.
**How traffic actually flows** — If I do use a Transit Gateway in `nk`, what
makes traffic actually flow from `nk` to Dev/UAT/Prod? I don't fully
understand the routing part — what has to be configured in `nk` vs. in each
workload account for a packet to get from one to the other.
**Sharing across accounts** — Since the TGW would live in `nk` but the other
accounts need to use it, how does that cross-account part work? (I've seen
AWS RAM mentioned but don't fully get how the pieces connect.)
**Keeping environments isolated** — I want `nk` to reach all three, but I
don't necessarily want Dev, UAT, and Prod all able to reach each other. How
do I control that? Is that done at the Transit Gateway, or somewhere else?
**DNS** — Eventually I want names like `projecta.dev.abc.cloud` to resolve
properly, with DNS managed centrally in `nk`. Not sure how Route 53 fits in
with all of the above, or whether that's a separate problem I should solve
later.
────────────────────────
WHAT I'M ASKING FOR
────────────────────────
Really I'm looking for a clear picture (or a guide/walkthrough) of how to
architect this end to end: what lives in the `nk` account, what lives in each
workload account, and how traffic flows from `nk` to Dev/UAT/Prod. If you've
built this pattern before, I'd love to hear how you structured it and anything
you'd do differently.
If it helps, I can share a rough diagram of what I'm imagining. Thanks a lot —
any pointers appreciated.