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

在 VPC 中启动 Auto Scaling 实例

Amazon Virtual Private Cloud (Amazon VPC) 使您能够在私有、隔离的 AWS 云区域定义虚拟的联网环境。您的虚拟联网环境完全由您控制。有关更多信息,请参阅 Amazon VPC 用户指南

在 Virtual Private Cloud (VPC) 内,您可启动 AWS 资源,如 Auto Scaling 组。VPC 中 Auto Scaling 组的工作原理与它在 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 用户指南 中的Dedicated Instances。有关定价信息,请参阅 Amazon EC2 Dedicated Instances

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

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

未指定

共享租期实例

专用实例

default

共享租期实例

专用实例

dedicated

专用实例

专用实例

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

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

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

Copy
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 实例与 VPC 中的实例通过私有 IP 地址进行通信。有关更多信息,请参阅 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。如果您是首次接触 Auto Scaling,您将看到欢迎页面。选择 Create Auto Scaling group

  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 组,然后选择 ActionsEdit

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

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

使用 AWS CLI 将 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 中创建的安全组。

    Copy
    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 命令:

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

    或者,您也可以为通过 create-auto-scaling-group 创建的新 Auto Scaling 组使用此启动配置。

示例

有关示例,请参阅以下教程: