亚马逊AWS官方博客

从 Transit VPC 迁移到 AWS Transit Gateway

Amazon Virtual Private Cloud (Amazon VPC) 让您能够根据需要创建任意数量的虚拟网络。它还提供了将这些网络彼此连接以及与非 AWS 基础设施(如本地数据中心、远程总部或其他办事处)连接的不同选项。大多数用户最初不会有太多 VPC。但是,随着在 AWS 上运行的工作负载的扩展,您要将网络扩展至跨多个账户和 多个VPC,才能满足自己的需求。

2014 年,我们推出了 VPC 对等,可在两个 VPC 之间建立点对点网络连接。您可以使用 VPC 对等创建全网状网络,使用网络之间的各条连接。但是,随着 VPC 数量的增长,这可能会变得非常复杂。此外,对于需要本地连接的每个 VPC,您必须配置 AWS Direct Connect 专线连接或 AWS点对点VPN 连接。此过程的实施时间可能需要几周,具体取决于内部业务运营、审批和维护时段计划。

2016 年,我们推出了 Transit VPC 解决方案,这是一种在 Amazon VPC 上构建中心辐射型拓扑的方法,可以使边缘连接集中化。Transit VPC 允许通过一种简单的方法在 VPC 中实施共享服务或数据包检查/复制。它可以跨多个账户运行,并且可以通过 AWS CloudFormation 堆栈轻松设置。但是,它利用基于实例的路由,这会增加成本,同时降低了可用性并限制了带宽。

2018 年,我们发布了 AWS Transit Gateway,它提供与 Transit VPC 相同的优势,但是它是一种可高可用性弹性扩展的托管服务。Transit Gateway 易于设置和使用,旨在提供高可扩展性和弹性。默认情况下,每个网关最多可以连接 5000 个 VPC,所连接的每个 VPC 最多可以处理 50Gbits/s 的突发流量。您也可以将 AWS VPN 连接到 AWS Transit Gateway。鉴于此,我们意识到需要开发一种自动化工具,帮助您从现有的 Transit VPC 解决方案顺畅迁移到 AWS Transit Gateway 服务。在这篇博客中,我们将介绍 TGW Migrator 工具,并为您展示如何使用它。

TGW Migrator 工具

TGW Migrator 工具提供了从 Transit VPC 解决方案无缝迁移到 AWS Transit Gateway。它还可用于通过 AWS Transit Gateway 快速连接和启用 Amazon VPC 之间的路由,即使它们不是 Transit VPC 的一部分也可以。

除了快速无缝地将您的 Amazon VPC 迁移到 AWS Transit Gateway 之外,此工具还提供了一个快捷选项,可在出现问题时回滚迁移。原本采用手动方式时需要几分钟到几小时(取决于 VPC 规模)的流程可以在几秒钟内轻松完成。

在我们深入探究该工具之前,先来看一些重要的注意事项:

  • AWS Transit Gateway 是一种区域性服务,此工具只能迁移与 Transit Gateway 处于相同区域内的 VPC。
  • 此工具仅有助于将 Transit VPC 中的所有分支 VPC 迁移到 Transit Gateway。它不会通过 AWS Direct Connect专线 或 AWS点对点VPN 自动将边缘网络的连接迁移到本地部署环境中。这部分工作必须手动完成。

 

如何使用此工具

要使用 TGW Migrator 工具,首先要部署一个 AWS CloudFormation 堆栈。此操作会创建一个新的专用 Amazon VPC、子网和 Amazon EC2 实例,用于运行 TGW Migrator 工具。您可以使用 SSH 连接到这个新建的 EC2 实例,从而访问这个基于 Python 的工具。要运行此工具,请按照以下说明操作。

 

部署

1.单击此处启动 CloudFormation 堆栈。

2.在 CloudFormation 控制台中等待堆栈部署完成,然后选择堆栈的输出选项卡。这个输出里面有使用 SSH 连接到 EC2 实例上安装的 TGW Migrator 工具所需的公有 IP 地址。

3.SSH登录到EC2 实例,然后浏览该工具的目录:

cd tgw-migrator/

4.运行以下命令启动该工具:

./tgw-migrator.py

执行此命令后,您将看到以下输出:

 

将分支 VPC 从 Transit VPC 迁移到 AWS Transit Gateway 的说明

如果您已在 AWS 中使用了 Transit VPC,那么您的架构可能如下图所示:

部署 TGW Migrator 工具时,您可以通过以下几个步骤将 Transit VPC 的分支 VPC 迁移到 AWS Transit Gateway(假设您已按照相关说明创建了 AWS Transit Gateway):

