Perfect 👍 Below are clean “from-scratch” notes, written exactly like step-1, step-2, so you can keep them for reference or documentation.
-
Login to Networking Account
-
Go to VPC → Transit Gateways
-
Click Create Transit Gateway
-
Configure:
- Name:
tgw-central - Amazon side ASN: default (or custom if required)
- Auto accept shared attachments: Disabled
- Default route table association: Enabled
- Default route table propagation: Enabled
- Name:
-
Click Create Transit Gateway
✔ Transit Gateway created
- Go to VPC → Transit Gateway Route Tables
- Click Create Transit Gateway Route Table
- Name:
tgw-rt-main - Associate with
tgw-central
✔ Route table created
-
In Networking Account
-
Go to AWS RAM
-
Click Create resource share
-
Name:
share-tgw -
Resource type → Transit Gateway
-
Select
tgw-central -
Add principals:
<UAT_ACCOUNT_ID><PROD_ACCOUNT_ID>
-
Create resource share
In UAT Account:
- Go to AWS RAM
- Accept Transit Gateway share
Repeat same steps in PROD Account
✔ TGW visible in both accounts
-
Login to UAT Account
-
Go to VPC → Transit Gateway Attachments
-
Click Create attachment
-
Select:
- Transit Gateway:
tgw-central - Attachment type: VPC
- VPC:
isip-uat - Subnets: Private subnets (one per AZ)
- Transit Gateway:
-
Create attachment
Repeat same steps for:
- VPC:
lime-uat
-
Login to PROD Account
-
VPC → Transit Gateway Attachments → Create
-
Select:
- TGW:
tgw-central - VPC:
isip-prod - Subnets: Private subnets
- TGW:
-
Create attachment
Repeat same steps for:
- VPC:
lime-prod
✔ Total attachments = 4
- Login to Networking Account
- Go to VPC → Transit Gateway Attachments
- Select each attachment
- Click Actions → Accept
✔ All attachments become Available
-
Go to Transit Gateway Route Tables
-
Select
tgw-rt-main -
Go to Associations
-
Associate all attachments:
- isip-uat
- lime-uat
- isip-prod
- lime-prod
In tgw-rt-main → Routes → Create route:
| Destination CIDR | Attachment |
|---|---|
| isip-uat CIDR | isip-uat |
| lime-uat CIDR | lime-uat |
| isip-prod CIDR | isip-prod |
| lime-prod CIDR | lime-prod |
Example:
10.10.0.0/16 → isip-uat
10.11.0.0/16 → lime-uat
10.20.0.0/16 → isip-prod
10.21.0.0/16 → lime-prod
Add routes in private subnet route table:
10.11.0.0/16 → TGW
10.20.0.0/16 → TGW
10.21.0.0/16 → TGW
Repeat similarly for:
- lime-uat
- isip-prod
- lime-prod
Allow traffic from other VPC CIDRs
Example:
Inbound:
TCP 8080
Source: 10.0.0.0/8 (or specific CIDRs)
-
Launch EC2 in each VPC
-
Ping or curl across VPCs
-
Verify:
- TGW routes
- VPC routes
- SG rules
✔ TGW created ✔ TGW shared ✔ Attachments accepted ✔ TGW route table updated ✔ VPC routes updated ✔ SG allows traffic