Amazon Elastic Compute Cloud
用户指南(适用于 Linux 实例)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

EC2-Classic

通过使用 EC2-Classic,您的实例会在一个可与其他客户共享的扁平化网络中运行。通过使用 Amazon VPC,您的实例会在一个逻辑上与 AWS 账户分离的 Virtual Private Cloud (VPC) 中运行。

EC2-Classic 平台是在 Amazon EC2 的初始版本中引入的。如果您的 AWS 账户是在 2013 年 12 月 4 日之后创建的,它不支持 EC2-Classic,因此您必须在 VPC 中启动您的 Amazon EC2 实例。

如果您的账户不支持 EC2-Classic,我们会为您创建一个默认 VPC。默认情况下,当您启动某个实例时,我们会在您的默认 VPC 中启动它。或者,您也可以创建一个非默认 VPC,然后在启动实例时指定它。

检测受支持的平台

Amazon EC2 控制台会显示在所选区域中您可以启动实例的平台,以及在该区域您是否拥有默认 VPC。

检查您要使用的区域已在导航栏中选定。在 Amazon EC2 控制台控制面板上,从 Account Attributes (账户属性) 下找到 Supported Platforms (支持的平台)

支持 EC2-Classic 的账户

控制面板在 Account Attributes (账户属性) 下方显示以下内容,表示账户在此区域中支持 EC2-Classic 平台和 VPC,但该区域没有默认 VPC。


                    支持平台指示符

describe-account-attributes 命令的输出包含 supported-platforms 属性的 EC2VPC 值。

aws ec2 describe-account-attributes --attribute-names supported-platforms { "AccountAttributes": [ { "AttributeName": "supported-platforms", "AttributeValues": [ { "AttributeValue": "EC2" }, { "AttributeValue": "VPC" } ] } ] }

需要 VPC 的账户

控制面板在 Account Attributes (账户属性) 下方显示以下内容,表示账户在此区域中需要 VPC 来启动实例,在此区域中不支持 EC2-Classic 平台,该区域具有标识符为 vpc-1a2b3c4d 的默认 VPC。


                    支持平台指示符

describe-account-attributes 命令的输出仅包含 supported-platforms 属性的 VPC 值。

aws ec2 describe-account-attributes --attribute-names supported-platforms { "AccountAttributes": [ { "AttributeValues": [ { "AttributeValue": "VPC" } ] "AttributeName": "supported-platforms", } ] }

EC2-Classic 中可用的实例类型

多数较新的实例类型都需要 VPC。以下是 EC2-Classic 中支持的唯一实例类型:

  • 通用:M1、M3 和 T1

  • 计算优化:C1、C3 和 CC2

  • 内存优化:CR1、M2 和 R3

  • 存储优化:D2、HS1 和 I2

  • 加速计算:G2

如果您的账户支持 EC2-Classic,但您尚未创建非默认 VPC,您可以执行以下操作之一来启动需要 VPC 的实例:

  • 在请求中指定子网 ID 或网络接口 ID,以便创建非默认 VPC 并将您的仅 VPC 实例启动至该 VPC。请注意,如果您没有默认 VPC 并且使用 AWS CLI、Amazon EC2 API 或 AWS 软件开发工具包来启动仅限 VPC 的实例,则必须创建非默认 VPC。有关更多信息,请参阅创建 Virtual Private Cloud (VPC)

  • 使用 Amazon EC2 控制台启动仅 VPC 实例。Amazon EC2 控制台在您的账户中创建非默认 VPC 并将实例启动至第一个可用区中的子网。控制台将创建具有以下属性的 VPC:

    • 每个可用区中有一个子网,其公有 IPv4 地址属性设置为 true,因此实例会收到一个公有 IPv4 地址。有关更多信息,请参阅 Amazon VPC 用户指南 中的您的 VPC 中的 IP 地址

    • 一个 Internet 网关,以及一个将 VPC 中的流量路由到该 Internet 网关的主路由表。这使您在 VPC 中启动的实例可以在 Internet 上通信。有关更多信息,请参阅 Amazon VPC 用户指南 中的 Internet 网关

    • VPC 的默认安全组和与每个子网关联的默认网络 ACL。有关更多信息,请参阅 Amazon VPC 用户指南 中的您的 VPC 中的安全性

如果您在 EC2-Classic 中有其他资源,则可以采取措施将它们迁移到 VPC。有关更多信息,请参阅从 EC2-Classic 中的 Linux 实例迁移到 VPC 中的 Linux 实例

EC2-Classic 和 VPC 中的实例之间的区别

