Amazon Elastic Compute Cloud
Windows 实例用户指南
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

从 EC2-Classic 中的 Windows 实例迁移到 VPC 中的 Windows 实例

根据您创建账户的时间以及您使用的区域,您的 AWS 账户可能同时支持 EC2-Classic 和 EC2-VPC。有关更多信息以及要查明您账户支持的平台,请参阅 支持的平台。有关使用 VPC 的好处以及 EC2-Classic 与 EC2-VPC 之间的差异的更多信息,请参阅 Amazon EC2 和 Amazon Virtual Private Cloud

您在 AWS 账户中创建和使用资源。一些资源和功能 (如增强联网和特定实例类型) 只能在 VPC 中使用。一些资源可在 EC2-Classic 和 VPC 之间共享,另一些则不能。有关更多信息,请参阅在 EC2-Classic 与 EC2-VPC 之间共享和访问资源

如果您的账户支持 EC2-Classic,您可能已经设置在 EC2-Classic 中使用的资源。如果您要从 EC2-Classic 迁移到 VPC,则必须在 VPC 中重新创建这些资源。

有两种方式可迁移到 VPC。您可以执行完整迁移,也可以随时间推移执行增量迁移。您选择的方法取决于 EC2-Classic 中的应用程序的大小和复杂性。例如,如果您的应用程序仅由一两个运行静态网站的实例构成,并且您可以承受短时间的停机,那么您可以一次完成迁移。如果您的应用程序是包含不可中断进程的多层应用程序,则可以使用 ClassicLink 执行增量迁移。通过这种方式,您可以按每次一个组件的方式转移功能,直到应用程序完全在 VPC 中运行。

如果需要迁移 Linux 实例,请参阅 Amazon EC2 用户指南(适用于 Linux 实例) 中的将 Linux 实例从 EC2-Classic 迁移至 VPC

完整迁移到 VPC

完成以下任务可将应用程序从 EC2-Classic 完整迁移到 VPC。

步骤 1:创建 VPC

要开始使用 VPC,请确保您在账户中有 VPC。可以使用下列方法之一创建一个 VPC:

  • 使用新的仅限 EC2-VPC 的 AWS 账户。仅限 EC2-VPC 的账户在每个区域中有一个默认 VPC,可供您使用。默认情况下,您启动的实例会在此 VPC 中启动,除非您另行指定。有关默认 VPC 的更多信息,请参阅您的默认 VPC 和子网。如果您不想自己设置 VPC,或是如果您的 VPC 配置无需特定要求,请使用此选项。

  • 在您的现有 AWS 账户中,打开 Amazon VPC 控制台并使用 VPC 向导创建新 VPC。有关更多信息,请参阅 Amazon VPC 情景。如果您要使用向导中的可用配置集之一在现有 EC2-Classic 账户中快速设置 VPC,请使用此选项。您将在每次启动实例时指定此 VPC。

  • 在您的现有 AWS 账户中,打开 Amazon VPC 控制台并根据您的要求设置 VPC 的组件。有关更多信息,请参阅您的 VPC 和子网。如果您对 VPC 有特定要求 (如特定数量的子网),请使用此选项。您将在每次启动实例时指定此 VPC。

步骤 2:配置安全组

您不能在 EC2-Classic 与 VPC 之间使用相同的安全组。但是,如果您希望 VPC 中的实例具有与 EC2-Classic 实例相同的安全组规则,则可以使用 Amazon EC2 控制台将现有 EC2-Classic 安全组规则复制到新的 VPC 安全组。

重要

您只能将安全组规则复制到相同区域内相同 AWS 账户中的新安全组。如果您创建了新 AWS 账户,则无法使用此方法将现有安全组规则复制到新账户。您必须创建新安全组,然后自己添加规则。有关创建新安全组的更多信息,请参阅Windows 实例的 Amazon EC2 个安全组

