使用 EC2 实例创建启动配置 - Amazon EC2 Auto Scaling
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 EC2 实例创建启动配置

Amazon EC2 Auto Scaling 为您提供了一个选项,可使用正在运行的 EC2 实例中的属性创建启动配置。

如果指定的实例有启动配置当前不支持的属性,则 Auto Scaling 组启动的实例可能不同于原始 EC2 实例。

从头创建启动配置和从现有 EC2 实例创建启动配置之间存在差异。如果从头创建启动配置,需要指定映像 ID、实例类型、可选资源(如存储设备)和可选设置(如监控)。从运行的实例中创建启动配置时,Amazon EC2 Auto Scaling 从指定的实例中派生启动配置的属性。属性也可能来自从中启动实例的 AMI 的块储存设备映射,从而忽略在启动后添加的任何其他块储存设备。

使用正在运行的实例创建启动配置时,您可以通过将以下属性指定为同一请求的一部分来覆盖这些属性:AMI、块储存设备、key pair、密钥对、实例配置文件、实例类型、内核、实例监控、实例监控、放置租期、安全组、Spot(最高)价、用户数据、实例是否具有公有 IP 地址以及实例是否已经 EBS 优化。

提示

您可以直接从 EC2 实例创建 Auto Scaling 组. 当您使用此功能时,Amazon EC2 Auto Scaling 还会自动为您创建启动配置。

以下示例介绍如何从 EC2 实例创建启动配置。

使用 EC2 实例创建启动配置

要使用现有 EC2 实例的属性创建启动配置,请指定该实例的 ID。

重要

用于启动指定实例的 AMI 必须仍然存在。

从 EC2 实例创建启动配置(控制台)

您可以使用该控制台从运行中的 EC2 实例中创建启动配置和 Auto Scaling 组,并将该实例添加到新的 Auto Scaling 组。有关更多信息,请参阅 将 EC2 实例附加到 Auto Scaling 组

从 EC2 实例创建启动配置 (Amazon CLI)

请使用以下create-launch-configure命令从实例中创建启动配置,它使用与实例相同的属性。将忽略在启动后添加的任何块储存设备。

aws autoscaling create-launch-configuration --launch-configuration-name my-lc-from-instance --instance-id i-a8e09d9c

您可以使用以下describe-launch-configure命令描述启动配置,并确认其属性与实例的属性相匹配。

aws autoscaling describe-launch-configurations --launch-configuration-names my-lc-from-instance

以下为响应示例。

{ "LaunchConfigurations": [ { "UserData": null, "EbsOptimized": false, "LaunchConfigurationARN": "arn", "InstanceMonitoring": { "Enabled": false }, "ImageId": "ami-05355a6c", "CreatedTime": "2014-12-29T16:14:50.382Z", "BlockDeviceMappings": [], "KeyName": "my-key-pair", "SecurityGroups": [ "sg-8422d1eb" ], "LaunchConfigurationName": "my-lc-from-instance", "KernelId": "null", "RamdiskId": null, "InstanceType": "t1.micro", "AssociatePublicIpAddress": true } ] }

从实例创建启动配置并覆盖块储存设备 (Amazon CLI)

默认情况下,Amazon EC2 Auto Scaling 使用您指定的 EC2 实例中的属性创建启动配置。不过,块储存设备来自用于启动实例的 AMI,而不是来自实例。要将块储存设备添加到启动配置,请覆盖该启动配置的块储存设备映射。

重要

用于启动指定实例的 AMI 必须仍然存在。

创建启动配置并覆盖块设备

请使用以下create-launch-configure命令创建启动配置,它使用 EC2 实例但具有自定义块储存设备映射。

aws autoscaling create-launch-configuration --launch-configuration-name my-lc-from-instance-bdm --instance-id i-a8e09d9c \ --block-device-mappings "[{\"DeviceName\":\"/dev/sda1\",\"Ebs\":{\"SnapshotId\":\"snap-3decf207\"}},{\"DeviceName\":\"/dev/sdf\",\"Ebs\":{\"SnapshotId\":\"snap-eed6ac86\"}}]"

请使用以下describe-launch-configure命令描述启动配置,并确认它使用您的自定义块储存设备映射。

aws autoscaling describe-launch-configurations --launch-configuration-names my-lc-from-instance-bdm

下面的示例响应描述了该启动配置。

{ "LaunchConfigurations": [ { "UserData": null, "EbsOptimized": false, "LaunchConfigurationARN": "arn", "InstanceMonitoring": { "Enabled": false }, "ImageId": "ami-c49c0dac", "CreatedTime": "2015-01-07T14:51:26.065Z", "BlockDeviceMappings": [ { "DeviceName": "/dev/sda1", "Ebs": { "SnapshotId": "snap-3decf207" } }, { "DeviceName": "/dev/sdf", "Ebs": { "SnapshotId": "snap-eed6ac86" } } ], "KeyName": "my-key-pair", "SecurityGroups": [ "sg-8637d3e3" ], "LaunchConfigurationName": "my-lc-from-instance-bdm", "KernelId": null, "RamdiskId": null, "InstanceType": "t1.micro", "AssociatePublicIpAddress": true } ] }

创建启动配置并覆盖实例类型 (Amazon CLI)

默认情况下,Amazon EC2 Auto Scaling 会使用您指定的 EC2 实例中的属性创建启动配置。根据您的要求,您可能需要覆盖实例中的属性并使用所需的值。例如,您可以覆盖实例类型。

重要

用于启动指定实例的 AMI 必须仍然存在。

创建启动配置并覆盖实例类型

请使用以下create-launch-configure命令创建启动配置,它使用 EC2 实例但具有不同实例类型(例如t2.medium)而不是实例(例如t2.micro)。

aws autoscaling create-launch-configuration --launch-configuration-name my-lc-from-instance-changetype \ --instance-id i-a8e09d9c --instance-type t2.medium

请使用以下describe-launch-configure命令描述启动配置,并确认覆盖了实例类型。

aws autoscaling describe-launch-configurations --launch-configuration-names my-lc-from-instance-changetype

下面的示例响应描述了该启动配置。

{ "LaunchConfigurations": [ { "UserData": null, "EbsOptimized": false, "LaunchConfigurationARN": "arn", "InstanceMonitoring": { "Enabled": false }, "ImageId": "ami-05355a6c", "CreatedTime": "2014-12-29T16:14:50.382Z", "BlockDeviceMappings": [], "KeyName": "my-key-pair", "SecurityGroups": [ "sg-8422d1eb" ], "LaunchConfigurationName": "my-lc-from-instance-changetype", "KernelId": "null", "RamdiskId": null, "InstanceType": "t2.medium", "AssociatePublicIpAddress": true } ] }