Application Migration Service(MGN)
使用 AWS MGN 持续将本地服务器复制到 AWS,并在最终迁移窗口前执行无中断测试切换
Application Migration Service(MGN) 是 CoddyKit 上的免费 AWS Solutions Architect 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 AWS Solutions Architect 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 AWS Solutions Architect 课程共包含 4 节课。
什么是 AWS MGN
AWS Application Migration Service (MGN) 是 AWS 用于将本地服务器(物理服务器或虚拟服务器)重新托管(直接迁移)到 Amazon EC2 的主要服务。MGN 会持续将源服务器复制到 AWS 中的暂存区域,因此在准备好迁移时,切换窗口会非常短(几分钟而不是几小时)。MGN 支持来自任何虚拟机监控程序或裸机环境的 Windows 和 Linux 服务器。
MGN 架构:持续复制
MGN 会在每台源服务器上安装轻量级的 AWS Replication Agent。该 Agent 通过 TCP 端口 1500 建立加密连接,并持续将块级磁盘更改复制到目标 AWS 区域中的暂存区域。暂存区域由低成本的 Replication Servers(由 MGN 自动启动)和 EBS 卷组成,这些卷几乎实时地镜像源磁盘。复制期间不会发生停机。
# Install the MGN Replication Agent on a Linux source server
wget -O ./aws-replication-installer-init.py \
'https://aws-application-migration-service-us-east-1.s3.amazonaws.com/latest/linux/aws-replication-installer-init.py'
python3 ./aws-replication-installer-init.py \
--region us-east-1 \
--aws-access-key-id <ACCESS_KEY> \
--aws-secret-access-key <SECRET_KEY>MGN 中的启动模板
每台源服务器都有一个启动模板,用于定义迁移后的 EC2 实例的配置方式:实例类型、子网、安全组、IAM 实例配置文件、EBS 卷类型,以及是否分配公有 IP。您需要在测试前配置启动模板。MGN 会在从复制的 EBS 快照启动测试实例或 cutover 实例时使用此模板。
# View and modify a source server's MGN launch template settings
aws mgn update-launch-configuration \
--source-server-id s-12345678 \
--instance-type t3.medium \
--launch-disposition STARTED \
--target-instance-type-right-sizing-method NONE测试:不中断服务的测试切换
MGN 的 Test 阶段允许您从最近复制的快照启动测试 EC2 实例,而无需停止源服务器。您可以运行应用程序冒烟测试、验证网络连接,并确认迁移后的服务器能否在 AWS 中正确启动和响应。测试完成后,您可以终止测试实例,而复制会继续进行——测试期间对正在运行的源服务器没有任何影响。
# Launch a test instance for a source server
aws mgn start-test \
--source-server-ids '["s-12345678"]'
# After validating, mark the test as complete and clean up
aws mgn finalize-cutover \
--source-server-ids '["s-12345678"]'Cutover:执行迁移
测试后确认一切正常后,请发起 cutover。MGN 会对源磁盘创建最终快照,启动 cutover EC2 实例,并停止向源服务器接收新的写入复制。然后,您需要更新 DNS,使其指向新的 EC2 实例。整个切换窗口——从触发 cutover 到新的 EC2 实例上线——通常少于 15 分钟,因此可以将维护窗口保持在很短的时间内。
# Initiate cutover for a source server
aws mgn start-cutover \
--source-server-ids '["s-12345678"]'
# After verifying the new EC2 instance is healthy,
# finalize to stop billing for replication resources
aws mgn finalize-cutover \
--source-server-ids '["s-12345678"]'启动后操作
MGN 支持启动后操作,即在迁移后的 EC2 实例启动后立即自动执行的脚本。您可以使用这些脚本安装监控 Agent(CloudWatch Agent、SSM Agent)、应用安全基线配置、将实例注册到内部 CMDB 系统,或运行验证健康状况的检查。启动后操作会附加到启动模板,并通过 Systems Manager Run Command 运行,从而减少迁移后的手动步骤。
# Add a post-launch action to install the CloudWatch Agent
aws mgn put-source-server-action \
--source-server-id s-12345678 \
--action-id 'InstallCWAgent' \
--action-name 'Install CloudWatch Agent' \
--ssm-document '{
"actionName": "AWS-ConfigureAWSPackage",
"parameters": {
"action": {"type": "EnumList", "default": ["Install"]},
"name": {"type": "StringList", "default": ["AmazonCloudWatchAgent"]}
}
}'MGN 与 SMS(Server Migration Service)
AWS 之前提供 Server Migration Service (SMS) 用于服务器迁移。MGN 是其后继服务,目前也是推荐使用的服务。MGN 的主要改进包括:它在块级别进行复制(而不是在快照级别进行复制),因此可以持续进行近乎实时的复制,而不是定期创建快照;它支持更广泛的源环境;并且提供不中断服务的测试切换工作流。如果考试题目将 SMS 作为一个选项,除非题目明确询问 SMS,否则应优先选择 MGN。
带宽和网络要求
MGN 通过端口 1500 上的加密 TLS 连接,将数据复制到暂存区域中的 Replication Server。初始复制会同步源磁盘上的所有数据,因此可能会大量占用带宽。对于位于互联网带宽有限的数据中心中的大型服务器,可以考虑使用 AWS Direct Connect 或 AWS Site-to-Site VPN 来承载复制流量,而不是使用公共互联网。初始同步完成后,只会发送增量块更改。
定价模式
MGN 采用简单的定价模式:每台服务器前 90 天免费,之后按每台服务器每小时收费。暂存区域会产生 Replication Server EC2 实例(通常为 t3.small)以及用于复制源磁盘的 EBS 卷的费用。通过及时测试并完成 cutover,缩短总复制时长,可以降低成本。MGN Agent 本身不收费。
常见的 MGN 考试场景
在 SAA-C03 考试中,MGN 会出现在需要快速、低风险服务器迁移的场景中。关键信号包括:以最短停机时间重新托管、直接迁移数百台服务器、较短的切换窗口、不更改应用程序。请注意与 DMS(数据库迁移)、Snowball(没有活动服务器时进行的大量数据传输)以及 Glue/DataSync(存储服务之间的数据移动)进行区分。MGN 用于迁移服务器,而不是数据库或单纯的数据传输。
MGN 与应用程序组
对于必须一起迁移的多层应用程序(Web、应用程序和数据库服务器),MGN 支持使用 Wave 和 Application 进行分组。您可以先将源服务器分到一个应用程序中,然后按顺序为整个组启动测试和 cutover,确保各个依赖层按正确顺序启动。这样可以避免一个常见的失败场景:在数据库服务器尚未在 AWS 中可用之前,就先迁移 Web 服务器。
# Group source servers into an application in MGN
aws mgn create-application \
--name 'OrderManagementSystem'
aws mgn associate-source-servers \
--application-id 'app-12345678' \
--source-server-ids '["s-web01", "s-app01", "s-db01"]'快速检查
请测试您对本课 AWS Solutions Architect (SAA-C03) 概念的理解。
课程回顾
本课您学习了以下内容:MGN 将本地服务器持续进行块级复制到 AWS,从而实现几乎零停机的切换;不中断服务的测试功能允许您在不停止源服务器的情况下验证迁移后的服务器;以及启动后操作通过 Systems Manager 自动完成迁移后的配置。接下来,我们将学习 Database Migration Service,了解数据库专用的迁移场景。
常见问题解答
「Application Migration Service(MGN)」课时是免费的吗?
是的 — 「Application Migration Service(MGN)」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 AWS Solutions Architect 课程的其余内容,请升级到 CoddyKit PRO。 AWS Solutions Architect 课程共包含 4 节课。
「Application Migration Service(MGN)」这节课中我会学到什么?
使用 AWS MGN 持续将本地服务器复制到 AWS,并在最终迁移窗口前执行无中断测试切换 你通过在浏览器中直接运行的动手代码来练习 AWS Solutions Architect,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 AWS Solutions Architect 需要有经验吗?
无需任何先前经验。CoddyKit 上的 AWS Solutions Architect 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。
「Application Migration Service(MGN)」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 AWS Solutions Architect 课中编写并运行代码吗?
能。每节 AWS Solutions Architect 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 迁移策略的 7R
- AWS Migration Hub 与 Application Discovery Service
- Application Migration Service(MGN)
- Database Migration Service(DMS)与 Schema Conversion Tool