将您的安全组规则复制到新安全组

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 在导航窗格中,选择 Security Groups

  3. 选择与您的 EC2-Classic 实例关联的安全组,再选择 Actions,然后选择 Copy to new

  4. Create Security Group (创建安全组) 对话框中,为您的新安全组指定名称和说明。从 VPC 列表中选择您的 VPC。

  5. Inbound (入站) 选项卡会使用您 EC2-Classic 安全组中的规则进行填充。您可以根据需要修改这些规则。在 Outbound (出站) 选项卡中,已自动为您创建允许所有出站流量的规则。有关修改安全组规则的更多信息,请参阅Windows 实例的 Amazon EC2 个安全组

    注意

    如果您在 EC2-Classic 安全组中定义了引用其他安全组的规则,则您将无法在 VPC 安全组中使用相同规则。请将该规则修改为引用同一 VPC 中的安全组。

  6. 选择 Create

步骤 3:从您的 EC2-Classic 实例创建 AMI

AMI 是用于启动实例的模板。您可以基于现有 EC2-Classic 实例创建自己的 AMI,然后使用该 AMI 在 VPC 中启动实例。

有关更多信息,请参阅 创建 Amazon EBS 支持的 Windows AMI

(可选) 在 Amazon EBS 卷上存储您的数据

您可以创建 Amazon EBS 卷并使用它备份和存储实例中的数据 (如同使用物理硬盘驱动器一样)。Amazon EBS 卷可以与同一可用区中的任何实例连接和断开。您可以断开卷与 EC2-Classic 中实例的连接,并将它连接到在同一可用区内的 VPC 中启动的新实例。

有关 Amazon EBS 卷的更多信息,请参阅以下主题:

要备份 Amazon EBS 卷上的数据,可以拍摄卷的定期快照。如果您需要,可以从快照还原 Amazon EBS 卷。有关 Amazon EBS 快照的更多信息,请参阅以下主题:

步骤 4:在 VPC 中启动实例

创建了 AMI 之后,您可以在 VPC 中启动实例。实例将具有与现有 EC2-Classic 实例相同的数据和配置。

您可以在已在现有账户中创建的 VPC 中,或是仅限 VPC 的新 AWS 账户中启动实例。

使用现有 EC2-Classic 账户

您可以使用 Amazon EC2 启动向导在 VPC 中启动实例。

在 VPC 中启动实例

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 在控制面板上,选择 Launch Instance

  3. Choose an Amazon Machine Image (选择一个Amazon 系统映像) 页面上,选择 My AMIs (我的 AMI) 类别,然后选择您创建的 AMI。

  4. Choose an Instance Type 页面上,选择实例的类型,然后选择 Next: Configure Instance Details

  5. Configure Instance Details (配置实例详细信息) 页面中的 Network (网络) 列表中选择您的 VPC。从 Subnet (子网) 列表中选择所需子网。配置您需要的任何其他详细信息,然后完成向导中的后续页面,直至到达 Configure Security Group 页面。

  6. 选择 Select an existing group (选择现有组),然后选择您之前创建的安全组。选择 Review and Launch

  7. 查看实例详细信息,然后选择 Launch 以指定密钥对并启动实例。

有关您在向导每个步骤中可以配置的参数的更多信息,请参阅启动实例

使用仅限 VPC 的新账户

要在新 AWS 账户中启动实例,您必须先将创建的 AMI 与新账户共享。随后您可以使用 Amazon EC2 启动向导在默认 VPC 中启动实例。

将 AMI 与新 AWS 账户共享

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 切换到用于创建 AMI 的账户。

  3. 在导航窗格中,选择 AMIs

  4. Filter (筛选条件) 列表中,请确保选择了 Owned by me (我拥有的),然后选择您的 AMI。

  5. Permissions 选项卡中,选择 Edit。输入您的新 AWS 账户的账号,选择 Add Permission,然后选择 Save

