随着公司的发展和技术的更迭,许多公司原有的基础架构难以满足现有的需求。在过去的几十年里,公司的数据呈指数级增长,由此衍生出来了数据分析的需求。随着消费者行为的转型,许多电商平台或者是零售行业的公司都迫切需要机器学习等技术来帮助理解消费者的行为方式以便于及时调整业务方向。
而在这种情况下,许多公司转向了谷歌云平台。谷歌云使用与谷歌搜索、谷歌学术、Youtube等相同的基础设施和技术,在数据分析和机器学习等领域拥有巨大的优势,使用谷歌云平台可以轻松使用Big Query分析PB级数据,也可以用Vertex AI 分析平台来进行机器学习,用较低的价格提供优质的服务。
如何从AWS搬迁到GCP,成为上述公司的关注重点和热门话题,本文将一个步骤一个步骤地分解,演示如何从AWS搬迁到GCP。
其主要的步骤包括:
- VPN 设置
- GCP 环境设置
- AWS 环境设置
- AWS 虚拟机中的迁移代理安装
- 迁移过程
详细内容请参考如下文所示。
1. VPN 设置
AWS 和 GCP 环境之间需要设置一个VPN通道
1.1 GCP设置VPC
1.1.1 创建vpc
名称随意,然后按照下图所示输入信息(区域按照自己的需要选择),其余默认。

1.1.2 创建外部IP
需要创建一个外部IP(区域选择和VPC一样的),用于aws设置网关

IP创建成功如下图:

1.2 AWS设置VPC
1.2.1 创建vpc
按照如下图所示红圈中填入信息创建vpc并创建子网,其余默认。


1.2.2 创建客户网关
输入名称和在GCP创建的IP地址

1.2.3 创建并设置虚拟私有网关
创建虚拟私有网关:

右键单击虚拟私有网关,选择“附加到VPC”

选择前面创建的VPC,点击“附加到VPC”

1.2.4 创建站点到站点VPN连接

按照下图所示创建(静态IP前缀:172.16.0.0/16是GCP的子网地址空间):

1.2.5 下载配置文件
按照如下操作下载配置文件:


配置文件后续会用到,请记住保存路径。
1.2.6 创建并配置路由表


创建完成后配置路由表:

勾选“启用”,点击保存:

编辑路由:


添加子网关联:

勾选两个子网,点击保存关联:

1.3 GCP配置VPN
创建VPN


打开1.2.5步骤下载的配置文件,找到对等IP和key填入(任选其中一个通道):

再按照下图操作点击创建:

1.4 检查VPN连接
AWS端:

GCP端:

通过虚拟机之间相互ping来验证VPN:
设置AWS安全组的入站规则:

设置GCP的防火墙规则:

AWS虚拟机 ping通GCP虚拟机如下所示:

从GCP虚拟机ping通AWS虚拟机如下所示:

