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

ClassicLink

ClassicLink 允许将您的 EC2-Classic 实例链接到您账户中位于同一区域内的 VPC。这样,您可以将 VPC 安全组与 EC2-Classic 实例关联,以便允许 EC2-Classic 实例与 VPC 中的实例使用私有 IPv4 地址进行通信。通过 ClassicLink,无需使用公有 IPv4 地址或弹性 IP 地址即可在这些平台中的实例之间进行通信。有关私有和公有 IPv4 地址的更多信息,请参阅您的 VPC 中的 IP 地址

ClassicLink 可用于账户支持 EC2-Classic 平台的所有用户,并且可以与任何 EC2-Classic 实例一起使用。要查明您的账户支持的平台,请参阅 支持的平台。有关使用 VPC 的好处的更多信息,请参阅Amazon EC2 和 Amazon Virtual Private Cloud。有关将资源迁移到 VPC 的更多信息,请参阅 从 EC2-Classic 中的 Windows 实例迁移到 VPC 中的 Windows 实例

使用 ClassicLink 不收取任何额外费用。采用标准的数据传输和实例使用小时数计费方式。

注意

无法为 IPv6 通信启用 EC2-Classic 实例。您可以将 IPv6 CIDR 块与 VPC 关联,然后将 IPv6 地址分配给 VPC 中的资源,但是,VPC 中的 ClassicLinked 实例和资源之间仅通过 IPv4 进行通信。

使用 ClassicLink 将 EC2-Classic 实例链接到 VPC 分两步进行。首先,您必须为 VPC 启用 ClassicLink。默认情况下,您账户中的所有 VPC 都未启用 ClassicLink,目的是保持其隔离状态。为 VPC 启用 ClassicLink 之后,您可以将账户中位于同一区域的任何运行的 EC2-Classic 实例链接到该 VPC。链接实例的过程中,要从将与您的 EC2-Classic 实例关联的 VPC 中选择安全组。在您链接实例之后,只要 VPC 安全组允许,实例可以使用其私有 IP 地址与您的 VPC 中的实例通信。EC2-Classic 实例在链接到 VPC 时不会丢失其私有 IP 地址。

注意

将实例链接到 VPC 有时称为连接 实例。

链接的 EC2-Classic 实例可以与 VPC 中的实例通信,但它并不构成 VPC 的一部分。如果您列出自己的实例并按 VPC 筛选,例如,通过 DescribeInstances API 请求或使用 Amazon EC2 控制台中的 Instances 屏幕执行此操作,则结果不会返回任何链接到 VPC 的 EC2-Classic 实例。有关如何查看链接的 EC2-Classic 实例的更多信息,请参阅查看启用了 ClassicLink 的 VPC 和链接的 EC2-Classic 实例

默认情况下,如果您使用公有 DNS 主机名从链接的 EC2-Classic 实例对 VPC 中的实例进行定位,则该主机名会解析为该实例的公有 IP 地址。如果使用公有 DNS 主机名从 VPC 中的实例对一个链接的 EC2-Classic 实例进行定位,也是同样的情况。如果您希望公有 DNS 主机名解析为私有 IP 地址,可以对 VPC 启用 ClassicLink DNS 支持。有关更多信息,请参阅 启用 ClassicLink DNS 支持

如果您不再需要实例与 VPC 之间的 ClassicLink 连接,可以从 VPC 取消与 EC2-Classic 实例的链接。这将断开 VPC 安全组与 EC2-Classic 实例的连接。链接的 EC2-Classic 实例一旦停止,会自动取消与 VPC 的链接。从 VPC 取消链接的所有 EC2-Classic 实例的链接后,您可以为 VPC 禁用 ClassicLink。

链接的 EC2-Classic 实例可以访问 VPC 中的以下 AWS 服务:Amazon Redshift、Amazon ElastiCache、Elastic Load Balancing 和 Amazon RDS。但是,VPC 中的实例无法通过 ClassicLink 访问 EC2-Classic 平台预配置的 AWS 服务。

如果您在 VPC 中使用 Elastic Load Balancing,那么只要实例位于您的 VPC 具有子网的可用区中,便可以向负载均衡器注册您的链接的 EC2-Classic 实例。当您终止链接的 EC2-Classic 实例时,负载均衡器会取消注册该实例。有关在 VPC 中使用负载均衡器的更多信息,请参阅 Elastic Load Balancing 用户指南 中的 Amazon VPC 中的 Elastic Load Balancing

如果您使用 Auto Scaling,则可以创建一个 Auto Scaling 组,其中包含在启动时自动链接到启用了 ClassicLink 的指定 VPC 的实例。有关更多信息,请参阅 Auto Scaling 用户指南 中的将 EC2-Classic 实例链接到 VPC