在您的默认 VPC 内启动 实例

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 切换到您的新 AWS 账户。

  3. 在导航窗格中,选择 AMIs

  4. Filter (筛选条件) 列表中,选择 Private images (私有映像)。选择您从 EC2-Classic 账户共享的 AMI,然后选择 Launch

  5. Choose an Instance Type 页面上,选择实例的类型,然后选择 Next: Configure Instance Details

  6. Configure Instance Details (配置实例详细信息) 页面上,应在 Network (网络) 中选择默认 VPC。配置您需要的任何其他详细信息,然后完成向导中的后续页面,直至到达 Configure Security Group 页面。

  7. 选择 Select an existing group (选择现有组),然后选择您之前创建的安全组。选择 Review and Launch

  8. 查看实例详细信息,然后选择 Launch 以指定密钥对并启动实例。

有关您在向导每个步骤中可以配置的参数的更多信息,请参阅启动实例

示例:迁移简单的 Web 应用程序

在此示例中,您使用 AWS 托管您的园艺网站。为了管理您的网站,您在 EC2-Classic 中有三个正在运行的实例。实例 A 和 B 托管面向公众的 Web 应用程序,您使用 Elastic Load Balancer 对这些实例之间的流量进行负载均衡。您向实例 A 和 B 分配了弹性 IP 地址,从而可将静态 IP 地址用于这些实例上的配置和管理任务。实例 C 存储您网站的 MySQL 数据库。您注册了域名 www.garden.example.com,并且使用 Amazon Route 53 创建了一个托管区域,该区域具有与负载均衡器的 DNS 名称关联的别名记录集。

 EC2-Classic 中的 Web 应用程序

第一部分往 VPC 的迁移决定了适合您需要的 VPC 架构类型。在此情况中,您做出了以下决定:将一个公有子网用于您的 Web 服务器,而将一个私有子网用于您的数据库服务器。随着您网站的发展,您可以向子网添加更多 Web 服务器和数据库服务器。默认情况下,私有子网中的实例无法访问 Internet;但是,您可以通过公有子网中的网络地址转换 (NAT) 设备启用 Internet 访问。您可能需要设置 NAT 设备,以通过 Internet 为数据库服务器提供定期更新和补丁。您将您的弹性 IP 地址迁移到 EC2-VPC,并在公有子网中创建 Elastic Load Balancer 来对 Web 服务器之间的流量进行负载均衡。

 VPC 中的 Web 应用程序