1.按照前文“部署”部分的说明初始化该工具。现在,选择 C) VPC 连接到已注册的 TGW。在连接流程的某个时刻,系统会要求您提供 Transit VPC 中某个中心路由器的客户网关 (CGW) 公有 IP 地址。
注意:如果您正在运行多个 CGW 以实现冗余,则可以随意选择其中一个 IP 地址(例如,在此图中您可以使用 1.1.1.1)。
该工具将使用此 IP 地址跟踪所连接的全部 VPN 及需要迁移到 Transit Gateway 网关的相应分支 VPC。

2.在该工具完成 VPC 连接之后,再次运行该工具,并选择 D) 启用所连接的 VPC 之间的路由。此步骤会迁移来自 Transit VPC 的流量,因为它会将静态路由插入以 AWS Transit Gateway 为目标的每个 VPC 的主路由表中。(静态路由优先于来自 Transit VPC 的 BGP 传播的路由。)

3.如有必要,可以通过再次启动该工具并选择 E) 禁用所连接的 VPC 之间的路由来回滚迁移。

 

功能揭秘

 

将独立 VPC 连接到 Transit Gateway 的说明

TGW Migrator 工具还可用于将任何 VPC 快速连接到 Transit Gateway,而不仅仅是 Transit VPC 中的分支 VPC。要连接独立 VPC,只需向 VPC 添加一个标签,将键设为 attach-tgw,值设为 true 即可。注意:这些值区分大小写,因此请务必使用小写格式。

标签如下列截图所示:

为要连接的相应 VPC 添加标签后,请按照下列步骤操作:

1.按照前文“部署”部分的说明初始化该工具。随后选择 C) VPC 连接到已注册的 TGW

2.在该工具完成 VPC 连接之后,再次运行该工具,并选择 D) 启用所连接的 VPC 之间的路由。这一步操作将开始使用TGW 在 VPC 之间路由您的流量。

3.如有必要,可以通过再次启动该工具并选择 E) 禁用所连接的 VPC 之间的路由来回滚迁移。

 

为 TGW Migrator 启用跨账户访问

您可以选择向其他AWS 账户授予 TGW Migrator 工具 API 访问权限。该工具将通过 Resource Access Manager 自动与任何其他账户共享 Transit Gateway,将账户的 VPC 连接到 AWS Transit Gateway,并在所有账户中启用所有 VPC 之间的路由。可以按照以下步骤授予跨账户的访问权限:

1.首先,在主要账户中启动 Transit Gateway CloudFormation 堆栈

2.使用 SSH 连接到 EC2 实例中的 TGW Migrator 工具,并在完全部署 CloudFormation 堆栈后运行该工具(步骤 1)。

3.选择 B) 与其他 AWS 账户共享注册的 TGW。这将引导您完成相应步骤,添加您希望 TGW Migrator 与之共享 TGW、从中连接 VPC 以及为之启用路由的任何其他 AWS 账户 ID。

4.提供其他账户后,TGW Migrator 工具将持续轮询以成功访问其他账户。此时,您可以在任何其他账户中启动其他账户 CloudFormation 堆栈。此模板将为主账户中的工具部署相应的 IAM 权限,以实现跨账户 API 调用。

5.您最终应该会看到 TGW Migrator 从轮询状态转为显示“Success!!! All secondary accounts are ready for deployment!”,并返回主菜单。此时,您可以继续通过该工具连接 VPC 并启用路由。工具将会自动检查各个账户。

公有 IP 地址

 

总结

在这篇博客中,我们向您介绍了 TGW Migrator 工具的功能。我们详细介绍了如何将 Transit VPC 中的分支 VPC 迁移到 AWS Transit Gateway,以及如何将独立 VPC 连接到 Transit Gateway。该工具简单易用,并提供从 Transit VPC 到 AWS Transit Gateway 的无缝迁移,而且支持多账户。

衷心希望这篇博客可以帮助您顺利完成到 AWS Transit Gateway 的迁移之旅。如果您有任何问题或反馈,请给我们留言。

祝您在使用AWS Transit Gateway与多个VPC进行大规模联网时一切顺利!

 

原文链接:https://aws.amazon.com/cn/blogs/networking-and-content-delivery/migrate-from-transit-vpc-to-aws-transit-gateway/

 

本篇作者

Ben Fowler

AWS Premium Support 团队中的一名高级云支持工程师。他喜欢设计和开发自助式工具,客户可以使用这些工具在 AWS 环境中自动执行常见的运维任务和架构部署。

Bhavin Desai

AWS 的高级解决方案架构师。他乐于为客户提供技术指导,并帮助他们构建和生成解决方案,以利用 AWS 实现无限可能。

本篇译者

申绍勇

申绍勇是AWS解决方案架构师,主要负责基于AWS的云计算解决方案进行架构咨询和设计,目前服务移动互联网(包含媒体、游戏、广告、电商、区块链等)、金融、制造业等各行业客户,提供有关云计算、AI、大数据、物联网、高性能计算等各类云计算解决方案的咨询和架构设计。