如果您在 VPC 中使用 Amazon RDS 实例或 Amazon Redshift 集群,并且它们可以公开访问 (可通过 Internet 访问),则您用于从链接的 EC2-Classic 实例定位这些资源的终端节点会默认解析为公有 IP 地址。如果这些资源不可公开访问,则终端节点会解析为私有 IP 地址。要使用 ClassicLink 通过私有 IP 定位可公共访问的 RDS 实例或 Redshift 集群,您必须使用其私有 IP 地址或私有 DNS 主机名,或者必须对 VPC 启用 ClassicLink DNS 支持。

如果使用私有 DNS 主机名或私有 IP 地址对 RDS 实例寻址,则链接的 EC2-Classic 实例将无法使用多可用区部署可用的故障转移支持。

您可以使用 Amazon EC2 控制台查找 Amazon Redshift、Amazon ElastiCache 或 Amazon RDS 资源的私有 IP 地址。

查找您的 VPC 中的 AWS 资源的私有 IP 地址

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

  2. 在导航窗格中,选择 Network Interfaces

  3. Description (描述) 列中查看网络接口的描述。Amazon Redshift、Amazon ElastiCache 或 Amazon RDS 所使用网络接口的描述中将包含服务名称。例如,连接到 Amazon RDS 实例的网络接口的描述如下:RDSNetworkInterface

  4. 选择所需的网络接口。

  5. 在详细信息窗格中,从 Primary private IPv4 IP 字段中获取私有 IP 地址。

默认情况下,IAM 用户无权使用 ClassicLink。您可以创建 IAM 策略,授予用户以下权限:为 VPC 启用或禁用 ClassicLink,将实例链接到启用了 ClassicLink 的 VPC 或取消此链接,查看启用了 ClassicLink 的 VPC 和 EC2-Classic 实例。有关用于 Amazon EC2 的 IAM 策略的更多信息,请参阅 Amazon EC2 的 IAM 策略

有关使用 ClassicLink 的策略的更多信息,请参阅以下示例:6. 使用 ClassicLink

将 EC2-Classic 实例链接到 VPC 不会对您的 EC2-Classic 安全组造成影响。它们会继续控制实例的所有传入和传出流量。这不包括 VPC 中传入和传出实例的流量,这些流量由与 EC2-Classic 实例关联的 VPC 安全组控制。链接到同一 VPC 的 EC2-Classic 实例无论是否与同一 VPC 安全组关联,都不能通过该 VPC 相互通信。EC2-Classic 实例之间的通信由与这些实例关联的 EC2-Classic 安全组控制。有关安全组配置的示例,请参阅示例:适用于三层 Web 应用程序的 ClassicLink 安全组配置

在您将实例链接到 VPC 之后,不可再更改与该实例关联的 VPC 安全组。要将不同安全组与您的实例关联,必须先取消实例链接,然后再将其链接到 VPC 并选择所需的安全组。

在您为 VPC 启用 ClassicLink 时,会向所有 VPC 路由表添加一个静态路由,其目的地为 10.0.0.0/8,目标为 local。这允许 VPC 中的实例与后来链接到该 VPC 的任意 EC2-Classic 实例之间进行通信。如果您向启用了 ClassicLink 的 VPC 添加自定义路由表,则会自动添加一个静态路由,其目的地为 10.0.0.0/8,目标为 local。在您为 VPC 禁用 ClassicLink 时,会从所有 VPC 路由表中自动删除此路由。

可以为处于 10.0.0.0/1610.1.0.0/16 IP 地址范围内的 VPC 启用 ClassicLink,但仅当这些 VPC 的路由表中没有任何 10.0.0.0/8 IP 地址范围内的现有静态路由时才能如此,并且在创建 VPC 时自动添加的本地路由除外。同样,如果您已经为 VPC 启用了 ClassicLink,那么您不能在路由表中再添加 10.0.0.0/8 IP 地址范围内的任何其他特定路由。

重要

如果您的 VPC CIDR 块为公共可路由 IP 地址范围,则在您将 EC2-Classic 实例链接到 VPC 之前,应考虑安全方面的问题。例如,如果链接的 EC2-Classic 实例从处于 VPC IP 地址范围内的源 IP 地址收到传入的拒绝服务 (DoS) 请求洪流攻击,则响应流量将发送到您的 VPC。我们强烈建议您使用私有 IP 地址范围创建 VPC,具体说明见 RFC 1918