要将您的 Web 应用程序迁移到 VPC,您可以执行以下步骤:

  • 创建 VPC:在本例中,您可以使用 Amazon VPC 控制台中的 VPC 向导创建您的 VPC 和子网。第二个向导配置创建具有一个私有子网和一个公有子网的 VPC,并在公有子网中为您启动和配置一个 NAT 设备。有关更多信息,请参阅 Amazon VPC 用户指南 中的场景 2:带有公有子网和私有子网的 VPC

  • 从您的实例创建 AMI:从您的一个 Web 服务器创建一个 AMI,并从数据库服务器创建第二个 AMI。有关更多信息,请参阅 步骤 3:从您的 EC2-Classic 实例创建 AMI

  • 配置您的安全组:在 EC2-Classic 环境中,您将一个安全组用于 Web 服务器,并将另一个安全组用于数据库服务器。您可以使用 Amazon EC2 控制台将规则从每个安全组复制到用于您 VPC 的新安全组中。有关更多信息,请参阅 步骤 2:配置安全组

    提示

    首先创建由其他安全组引用的安全组。

  • 在新 VPC 中启动实例:在公有子网中启动替换 Web 服务器,并在私有子网中启动替换数据库服务器。有关更多信息,请参阅 步骤 4:在 VPC 中启动实例

  • 配置您的 NAT 设备:如果您使用的是 NAT 实例,则必须为其创建安全组,以便允许来自您的私有子网的 HTTP 和 HTTPS 流量。有关更多信息,请参阅 NAT 实例。如果您使用的是 NAT 网关,则会自动允许来自您的私有子网的流量。

  • 配置您的数据库:在 EC2-Classic 中从数据库服务器创建 AMI 时,该实例中存储的所有配置信息都已复制到 AMI。您可能必须连接到新数据库服务器并更新配置详细信息;例如,如果您将数据库配置为向 EC2-Classic 中的 Web 服务器授予完全读取、写入和修改权限,则您必须更新配置文件以改为向新 VPC Web 服务器授予相同权限。

  • 配置您的 Web 服务器:您的 Web 服务器将具有与 EC2-Classic 中的实例相同的配置设置。例如,如果您将 Web 服务器配置为使用 EC2-Classic 中的数据库,请将您 Web 服务器的配置设置更新为指向您的新数据库实例。

    注意

    默认情况下,不会向在非默认子网中启动的实例分配公有 IP 地址,除非您在启动时另行指定。您的新数据库服务器可能没有公有 IP 地址。在这种情况下,您可以更新您 Web 服务器的配置文件以使用新数据库服务器的私有 DNS 名称。同一 VPC 中的实例通过私有 IP 地址互相通信。

  • 迁移您的弹性 IP 地址:在 EC2-Classic 中从您的 Web 服务器取消与弹性 IP 地址的关联,然后将这些地址迁移到 EC2-VPC。迁移这些地址后,您可在 VPC 中将其与您的新 Web 服务器关联。有关更多信息,请参阅 将弹性 IP 地址从 EC2-Classic 迁移到 EC2-VPC

  • 创建新负载均衡器:要继续使用 Elastic Load Balancing 对发送到实例的流量进行负载均衡,请确保您了解 VPC 中负载均衡器的各种配置。有关更多信息,请参阅 Amazon VPC 中的 Elastic Load Balancing

  • 更新您的 DNS 记录:在公有子网中设置了负载均衡器之后,请确保 www.garden.example.com 域指向您的新负载均衡器。为此,您需要更新您的 DNS 记录并更新 Amazon Route 53 中的别名记录集。有关使用 Amazon Route 53 的更多信息,请参阅 Amazon Route 53 入门

  • 关闭您的 EC2-Classic 资源:验证了您的 Web 应用程序是否正在 VPC 架构内运行之后,可以关闭 EC2-Classic 资源以使它们停止产生费用。终止 EC2-Classic 实例,并释放 EC2-Classic 弹性 IP 地址。

通过 ClassicLink 功能可以更容易地管理到 VPC 的增量迁移。借助 ClassicLink,您能够将 EC2-Classic 实例链接到您账户中同一区域的 VPC,以便您的新 VPC 资源可使用私有 IPv4 地址与 EC2-Classic 实例进行通信。您随后可以一次一步地将功能迁移到 VPC。本主题提供用于管理从 EC2-Classic 到 VPC 的增量迁移的一些基本步骤,。

有关 ClassicLink 的更多信息,请参阅ClassicLink

要有效地使用 ClassicLink,您必须先确定必须迁移到 VPC 的应用程序组件,然后确认迁移功能的顺序。

例如,您的一个应用程序依赖于演示 Web 服务器、后端数据库服务器以及用于交易的身份验证逻辑。您可以决定从身份验证逻辑开始迁移过程,然后是数据库服务器,最后是 Web 服务器。

要开始使用 VPC,请确保您在账户中有 VPC。可以使用下列方法之一创建一个 VPC:

  • 在您的现有 AWS 账户中,打开 Amazon VPC 控制台并使用 VPC 向导创建新 VPC。有关更多信息,请参阅 Amazon VPC 情景。如果您要使用向导中的可用配置集之一在现有 EC2-Classic 账户中快速设置 VPC,请使用此选项。您将在每次启动实例时指定此 VPC。

  • 在您的现有 AWS 账户中,打开 Amazon VPC 控制台并根据您的要求设置 VPC 的组件。有关更多信息,请参阅您的 VPC 和子网。如果您对 VPC 有特定要求 (如特定数量的子网),请使用此选项。您将在每次启动实例时指定此 VPC。

创建 VPC 之后,您可以为它启用 ClassicLink。有关 ClassicLink 的更多信息,请参阅ClassicLink

为 VPC 启用 ClassicLink

  1. 打开 Amazon VPC 控制台 https://console.amazonaws.cn/vpc/

  2. 在导航窗格中,选择 Your VPCs

  3. 选择您的 VPC,然后从 Actions 列表中选择 Enable ClassicLink

  4. 在确认对话框中,选择 Yes, Enable