下表总结了在 EC2-Classic、默认 VPC 以及非默认 VPC 这三种平台中启动的实例之间的区别。

特征 EC2-Classic 默认 VPC 非默认 VPC

公有 IPv4 地址 (来自 Amazon 的公有 IP 地址池)

您的实例从 EC2-Classic 公有 IPv4 地址池接收公有 IPv4 地址。

默认情况下,在默认子网中启动的实例会收到公有 IPv4 地址,除非您在启动过程中另行指定,或者您修改子网的公有 IPv4 地址属性。

默认情况下,您的实例不会收到公有 IPv4 地址,除非您在启动过程中另行指定,或者您修改子网的公有 IPv4 地址属性。

私有 IPv4 地址

您的实例会在每次启动时收到一个处于 EC2-Classic 范围内的私有 IPv4 地址。

您的实例会收到一个处于默认 VPC 地址范围内的静态私有 IPv4 地址。

您的实例会收到一个处于 VPC 地址范围内的静态私有 IPv4 地址。

多个私有 IPv4 地址

我们会为您的实例选择一个私有 IP 地址;不支持多个 IP 地址。

您可以将多个私有 IPv4 地址分配给您的实例。

您可以将多个私有 IPv4 地址分配给您的实例。

弹性 IP 地址 (IPv4)

当您停止实例时,弹性 IP 会取消与实例的关联。

当您停止实例时,弹性 IP 会保持与实例的关联。

当您停止实例时,弹性 IP 会保持与实例的关联。

分配弹性 IP 地址

将弹性 IP 地址与实例相关联。

弹性 IP 地址是网络接口的一个属性。您可以通过更新附加到实例的网络接口,将弹性 IP 地址与该实例关联起来。

弹性 IP 地址是网络接口的一个属性。您可以通过更新附加到实例的网络接口,将弹性 IP 地址与该实例关联起来。

取消关联弹性 IP 地址

如果弹性 IP 地址已经与其他实例关联,该地址会自动与新实例关联。

如果弹性 IP 地址已经与其他实例关联,该地址会自动与新实例关联。

如果弹性 IP 地址已经与其他实例关联,则只有您允许重新关联时该操作才会成功。

标记弹性 IP 地址

您不能将标签应用于弹性 IP 地址。

您可以将标签应用于弹性 IP 地址。

您可以将标签应用于弹性 IP 地址。

DNS 主机名

DNS 主机名默认处于启用状态。

DNS 主机名默认处于启用状态。

DNS 主机名默认处于禁用状态。

安全组

安全组可以引用属于其他 AWS 账户的安全组。

安全组可以引用您的 VPC 的安全组,或者引用 VPC 对等连接中的对等 VPC 的安全组。

安全组只能引用您的 VPC 的安全组。

安全组关联

启动实例时,您可以为其分配无限数量的安全组。

您不能更改正在运行的实例的安全组。您可以修改已分配的安全组的规则,或使用新实例予以替换 (从该实例中创建 AMI,通过此 AMI 启动带有您所需的安全组的新实例,取消任意弹性 IP 地址与原有实例的关联并将其与新实例关联起来,然后终止原有实例)。

您最多可以为一个实例分配 5 个安全组。

您可以在启动实例时和实例运行过程中为其分配安全组。

您最多可以为一个实例分配 5 个安全组。

您可以在启动实例时和实例运行过程中为其分配安全组。

安全组规则

您只能为入站流量添加规则。

您可以为入站和出站流量添加规则。

您可以为入站和出站流量添加规则。

租期

您的实例在共享硬件上运行。

您可以在共享硬件或单租户硬件上运行您的实例。

您可以在共享硬件或单租户硬件上运行您的实例。

正在访问 Internet 您的实例可以访问 Internet。您的实例会自动接收公有 IP 地址,并且可以直接通过 AWS 网络边界访问 Internet。 默认情况下,您的实例可以访问 Internet。您的实例默认会接收一个公有 IP 地址。一个 Internet 网关附加到您的默认 VPC,并且您的默认子网有一个到 Internet 网关的路由。 默认情况下,您的实例不能访问 Internet。您的实例默认不会接收公有 IP 地址。您的 VPC 可能有一个 Internet 网关,具体取决于它的创建方式。
IPv6 寻址 不支持 IPv6 寻址。您无法将 IPv6 地址分配给您的实例。 您可以选择将一个 IPv6 CIDR 块与 VPC 关联,并将 IPv6 地址分配给 VPC 中的实例。 您可以选择将一个 IPv6 CIDR 块与 VPC 关联,并将 IPv6 地址分配给 VPC 中的实例。