有关 VPC 中的路由表和路由的更多信息,请参阅 Amazon VPC 用户指南 中的路由表

如果您在两个 VPC 之间有 VPC 对等连接,而且存在一个或多个 EC2-Classic 实例 (这些实例通过 ClassicLink 链接到这两个 VPC 中的一个或两个),则可以扩展 VPC 对等连接以启用 EC2-Classic 实例与 VPC 对等连接另一端的 VPC 中的实例之间的通信。这将使 EC2-Classic 实例和 VPC 中的实例能够使用私有 IP 地址进行通信。为此,您可允许本地 VPC 与对等 VPC 中链接的 EC2-Classic 实例通信,也可允许本地链接的 EC2-Classic 实例与对等 VPC 中的实例通信。

如果您允许本地 VPC 与对等 VPC 中的链接 EC2-Classic 实例通信,则将自动向您的路由表添加一个静态路由 (目的地为 10.0.0.0/8,目标为 local)。

有关更多信息和示例,请参阅 Amazon VPC Peering Guide 中的使用 ClassicLink 进行配置

要使用 ClassicLink 功能,您需要了解以下限制:

  • EC2-Classic 实例一次只能链接到一个 VPC。

  • 如果您停止链接的 EC2-Classic 实例,它会自动取消与 VPC 的链接,并且 VPC 安全组不再与实例关联。您可以在重新启动之后,再次将实例链接到 VPC。

  • 不能将 EC2-Classic 实例链接到不同区域或不同 AWS 账户中的 VPC。

  • 对于配置用于专用租赁的 VPC,无法启用 ClassicLink。您可以联系 AWS Support,申请允许为您的专用租期 VPC 启用 ClassicLink。

    重要

    EC2-Classic 实例运行在共享硬件上。如果您因法规或安全要求已将 VPC 租赁设置为 dedicated,那么将 EC2-Classic 实例链接到 VPC 可能并不符合这些要求,因为您可以利用共享的租赁资源,使用私有 IP 地址直接对隔离的资源进行寻址。如果您希望为专用 VPC 启用 ClassicLink,请在 AWS Support 请求中提供这么做的详细原因。

  • 路由与 EC2-Classic 私有 IP 地址范围 10/8 冲突的 VPC 不能启用 ClassicLink。这不包括在路由表中已有本地路由的 10.0.0.0/1610.1.0.0/16 IP 地址范围的 VPC。有关更多信息,请参阅 ClassicLink 路由

  • 您不能将 VPC 弹性 IP 地址与链接的 EC2-Classic 实例关联。

  • 您可以将运行的竞价型实例链接到 VPC。要在竞价型实例请求中指定实例应当在请求执行时链接到 VPC,您必须使用 Amazon EC2 控制台中的启动向导。

  • ClassicLink 不支持 VPC 外的传递关系。链接的 EC2-Classic 实例不能访问与 VPC 关联的任何 VPN 连接、VPC 端点或 Internet 网关。同样,VPN 连接或 Internet 网关另一端的资源也不能访问链接的 EC2-Classic 实例。

  • 您不能使用 ClassicLink 将一个 VPC 实例链接到另一个 VPC 或 EC2-Classic 资源。要在 VPC 之间建立私有连接,可以使用 VPC 对等连接。有关更多信息,请参阅 Amazon VPC Peering Guide

  • 如果您将 EC2-Classic 实例链接到 172.16.0.0/16 范围中的某个 VPC,并在该 VPC 中的 172.16.0.23/32 IP 地址上运行了一个 DNS 服务器,那么您所链接的 EC2-Classic 实例将无法访问 VPC DNS 服务器。要解决此问题,请在该 VPC 中的其他 IP 地址上运行您的 DNS 服务器。

您可以通过 Amazon EC2 和 Amazon VPC 控制台使用 ClassicLink 功能。您可以为 VPC 启用或禁用 ClassicLink,也可以将 EC2-Classic 实例链接到 VPC 或取消其链接。

注意

ClassicLink 功能仅显示在支持 EC2-Classic 的账户和区域的控制台中。

要将 EC2-Classic 实例链接到某个 VPC,您必须先为该 VPC 启用 ClassicLink。如果 VPC 的路由与 EC2-Classic 私有 IP 地址范围冲突,则不能为该 VPC 启用 ClassicLink。有关更多信息,请参阅 ClassicLink 路由

为 VPC 启用 ClassicLink

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

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

  3. 选择一个 VPC,然后选择 ActionsEnable ClassicLink

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

为 ClassicLink 启用 VPC 后,您可以将 EC2-Classic 实例与其链接。

注意

您只能将正在运行的 EC2-Classic 实例链接到 VPC。您无法链接处于 stopped 状态的实例。