AMI 是用于启动实例的模板。您可以基于现有 EC2-Classic 实例创建自己的 AMI,然后使用该 AMI 在 VPC 中启动实例。

有关更多信息,请参阅 创建 Amazon EBS 支持的 Windows AMI

您可以创建 Amazon EBS 卷并使用它备份和存储实例中的数据 (如同使用物理硬盘驱动器一样)。Amazon EBS 卷可以与同一可用区中的任何实例连接和断开。您可以断开卷与 EC2-Classic 中实例的连接,并将它连接到在同一可用区内的 VPC 中启动的新实例。

有关 Amazon EBS 卷的更多信息,请参阅以下主题:

要备份 Amazon EBS 卷上的数据,可以拍摄卷的定期快照。如果您需要,可以从快照还原 Amazon EBS 卷。有关 Amazon EBS 快照的更多信息,请参阅以下主题:

迁移过程的下一步是在 VPC 中启动实例,以便开始向实例转移功能。您可以使用在前面步骤中创建的 AMI 在 VPC 中启动实例。这些实例将具有与现有 EC2-Classic 实例相同的数据和配置。

使用自定义 AMI 在 VPC 中启动实例

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 在控制面板上,选择 Launch Instance

  3. Choose an Amazon Machine Image (选择一个Amazon 系统映像) 页面上,选择 My AMIs (我的 AMI) 类别,然后选择您创建的 AMI。

  4. Choose an Instance Type 页面上,选择实例的类型,然后选择 Next: Configure Instance Details

  5. Configure Instance Details (配置实例详细信息) 页面中的 Network (网络) 列表中选择您的 VPC。从 Subnet (子网) 列表中选择所需子网。配置您需要的任何其他详细信息,然后完成向导中的后续页面,直至到达 Configure Security Group 页面。

  6. 选择 Select an existing group (选择现有组),然后选择您之前创建的安全组。选择 Review and Launch

  7. 查看实例详细信息,然后选择 Launch 以指定密钥对并启动实例。

有关您在向导每个步骤中可以配置的参数的更多信息,请参阅启动实例

实例启动并进入 running 状态之后,可以连接并根据需要配置该实例。

配置实例并在 VPC 中提供您的应用程序的功能之后,可以使用 ClassicLink 在新 VPC 实例与您的 EC2-Classic 实例之间启用私有 IP 通信。

将实例链接到 VPC

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 在导航窗格中,选择 Instances

  3. 选择您的 EC2-Classic 实例,然后依次选择 ActionsClassicLinkLink to VPC

    注意

    验证实例是否处于 running 状态。

  4. 在对话框中,选择启用了 ClassicLink 的 VPC (仅显示启用了 ClassicLink 的 VPC)。

  5. 选择要与您的实例关联的一个或多个 VPC 安全组。完成操作后,选择 Link to VPC

根据应用程序的大小和必须迁移的功能,重复步骤 4 到 6,直到将应用程序的所有组件都从 EC2-Classic 迁移到 VPC 中。

在 EC2-Classic 与 VPC 实例之间启用内部通信之后,您必须将应用程序更新为指向 VPC 中迁移的服务,而不是 EC2-Classic 平台中的服务。此操作的确切步骤取决于应用程序的设计。通常,这包括更新目标 IP 地址以指向 VPC 实例 (而不是 EC2-Classic 实例) 的 IP 地址。您可将您当前在 EC2-Classic 平台中使用的弹性 IP 地址迁移到 EC2-VPC 平台。有关更多信息,请参阅 将弹性 IP 地址从 EC2-Classic 迁移到 EC2-VPC

完成此步骤并测试应用程序是否从 VPC 正常工作之后,您可以终止 EC2-Classic 实例并为 VPC 禁用 ClassicLink。您还可以清理所有可能不再需要的 EC2-Classic 资源以免它们产生费用。例如,您可以释放弹性 IP 地址,并删除之前与 EC2-Classic 实例关联的卷。