2. GCP环境设置
2.1 配置防火墙规则
按照下图配置GCP防火墙规则(AWS VPC CIDR 范围为 10.20.0.0/16,GCP VPC CIDR 范围为 172.16.0.0/16
Firewall rule | Description | Target tag | Source tag/IP | Protocol/Ports |
Allow-aws-connection(optional) | AWS to GCP VPC | Apply to all | AWS VPC CIDR Range | all |
velos-ce-backend | Encrypted migration data sent from Velostrata Backend to Cloud Extensions. |
fw-velostrata | AWS VPC CIDR Range | tcp:9111 |
velos-ce-control | Control plane between Cloud Extensions and Velostrata Manager. |
fw-velostrata | fw-velosmanager | tcp:443, 9111 |
velos-ce-cross | Synchronization between Cloud Extension nodes. |
fw-velostrata | fw-velostrata | all |
velos-console-probe | Allows the Velostrata Manager to check if the SSH or RDP console on the migrated VM is available. |
fw-workload | fw-velosmanager | tcp:22,3389 |
velos-manager-ssh | To access velo-manager | fw-velosmanager | Your Public IP(for ssh purpose),AWS VPC CIDR Range |
tcp:22 |
velos-webui | HTTP & HTTPS access to Velostrata Manager for web UI. |
fw-velosmanager | AWS VPC CIDR Range, GCP VPC CIDR Range, Your Public IP(for accessing velostrata UI) |
tcp:443,80 |
velos-workload | migrated workloads → velos edge for migration & syslog |
fw-velostrata | fw-workload | tcp:3260 udp:514 |
workload-rdp-ssh-allow | migrate workload access | fw-workload | Your Public IP(for ssh & RD purpose), AWS VPC CIDR Range |
tcp:22,3389 |
配置好如下图所示:

2.2 创建和配置迁移管理器



填入网络标记后,服务账号处选择新建,输入服务账号名保存即可:

点击右边的生成密码,同时记录好账号和密码,后续会用到:



3. AWS环境设置
3.1 创建并配置堆栈
下载堆栈文件(https://cloud.google.com/migrate/compute-engine/docs/4.11/resources/downloads):

解压缩得到json文件:

在AWS控制台找到Cloud Formation,创建堆栈:

上传前面解压得到的json文件:




创建好如下图所示:

3.2 创建IAM用户并加入VelosMgrGroup组





创建完用户后,下载凭证(后续会用):

4. AWS 虚拟机中的迁移代理安装
4.1 Windows虚拟机
在本地用远程工具打开AWS的虚拟机,下图以Windows2019为例:

下载GCPpowershell模块 (https://cloud.google.com/migrate/compute-engine/docs/4.11/resources/downloads)

安装:

安装完成后,用管理员身份运行Windows PowerShell

复制以下命令到PowerShell运行:
Import-Module Velostrata.PowerShell
Connect-VelostrataManager

接下来需要登录GCP的迁移管理器,Server为迁移管理器的内部IP(参考2.2章节的最后一张图);Username为”apiuser”,Password是前面创建并保存的(参考2.2章节的倒数第三张图)。

复制以下命令到Powershell执行,会下载所需的安装包,按提示输入“Y”或者直接回车:
Get-help Connect-VelostrataManager

4.2 Linux虚拟机
登录Linux虚拟机,逐条执行以下命令:
wget https://storage.googleapis.com/velostrata-release/4.11.9/migrate-for-gce-prep-4.11.9-0.deb
sudo apt-get update
sudo apt --fix-broken install
sudo apt install multipath-tools*
sudo dpkg -i migrate-for-gce-prep-4.11.9-0.deb
sudo apt-get update && sudo apt-get install -f -y

5. 迁移过程
5.1 登录云迁移平台
回到谷歌云控制台,找到迁移管理器的外部IP

登录:

仍然使用apiuser这个用户名和对应的密码登录,登录进来后选择“YES”启用StackDriver日志:


5.2 设置源云

此处的两个key,在3.2章节最后的一张图中下载的文件,打开文件即可看到:


5.3 设置目标云
在源云页面点击右上角的“HOME”返回首页,点击目标云:

创建云扩展,将创建2个需要500 GB SSD卷的VM。因此,请确保已将项目配额增加到至少 1 TB,查询方法:谷歌云控制台-IAM和管理-配额-SSD,如图:

开始创建云拓展,最后一项选择有权限创建VM的服务器账号:

接下来编辑“Cloud Extension”,最后一项当迁移的虚拟机数量少于或等于15台时选择“Small”,大于15台时选择“Large”:

请选择该区域的两个不同区域,为两个区域选择相同的子网以降低复杂性。工作负荷子网是 VM 将迁移到的子网:

标签是将附加到运行迁移波次(工作负载 + 边缘节点)后创建的所有 VM 的标记:

创建云拓展完成后,可以在谷歌云控制台-虚拟机实例看到两台刚创建好的边缘节点:

分别点进去开启HTTP和HTTPS防火墙:


5.4 设置迁移波


单击“创建”按钮后,将下载一个 CSV 文件,其中包含要迁移的 AWS VM 的所有详细信息(如果文件内没有内容,请给虚拟机增加上图对应的标签后重试):

打开文件,修改三个地方后保存:
①去掉第一列的“-“号;
②选择迁移到GCP后的实例类型;
③为实例命名。

创建wave:

验证wave,稍等片刻如果状态变为Passed,则验证通过:

验证成功好才可以创建新作业:


点击上图“Start”,迁移就会进行,点击监控可以看到进度(约40分钟):





迁移成功后,回到GCP控制台找到实例,修改实例的外部地址以及开放防火墙端口:

完成配置后即可用远程连接工具登录外部地址(Linux也类似)。
以上为全部的迁移步骤,如在迁移过程中有任何问题,欢迎联系我们以获得谷歌云技术支持。
Cloud Ace 为亚洲最多据点的谷歌云高级合作伙伴,提供谷歌云、谷歌地图、谷歌Workspace、谷歌培训等服务。Cloud Ace 拥有200多位工程师,专为客户提供技术支持,24*7提供售后服务,欢迎联系我们!