Amazon EC2 Auto Scaling
用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

在 VPC 中启动 Auto Scaling 实例

通过使用 Amazon Virtual Private Cloud (Amazon VPC),您可以在 AWS 云的私有隔离部分中定义虚拟联网环境。您的虚拟联网环境完全由您控制。有关更多信息,请参阅 Amazon VPC 用户指南

在 Virtual Private Cloud (VPC) 内,您可启动 AWS 资源,如 Auto Scaling 组。Auto Scaling 组在 VPC 中的工作原理与它在 Amazon EC2 中的工作原理基本相同,支持同样的功能集。

Amazon VPC 中的子网是可用区的一个部分,由 VPC 的 IP 地址范围段定义。您可以根据您的安全和运行需求,使用子网对您的实例进行分组。子网完全位于其最初创建时所在的可用区内。在子网中启动 Auto Scaling 实例。

要支持 Internet 与您的子网中的实例之间的通信,您必须创建一个 Internet 网关并将其附加到您的 VPC。通过使用 Internet 网关,您的子网中的资源可以通过 Amazon EC2 网络边界连接到 Internet。如果子网的流量路由到 Internet 网关,则子网称为公有 子网。如果子网的流量不路由到 Internet 网关,则子网称为私有 子网。请将公有子网用于必须连接到 Internet 的资源,并将私有子网用于不需要连接到 Internet 的资源。

先决条件

在 VPC 中启动 Auto Scaling 实例之前,您必须先创建 VPC 环境。创建了 VPC 和子网后,在子网内启动 Auto Scaling 实例。创建带单个公有子网的 VPC 的最简单方法就是使用 VPC 向导。有关更多信息,请参阅 Amazon VPC 入门指南

默认 VPC

如果您在 2013 年 12 月 4 日以后创建了 AWS 账户,或者您要在新区域中创建 Auto Scaling 组,则我们会为您创建默认 VPC。默认 VPC 随每个可用区中的默认子网提供。如果您有默认 VPC,则在默认情况下,将在默认 VPC 中创建 Auto Scaling 组。

有关默认 VPC 以及检查您的账户是否附带默认 VPC 的信息,请参阅 Amazon VPC 开发人员指南 中的您的默认 VPC 和子网

VPC 中的 IP 寻址

在 VPC 中启动 Auto Scaling 实例时,将自动为这些实例分配子网地址范围内的私有 IP 地址。这样,这些实例就能够与 VPC 中的其他实例通信。

您可以进行启动配置,为您的实例分配公有 IP 地址。通过将公有 IP 地址分配给实例,这些实例可以与 Internet 或 AWS 中的其他服务进行通信。

如果为实例启用公有 IP 地址,并将这些实例启动到配置为自动分配 IPv6 地址的子网,则这些实例接收 IPv4 和 IPv6 地址。否则,这些实例仅接收 IPv4 地址。有关更多信息,请参阅 Amazon EC2 用户指南(适用于 Linux 实例) 中的 IPv6 地址

实例部署租期

专用实例在主机硬件级别上与您的非专用实例和属于其他 AWS 账户的实例实现物理隔离。当您创建 VPC 时,默认情况下它的租期属性设置为 default。在这样一个 VPC 中,您可启动租期值为 dedicated 的实例,以便它们作为单一租期实例运行。否则,默认情况下,这些实例作为共享租期实例运行。如您将 VPC 的租期属性设置为 dedicated,则在 VPC 内启动的所有实例都作为单一租期实例运行。有关更多信息,请参阅 Amazon VPC 用户指南 中的专用实例。有关定价信息,请参阅 Amazon EC2 专用实例

在创建启动配置后,实例部署租期的默认值为 null,实例租期由 VPC 的租期属性控制。下表总结了在 VPC 中启动的 Auto Scaling 实例的实例部署租期。

启动配置租期 VPC 租期 = 默认 VPC 租期 = 专用

未指定

共享租期实例

专用实例

default

共享租期实例

专用实例

dedicated

专用实例

专用实例

您可以使用 create-launch-configuration 命令和 --placement-tenancy 选项,将启动配置的实例部署租期指定为 defaultdedicated。例如,以下命令将启动配置租期设置为 dedicated

aws autoscaling create-launch-configuration --launch-configuration-name my-launch-config --placement-tenancy dedicated --image-id ...

您可以使用以下 describe-launch-configurations 命令检查启动配置的实例部署租期:

aws autoscaling describe-launch-configurations --launch-configuration-names my-launch-config

以下是创建专用实例的启动配置的示例输出。只有在明确设置实例部署租期时,PlacementTenancy 参数才是该命令输出的一部分。