将实例链接到 VPC

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

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

  3. 选择正在运行的 EC2-Classic 实例,然后选择 ActionsClassicLinkLink to VPC。您可以选择多个实例,将其链接到同一 VPC。

  4. 在显示的对话框中,从列表中选择一个 VPC。此处仅显示已启用 ClassicLink 的 VPC。

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

您可以使用 Amazon VPC 控制台中的 VPC 向导创建新 VPC 并立即为其启用 ClassicLink。

创建启用了 ClassicLink 的 VPC

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

  2. 从 Amazon VPC 控制面板上,选择 Start VPC Wizard

  3. 选择一个 VPC 配置选项并选择 Select

  4. 在向导的下一页上,对 Enable ClassicLink 选择 Yes。完成向导中的剩余步骤创建您的 VPC。有关使用 VPC 向导的更多信息,请参阅 Amazon VPC 用户指南 中的 Amazon VPC 情景

您可以在 Amazon EC2 控制台中使用启动向导启动 EC2-Classic 实例,然后立即将其链接到启用了 ClassicLink 的 VPC。

在启动时将实例链接到 VPC

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

  2. 从 Amazon EC2 控制面板中,选择 Launch Instance

  3. 选择 AMI,然后选择实例类型。在 Configure Instance Details (配置实例详细信息) 页面上,确保从 Network (网络) 列表中选择 Launch into EC2-Classic (在 EC2-Classic 中启动)

    注意

    某些实例类型 (如 T2 实例类型) 只能在 VPC 中启动。请确保您选择的实例类型可以在 EC2-Classic 中启动。

  4. Link to VPC (ClassicLink) 部分,从 Link to VPC 中选择一个 VPC。将只显示启用了 ClassicLink 的 VPC。从 VPC 中选择要与实例关联的安全组。完成页面上的其他配置选项,然后完成向导中的剩余步骤启动您的实例。有关如何使用启动向导的更多信息,请参阅从 AMI 启动实例

您可以在 Amazon VPC 控制台中查看启用了 ClassicLink 的所有 VPC,在 Amazon EC2 控制台中查看链接的 EC2-Classic 实例。

查看启用了 ClassicLink 的 VPC

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

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

  3. 选择一个 VPC,然后在 Summary (摘要) 选项卡中找到 ClassicLink 字段。值 Enabled (已启用) 表示已为 VPC 启用了 ClassicLink。

  4. 或者,也可以找到 ClassicLink 列,查看为每个 VPC 显示的值 (Enabled (已启用)Disabled (已禁用))。如果看不到此列,请选择 Edit Table Columns (齿轮状图标),选择 ClassicLink 属性,然后选择 Close

查看您链接的 EC2-Classic 实例

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

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

  3. 选择一个 EC2-Classic 实例,然后在 Description (描述) 选项卡中找到 ClassicLink 字段。如果实例链接到某个 VPC,该字段会显示实例所链接到的 VPC 的 ID。如果实例未链接到任何 VPC,该字段会显示 Unlinked (未链接)

  4. 或者,您可以筛选实例,以便只显示特定 VPC 或安全组的链接的 EC2-Classic 实例。在搜索栏中,开始键入 ClassicLink,选择相关的 ClassicLink 资源属性,然后选择安全组 ID 或 VPC ID。

您可以对您的 VPC 启用 ClassicLink DNS 支持,以使定位在链接的 EC2-Classic 实例和 VPC 中的实例之间的 DNS 主机名解析为私有 IP 地址而不是公有 IP 地址。要使此功能起作用,必须对您的 VPC 启用 DNS 主机名和 DNS 解析。

注意

如果您对 VPC 启用ClassicLink DNS 支持,您关联的 EC2 经典版实例可以访问与 VPC 相关的所有私有托管区域。有关更多信息,请参阅Amazon Route 53 开发人员指南中的私有托管区域的使用

启用 ClassicLink DNS 支持

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

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

  3. 选择您的 VPC,然后选择 ActionsEdit ClassicLink DNS Support

  4. 选择 Yes 启用 ClassicLink DNS 支持,然后选择 Save

您可以对您的 VPC 禁用 ClassicLink DNS 支持,以使定位在链接的 EC2-Classic 实例和 VPC 中的实例之间的 DNS 主机名解析为公有 IP 地址而不是私有 IP 地址。

禁用 ClassicLink DNS 支持

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

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

  3. 选择您的 VPC,然后选择 ActionsEdit ClassicLink DNS Support

  4. 选择 No 禁用 ClassicLink DNS 支持,然后选择 Save