EC2-Classic 安全组

如果要使用 EC2-Classic,则必须使用为 EC2-Classic 专门创建的安全组。当您在 EC2-Classic 中启动实例时,您必须在实例所在的相同区域指定一个安全组。在 EC2-Classic 中启动实例时,您无法指定为 VPC 创建的安全组。

在 EC2-Classic 中启动实例后,您就不能再更改其安全组。不过,您可以向安全组添加或从中删除规则,并且这些更改会在经过一小段时间之后自动应用于与该安全组关联的所有实例。

您的 AWS 账户在每个区域都自动拥有一个 EC2-Classic 默认安全组。如果您尝试删除默认安全组,会显示以下错误:Client.InvalidGroup.Reserved: The security group 'default' is reserved (Client.InvalidGroup.Reserved: 保留“默认”安全组)。

您可以创建自定义安全组。安全组名称在您的区域账户中必须是唯一的。要创建在 EC2-Classic 中使用的安全组,请对 VPC 选择 No VPC (无 VPC)

您可以对默认和自定义安全组添加入站规则。您无法更改 EC2-Classic 安全组的出站规则。创建安全组规则时,您可以在与源或目标相同的区域中使用其他 EC2-Classic 安全组。要为其他 AWS 账户指定安全组,请添加 AWS 账户 ID 作为前缀;例如 111122223333/sg-edcd9784

在 EC2-Classic 中,您可以在每个区域为每个账户创建多达 500 个安全组。您可以将一个实例与多达 500 个安全组关联,并且最多可以为一个安全组添加 100 条规则。

IP 寻址和 DNS

Amazon 提供了 DNS 服务器,可将 Amazon 提供的 IPv4 DNS 主机名解析为 IPv4 地址。在 EC2-Classic 中,此 Amazon DNS 服务器位于 172.16.0.23

如果您在 EC2-Classic 中创建自定义防火墙配置,那么必须在您的防火墙中创建规则,以允许来自 Amazon DNS 服务器地址的端口 53 (DNS)(目标端口在临时范围内)的入站流量,否则,实例的内部 DNS 解析会失败。如果您的防火墙无法自动允许 DNS 查询响应,那么您就需要允许来自 Amazon DNS 服务器的 IP 地址的流量。要获取 Amazon DNS 服务器的 IP 地址,请在您的实例中使用以下命令:

grep nameserver /etc/resolv.conf

弹性 IP 地址

如果您的账户支持 EC2-Classic,则其中一个弹性 IP 地址池可用于 EC2-Classic 平台,而另一个可用于 VPC。您不能将已分配与 VPC 配合使用的弹性 IP 地址与 EC2-Classic 中的实例相关联,反之亦然。但是,您可迁移已分配为在 EC2-Classic 平台中使用的弹性 IP 地址以便用于 VPC。您不能将弹性 IP 地址迁移到另一个区域。

使用控制台分配可在 EC2-Classic 中使用的弹性 IP 地址

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

  2. 在导航窗格中,选择 Elastic IPs

  3. 选择 Allocate new address

  4. 选择 Classic,然后选择 Allocate。关闭确认屏幕。

从 EC2-Classic 迁移弹性 IP 地址

如果您的账户支持 EC2-Classic,则可迁移已分配为用于 EC2-Classic 平台的弹性 IP 地址以便用于同一区域内的 VPC。这可帮助您将资源从 EC2-Classic 迁移到 VPC;例如,您可在 VPC 中启动新的 Web 服务器,然后将 EC2-Classic 中您的 Web 服务器所使用的弹性 IP 地址用于新的 VPC Web 服务器。

在将弹性 IP 地址迁移到 VPC 后,不能将其用于 EC2-Classic。但是,如果需要,您可以将其还原到 EC2-Classic。您无法将本来分配为用于 VPC 的弹性 IP 地址迁移至 EC2-Classic。

要迁移弹性 IP 地址,则不得将该地址与实例关联。有关解除弹性 IP 地址与实例的关联的更多信息,请参阅取消关联弹性 IP 地址,并将它与其他实例重新关联

您可以迁移您的账户中拥有的数量的 EC2-Classic 弹性 IP 地址。但是,在迁移弹性 IP 地址时,该地址会计入 VPC 的弹性 IP 地址限制。如果某个弹性 IP 地址将导致您超出限制,则不能迁移该地址。同样,在将弹性 IP 地址还原到 EC2-Classic 时,该地址会计入 EC2-Classic 的弹性 IP 地址限制。有关更多信息,请参阅弹性 IP 地址限额