{ "LaunchConfigurations": [ { "UserData": null, "EbsOptimized": false, "PlacementTenancy": "dedicated", "LaunchConfigurationARN": "arn", "InstanceMonitoring": { "Enabled": true }, "ImageId": "ami-b5a7ea85", "CreatedTime": "2015-03-08T23:39:49.011Z", "BlockDeviceMappings": [], "KeyName": null, "SecurityGroups": [], "LaunchConfigurationName": "my-launch-config", "KernelId": null, "RamdiskId": null, "InstanceType": "m3.medium" } ]

如果您在 EC2-Classic 的 Auto Scaling 组中启动实例,您可使用 ClassicLink 将这些实例链接到 VPC。通过使用 ClassicLink,您可以将 VPC 的一个或多个安全组与 Auto Scaling 组中的 EC2-Classic 实例相关联。这样,这些链接的 EC2-Classic 实例就可以使用私有 IP 地址与 VPC 中的实例进行通信。有关更多信息,请参阅 Amazon EC2 用户指南(适用于 Linux 实例) 中的 ClassicLink

如您的 Auto Scaling 组中存在运行的 EC2-Classic 实例,您可将它们链接到启用 ClassicLink 的 VPC。有关更多信息,请参阅 Amazon EC2 用户指南(适用于 Linux 实例) 中的将实例链接到 VPC。或者,您也可以更新 Auto Scaling 组以使用一个启动配置,该配置在启动时将 EC2-Classic 实例自动链接到一个 VPC。然后,终止运行的实例,并让 Auto Scaling 组启动链接到 VPC 的新实例。

使用以下程序创建启动配置,通过该启动配置将 EC2-Classic 实例链接到指定的 VPC,并更新现有 Auto Scaling 组来使用启动配置。

将 Auto Scaling 组中的 EC2-Classic 实例链接到 VPC。

  1. 确认 VPC 已启用 ClassicLink。有关更多信息,请参阅 Amazon EC2 用户指南(适用于 Linux 实例) 中的查看启用了 ClassicLink 的 VPC

  2. 为要将 EC2-Classic 实例链接到的 VPC 创建一个安全组。添加规则以控制链接的 EC2-Classic 实例和 VPC 中的实例之间的通信。

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

  4. 在导航窗格上,选择 Launch Configurations

  5. 选择 Create launch configuration

  6. Choose AMI 页面中,选择 AMI。

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

  8. Configure details 页面上,执行以下操作:

    1. 为您的启动配置键入一个名称。

    2. 展开 Advanced Details,选择您需要的 IP Address Type,然后选择 Link to VPC

    3. 对于 VPC,选择在步骤 1 中启用了 ClassicLink 的 VPC。

    4. 对于 Security Groups,选择在步骤 2 中创建的安全组。

    5. 选择 Skip to review

  9. Review 页面上,进行所需的更改,然后选择 Create launch configuration。对于 Select an existing key pair or create a new key pair,选择一个选项,选中确认复选框(如果出现),然后选择 Create launch configuration

  10. 当出现提示时,请遵循说明创建使用新启动配置的 Auto Scaling 组。务必为 Network 选择 Launch into EC2-Classic。否则,请选择 Cancel (取消) 并将您的启动配置添加到一个现有 Auto Scaling 组,如下所示:

    1. 在导航窗格上,选择 Auto Scaling Groups

    2. 选择您的 Auto Scaling 组,然后选择 Actions (操作)Edit (编辑)

    3. 对于 Launch Configuration,选择新的启动配置,然后选择 Save

使用以下程序创建启动配置,通过该启动配置将 EC2-Classic 实例链接到指定的 VPC,并更新现有 Auto Scaling 组来使用该启动配置。

将 Auto Scaling 组中的 EC2-Classic 实例链接到 VPC

  1. 确认 VPC 已启用 ClassicLink。有关更多信息,请参阅 Amazon EC2 用户指南(适用于 Linux 实例) 中的查看启用了 ClassicLink 的 VPC

  2. 为要将 EC2-Classic 实例链接到的 VPC 创建一个安全组。添加规则以控制链接的 EC2-Classic 实例和 VPC 中的实例之间的通信。

  3. 使用 create-launch-configuration 命令创建一个启动配置,如下所示。为 vpd_id 指定一个值以作为步骤 1 中启用了 ClassicLink 的 VPC 的 ID,并为 group_id 指定一个值以作为步骤 2 中的安全组:

    aws autoscaling create-launch-configuration --launch-configuration-name classiclink-config \ --image-id ami_id --instance-type instance_type \ --classic-link-vpc-id vpc_id --classic-link-vpc-security-groups group_id
  4. 使用在上一步中创建的启动配置来更新您的现有 Auto Scaling 组,例如 my-asg。这一 Auto Scaling 组中启动的任何新 EC2-Classic 实例都是已链接的 EC2-Classic 实例。按以下方式使用 update-auto-scaling-group 命令:

    aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg \ --launch-configuration-name classiclink-config

    或者,您也可以将该启动配置与使用 create-auto-scaling-group 创建的新 Auto Scaling 组一起使用。