如果您不再需要 EC2-Classic 实例与 VPC 之间的 ClassicLink 连接,可以从 VPC 取消与该实例的链接。取消实例链接会从实例解除与 VPC 安全组的关联。

注意

停止的实例会从 VPC 自动取消链接。

从 VPC 取消链接一个实例

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

  2. 在导航窗格中,选择 Instances,然后选择您的实例。

  3. Actions 列表中,选择 ClassicLink,然后选择 Unlink Instance。您可以选择多个实例,将其从同一 VPC 取消链接。

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

如果您不再需要 EC2-Classic 实例与 VPC 之间的连接,可以禁用 VPC 的 ClassicLink。您必须先取消链接到 VPC 的所有链接的 EC2-Classic 实例的链接。

为 VPC 禁用 ClassicLink

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

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

  3. 选择您的 VPC,然后选择 ActionsDisable ClassicLink

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

您可以使用命令行或查询 API 执行此页面上所述的任务。有关命令行界面的更多信息以及可用 API 操作的列表,请参阅访问 Amazon EC2

为 VPC 启用 ClassicLink

将 EC2-Classic 实例链接 (连接) 到 VPC

从 VPC 取消链接 (断开) EC2-Classic 实例

为 VPC 禁用 ClassicLink

描述 VPC 的 ClassicLink 状态

阐述链接的 EC2-Classic 实例

为 ClassicLink 启用 VPC 对等连接

对 VPC 启用 ClassicLink DNS 支持

对 VPC 禁用 ClassicLink DNS 支持

VPC 的 ClassicLink DNS 支持说明

在此示例中,您有具有以下三个实例的应用程序:面向公众的 Web 服务器、应用程序服务器和数据库服务器。您的 Web 服务器接收来自 Internet 的 HTTPS 流量,然后通过 TCP 端口 6001 与应用程序服务器通信。然后,您的应用程序服务器通过 TCP 端口 6004 与数据库服务器通信。您正在进行将整个应用程序迁移到账户中的 VPC 的过程。已将您的应用程序服务器和数据库服务器迁移到 VPC。您的 Web 服务器仍在 EC2-Classic 中而且已通过 ClassicLink 链接到 VPC。

您需要一个安全组配置,该配置仅允许流量在这些实例间流动。您具有 4 个安全组:其中两个安全组用于 Web 服务器 (sg-1a1a1a1asg-2b2b2b2b)、一个安全组用于应用程序服务器 (sg-3c3c3c3c),一个安全组用于数据库服务器 (sg-4d4d4d4d)。

下图显示了实例的架构及其安全组配置。

 使用 ClassicLink 的安全组配置。

适用于 Web 服务器的安全组 (sg-1a1a1a1asg-2b2b2b2b)

您的一个安全组位于 EC2-Classic 中,另一个安全组位于 VPC 中。当通过 ClassicLink 将您的 Web 服务器实例链接到 VPC 时,是将 VPC 安全组与该实例关联。VPC 安全组使您能够控制从 Web 服务器到应用程序服务器的出站流量。

以下是适用于 EC2-Classic 安全组的安全组规则 (sg-1a1a1a1a)。

入站
Type 端口范围 注释

0.0.0.0/0

HTTPS

443

允许 Internet 流量到达您的 Web 服务器。

以下是适用于 VPC 安全组的安全组规则 (sg-2b2b2b2b)。

出站
目的地 Type 端口范围 注释

sg-3c3c3c3c

TCP

6001

在您的 VPC 中允许从 Web 服务器到应用程序服务器 (或到与 sg-3c3c3c3c 关联的任何其他实例) 的出站流量。

适用于您的应用程序服务器的安全组 (sg-3c3c3c3c)

以下是适用于与您的应用程序服务器关联的 VPC 安全组的安全组规则。

入站
Type 端口范围 注释

sg-2b2b2b2b

TCP

6001

允许来自 Web 服务器 (或与 sg-2b2b2b2b 关联的任何其他实例) 的指定类型的流量到达应用程序服务器。

出站
目的地 Type 端口范围 注释
sg-4d4d4d4d TCP 6004 允许从应用程序服务器到数据库服务器 (或到与 sg-4d4d4d4d 关联的任何其他实例) 的出站流量。

适用于数据库服务器的安全组 (sg-4d4d4d4d)

以下是适用于与您的数据库服务器关联的 VPC 安全组的安全组规则。

入站
Type 端口范围 注释

sg-3c3c3c3c

TCP

6004

允许来自应用程序服务器 (或与 sg-3c3c3c3c 关联的任何其他实例) 的指定类型的流量到达数据库服务器。