简述:
VPC 对等连接和 Transit Gateway 用于连接多个 VPC。VPC 对等连接提供全网状架构,而 Transit Gateway 提供中心辐射型架构。Transit Gateway 提供大规模 VPC 连接,并简化了 VPC 间通信管理,相比 VPC 对等连接,支持大量 VPC 的 VPC 间通信管理。
VPC 对等连接
AWS VPC 对等连接是两个 VPC 之间的网络连接,可让您在它们之间私下路由流量。任一 VPC 中的实例都可以像在同一网络中一样相互通信。
AWS VPC 对等连接
VPC 对等连接的优势
- 成本低,因为您只需为数据传输付费。
- 没有带宽限制。
VPC 对等连接的劣势
- 规模化时复杂。每个新的 VPC 都会增加网络的复杂性。与 TGW 相比,维护路由表更困难。
- 没有 Transit 路由。
- 每个 VPC 最多支持 125 个对等连接。
Transit Gateway
AWS Transit Gateway 是一项完全托管的服务,它通过中央枢纽连接 VPC 和本地网络,而无需依赖大量的点对点连接或 Transit VPC。
您可以将所有混合连接(VPN 和 Direct Connect 连接)连接到单个 Transit Gateway 实例,从而在一处整合和控制您组织的整个 AWS 路由配置。
AWS Transit Gateway
Transit Gateway 的优势
- 简化了 VPC 连接的管理。每个辐射 VPC 只需连接到 TGW 即可访问其他连接的 VPC。
- 与 VPC 对等连接相比,它支持更多 VPC。
- 每个连接的 TGW 路由表允许进行细粒度路由。
Transit Gateway 的劣势
- 额外的跃点会带来一些延迟。
- 除了数据费用外,每个连接还需支付每小时的额外费用。
主要区别:VPC 对等连接与 Transit Gateway
连接选项
对等连接:VPC 到 VPC。不支持混合连接。
TGW:VPC 到 VPC。支持使用 VPN 或 Direct Connect Gateway 连接的混合连接。多个 VPC 可重复使用相同的 VPN/DX 连接。
架构
对等连接:全网格(一对一映射)。
TGW:中心辐射型。
传递路由
对等连接:不支持。
TGW:支持。
网络连接
对等连接:支持区域间和区域内 VPC 连接。
TGW:支持区域间和区域内 VPC 连接。
复杂性
对等连接:随着 VPC 数量的增加而增加。您需要在每个 VPC 之间设置 VPC 对等连接。VPC 数量较少时,复杂性较低。
TGW:随着 Transit Gateway 数量/区域数量的增加而增加。与 VPC 对等连接相比,VPC 数量更多,但复杂性更低。您需要管理的连接/附件数量非常少。
规模
对等连接:每个 VPC 最多 125 个活跃对等连接。
TGW:每个区域最多 5,000 个附件。
带宽限制
对等连接:无限制。
TGW:每个附件最多 50 Gbps(突发)。
延迟
对等连接:最低。
TGW:由于额外的 Transit Gateway 跃点,延迟略高于 VPC 对等连接。
成本
对等连接:数据传输。(运营成本较高)
TGW:数据传输、数据处理和每个附件每小时。(运营成本较低)
可见性/监控
对等连接:VPC 流日志。与 TGW 相比,可见性有限。
TGW:VPC 流日志、Transit Gateway network manager、CloudWatch 指标。
安全组(交叉引用)
对等连接:支持。
TGW:不支持。
用例
在以下情况下,请选择 VPC 对等连接:
- 需要连接的 VPC 数量较少(~<10)。
- 您需要多个 VPC 连接到本地。
- 当跨区域传输大量数据时,您希望最大限度地降低数据传输成本,VPC 对等连接是经济高效的选择。
- 需要低延迟。
- 您需要高吞吐量。网络带宽要求超过 50 Gbps。
在以下情况下,请选择 Transit Gateway:
- 您需要大规模的 VPC 连接。需要连接的 VPC 数量较多(~>10)或未来随着业务增长而扩展。
- 您需要网络级分段。(可通过多个 TGW 路由表实现)。
- 您需要多个 VPC 连接到本地。
在多个账号之间创建TGW
步骤 1:在主 AWS 账户中创建 Transit Gateway
首先,我们需要在一个 AWS 账户(我们称之为账户 A)中创建一个 Transit Gateway。
- 前往 AWS 控制台 → VPC → Transit Gateway。
- 点击“创建 Transit Gateway”
- 输入名称(例如,Shared-TGW)
- 设置 Amazon ASN(默认值:64512)
- 启用“自动接受共享附件”(推荐)
- 点击“创建 Transit Gateway”
- 复制 Transit Gateway ID(例如,tgw-xxxxxxxxxxxxxx)
步骤 2:与其他 AWS 账户共享 Transit Gateway
为了允许其他 AWS 账户(例如账户 B、账户 C)使用 Transit Gateway,我们需要使用 AWS 资源访问管理器 (RAM) 进行共享。
- 前往 AWS 控制台 → 资源访问管理器 (RAM)
- 点击“创建资源共享”
- 输入名称(例如,Shared-TGW-Access)
- 选择“Transit Gateway”作为资源类型
- 选择 TGW (tgw-xxxxxxxxxxxxxx)
- 添加 AWS 账户 ID(账户 B)
- 点击“创建资源共享”
下一步:
每个接收账户 B 必须接受 TGW 共享:
- 前往 AWS RAM → “与我共享”。
- 点击“接受”以接受共享的 Transit Gateway。
步骤 3:从其他 AWS 账户连接 VPC
其他账户接受共享 TGW 后,即可将其 VPC 连接到该 TGW。
从 AWS 账户 B 操作:
- 前往 AWS 控制台 → VPC → Transit Gateway 连接
- 点击“创建 Transit Gateway 连接”
- 选择共享 TGW (tgw-xxxxxxxxxxxxxx)
- 选择 VPC 作为连接类型
- 选择要连接的 VPC 和子网
- 点击“创建连接”
步骤 4:配置 Transit Gateway 路由表
由于我们现在连接了多个 VPC,因此我们需要确保它们能够相互路由流量。
从 AWS 账户 A(TGW 所有者):
- 前往 AWS 控制台 → VPC → Transit Gateway 路由表
- 选择 TGW 路由表
- 点击“路由”→ 查看到歌VPC的路由是否已经添加成功:
步骤 5:更新每个 AWS 账户中的 VPC 路由表
每个 AWS 账户必须更新其自身的 VPC 路由表,以便通过 TGW 路由流量。
对于每个 AWS 账户 B:
- 前往 AWS 控制台 → VPC → 路由表
- 选择私有子网的路由表
- 点击“编辑路由”
- 为其他 VPC 添加路由:
步骤 6:测试连接
在账号A和B中对应的vpc -subnet 中创建两台EC2:
账号A: EC2 ip 10.1.1.24
账号B: EC2 ip 10.2.1.173
设置完成后,是时候验证网络连接了。
ssh 连接到账号A中的ec2,
ping <账户 B 中 EC2 的私有 IP>
注意:如果 EC2 的入站和出站 IP 都已打开 ICMP,则只有 ping 有效。
总结
现在,您已使用 AWS Transit Gateway 跨多个账户拥有完全连接的 AWS 网络。