您不能迁移在 24 小时之前分配给您的账户弹性 IP 地址。

您可使用 Amazon EC2 控制台或 Amazon VPC 控制台从 EC2-Classic 迁移弹性 IP 地址。该选项仅在您的账户支持 EC2-Classic 时可用。

使用 Amazon EC2 控制台移动弹性 IP 地址

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

  2. 在导航窗格中,选择 Elastic IPs

  3. 依次选择弹性 IP 地址、ActionsMove to VPC scope

  4. 在确认对话框中,选择 Move Elastic IP

您可以使用 Amazon EC2 控制台或 Amazon VPC 控制台将弹性 IP 地址还原到 EC2-Classic。

使用 Amazon EC2 控制台将弹性 IP 地址还原到 EC2-Classic

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

  2. 在导航窗格中,选择 Elastic IPs

  3. 依次选择弹性 IP 地址、ActionsRestore to EC2 scope

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

在您执行相关命令来移动或还原弹性 IP 地址后,弹性 IP 地址的迁移过程可能需要花费几分钟时间。使用 describe-moving-addresses 命令可查看您的弹性 IP 地址是仍在移动还是已完成移动。

在将弹性 IP 地址移走后,您可以在 Elastic IPs (弹性 IP) 页面上的 Allocation ID (分配 ID) 字段中查看其分配 ID。

如果弹性 IP 地址处于移动状态超过 5 分钟,请联系 Premium Support

使用命令行移动弹性 IP 地址

您可以使用以下任一命令。有关这些命令行界面的更多信息,请参阅 访问 Amazon EC2

使用命令行将弹性 IP 地址还原到 EC2-Classic

您可以使用以下任一命令。有关这些命令行界面的更多信息,请参阅 访问 Amazon EC2

使用命令行描述移动中的地址的状态

您可以使用以下任一命令。有关这些命令行界面的更多信息,请参阅 访问 Amazon EC2

在 EC2-Classic 与 VPC 之间共享和访问资源

AWS 账户中的一些资源和功能可以在 EC2-Classic 与 VPC 平台之间共享或访问(例如,通过 ClassicLink)。有关更多信息,请参阅ClassicLink

如果您的账户支持 EC2-Classic,您可能已经设置在 EC2-Classic 中使用的资源。如果您要从 EC2-Classic 迁移到 VPC,则必须在 VPC 中重新创建这些资源。有关从 EC2-Classic 迁移到 VPC 的更多信息,请参阅从 EC2-Classic 中的 Linux 实例迁移到 VPC 中的 Linux 实例

以下资源可在 EC2-Classic 与 VPC 之间共享或访问。

资源 备注
AMI
捆绑任务
EBS 卷
弹性 IP 地址 (IPv4)

您可将弹性 IP 地址从 EC2-Classic 迁移至 VPC。您无法将本来分配为在 VPC 中使用的弹性 IP 地址迁移至 EC2-Classic。有关更多信息,请参阅从 EC2-Classic 迁移弹性 IP 地址

实例

EC2-Classic 实例可以使用公有 IPv4 地址与 VPC 中的实例通信,或者您可以使用 ClassicLink 通过私有 IPv4 地址实现通信。

您不能将实例从 EC2-Classic 迁移到 VPC。不过,您可以将应用程序从 EC2-Classic 中的实例迁移到 VPC 中的实例。有关更多信息,请参阅从 EC2-Classic 中的 Linux 实例迁移到 VPC 中的 Linux 实例

密钥对
负载均衡器

如果您使用了 ClassicLink,则可以将一个链接的 EC2-Classic 实例注册到某个 VPC 中的负载均衡器,前提是该 VPC 具有与实例位于同一可用区的子网。

您不能将负载均衡器从 EC2-Classic 迁移到 VPC。您无法在 EC2-Classic 的负载均衡器中注册 VPC 中的实例。

置放群组
Reserved Instance

可以将 预留实例 的网络平台从 EC2-Classic 更改为 VPC。有关更多信息,请参阅修改预留实例

安全组

链接的 EC2-Classic 实例可通过 ClassicLink 使用 VPC 安全组以控制进出 VPC 的流量。VPC 实例不能使用 EC2-Classic 安全组。

您不能将安全组从 EC2-Classic 迁移到 VPC。您可以将规则从 EC2-Classic 安全组复制到 VPC 安全组。有关更多信息,请参阅正在创建安全组

快照

以下资源不能在 EC2-Classic 与 VPC 之间共享或移动:

  • Spot 实例