本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
创建启动配置
重要
您不能CreateLaunchConfiguration
使用 2022 年 12 月 31 日之后发布的新 Amazon EC2 实例类型进行调用。此外,2023 年 6 月 1 日及之后创建的任何新账户都无法选择通过控制台创建新的启动配置。从 2024 年 10 月 1 日起,新账户将无法使用控制台、API、CLI 和 CloudFormation创建新的启动配置。迁移到启动模板以确保您现在或将来都不需要创建新的启动配置。有关为自动扩缩组创建启动模板的更多信息,请参阅 将自动扩缩组迁移到启动模板。
本主题描述了如何创建启动配置。
创建启动配置后,您无法对其进行修改。相反,必须创建新的启动配置。
要将新的启动配置与现有自动扩缩组相关联,请参阅更改 Auto Scaling 组的启动配置。要创建新自动扩缩组,请参阅使用启动配置创建 Auto Scaling 组。
创建启动配置
创建启动配置(控制台)
打开 Amazon EC2 控制台,网址为https://console.aws.amazon.com/ec2/
。 -
在顶部导航栏上,选择您所在 Amazon 的地区。
-
在左侧导航窗格的自动扩缩下方,选择自动扩缩组。
-
在页面顶部附近,选择启动配置。当提示您确认时,选择查看启动配置以确认您要查看启动配置页面。
-
选择创建启动配置,然后为您的启动配置输入名称。
-
对于 Amazon Machine Image (AMI),选择 AMI。要查找特定 AMI,您可以查找合适的 AMI,记下其 ID,然后输入 ID 作为搜索条件。
要获取 Amazon Linux 2 AMI 的 ID,请执行以下操作:
-
打开 Amazon EC2 控制台,网址为https://console.aws.amazon.com/ec2/
。 -
在导航窗格中的 实例下,选择 实例,然后选择 启动实例。
-
在选择 Amazon Machine Image 页面的 Quick Start 选项卡上,请注意 Amazon Linux 2 AMI (HVM) 旁边的 AMI 的 ID。
-
-
对于实例类型,为您的实例选择硬件配置。
-
在其他配置下,请注意以下字段:
-
(可选)对于购买选项,您可以选择请求竞价型实例以按需价格为上限的 Spot 价格请求竞价型实例。(可选)您可以指定您的竞价型实例的每实例小时最高价。
注意
如果您能灵活控制应用程序的运行时间并且应用程序可以中断,那么相对于按需型实例,竞价型实例是经济实惠之选。有关更多信息,请参阅 为容错和灵活的应用程序请求竞价型实例。
-
(可选)对于 IAM 实例配置文件,选择要与实例关联的角色。有关更多信息,请参阅 适用于在 Amazon EC2 实例上运行的应用程序的 IAM 角色。
-
(可选)对于监控,选择是否允许实例每隔 1 分钟向 Amazon 发布指标数据, CloudWatch 方法是启用详细监控。将收取额外费用。有关更多信息,请参阅 配置 Auto Scaling 实例的监控。
-
(可选)对于高级详细信息、用户数据,您可以指定用户数据在启动过程中配置实例或在实例启动后运行配置脚本。
-
(可选)对于高级详细信息、IP 地址类型,选择是否将公有 IP 地址分配到组的实例。如果未设置值,则原定设置为使用启动实例的子网的自动分配公有 IP 设置。
-
-
(可选)对于存储(卷),如果您不需要额外存储,则可以跳过此部分。否则,除了 AMI 指定的卷以外,要指定要附加到实例的卷,请选择添加新卷。然后选择所需的选项和设备、快照、大小、卷类型、IOPS、吞吐量、终止时删除和已加密的关联值。
-
对于安全组,创建或选择要与组实例关联的安全组。如果您将创建新安全组选项保留为选中状态,则会为运行 Linux 的 Amazon EC2 实例配置默认 SSH 规则。为运行 Windows 的亚马逊 EC2 实例配置了默认 RDP 规则。
-
对于密钥对(登录),请选择密钥对选项下的选项。
如果您已经配置了 Amazon EC2 实例密钥对,则可以在此处进行选择。
如果您还没有 Amazon EC2 实例密钥对,请选择创建新的密钥对并为其指定一个可识别的名称。选择下载密钥对以将密钥对下载到您的计算机。
重要
如果需要连接到您的实例,不要选择在没有密钥对的情况下继续。
-
选中确认复选框,然后选择 Create launch configuration(创建启动配置)。
从现有启动配置创建启动配置(控制台)
打开 Amazon EC2 控制台,网址为https://console.aws.amazon.com/ec2/
。 -
在顶部导航栏上,选择您所在 Amazon 的地区。
-
在左侧导航窗格的自动扩缩下方,选择自动扩缩组。
-
在页面顶部附近,选择启动配置。当提示您确认时,选择查看启动配置以确认您要查看启动配置页面。
-
选择启动配置,选择 Actions(操作),然后单击 Copy launch configuration(复制启动配置)。这将设置与原启动配置选项相同的新启动配置,但在名称中会增加“Copy”文本。
-
在 Copy Launch Configuration(复制启动配置)页面上,根据需要编辑配置选项,然后选择 Create launch configuration(创建启动配置)。
使用命令行创建启动配置
您可以使用以下任一命令:
-
create-launch-configuration
(Amazon CLI) -
新增-ASLaunch 配置 (Amazon Tools for Windows PowerShell)
配置实例元数据选项
Amazon A EC2 uto Scaling 支持在启动配置中配置实例元数据服务 (IMDS)。这使您可以选择使用启动配置将 Auto Scaling 组中的 Amazon EC2 实例配置为需要实例元数据服务版本 2 (IMDSv2),这是一种用于请求实例元数据的面向会话的方法。有关优势 IMDSv2的详细信息,请参阅 Amazon 博客上的这篇文章,内容涉及为 EC2 实例元数据服务添加深度防御的增强功能
您可以将 IMDS 配置为同时支持 IMDSv2 和 IMDSv1 (默认),或者要求使用。 IMDSv2如果您使用 Amazon CLI 或其中一个 SDKs 来配置 IMDS,则必须使用最新版本的 Amazon CLI 或 SDK 才能要求使用。 IMDSv2
您可以针对以下内容配置启动配置:
-
要求在请求实例元数据 IMDSv2 时使用
-
指定
PUT
响应跃点限制 -
关闭对实例元数据的访问
您可以在以下主题中找到有关配置实例元数据服务的更多详细信息:Amazon EC2 用户指南中的配置实例元数据服务。
使用以下步骤在启动配置中配置 IMDS 选项。创建启动配置后,您可以将其与 Auto Scaling 组关联。如果将启动配置与现有 Auto Scaling 组关联,现有启动配置将与 Auto Scaling 组取消关联,并且现有实例需要替换才能使用您在新启动配置中指定的 IMDS 选项。有关更多信息,请参阅 更改 Auto Scaling 组的启动配置。
在启动配置中配置 IMDS(控制台)
打开 Amazon EC2 控制台,网址为https://console.aws.amazon.com/ec2/
。 -
在顶部导航栏上,选择您所在 Amazon 的地区。
-
在左侧导航窗格的自动扩缩下方,选择自动扩缩组。
-
在页面顶部附近,选择启动配置。当提示您确认时,选择查看启动配置以确认您要查看启动配置页面。
-
选择创建启动配置,然后按照常规方式创建启动配置。包括 Amazon Machine Image (AMI) 的 ID、实例类型和可选的密钥对、一个或多个安全组以及实例的任何其他EBS 卷或实例存储卷。
-
要为与此启动配置关联的所有实例配置实例元数据选项,请在其他配置中的高级详细信息下,执行以下操作:
-
对于元数据可访问,选择是启用还是禁用对实例元数据服务的 HTTP 终端节点的访问。预设情况下,将启用 HTTP 终端节点。如果您选择禁用终端节点,则会关闭对实例元数据的访问。 IMDSv2 只有在启用 HTTP 终端节点时,您才能指定需要的条件。
-
对于元数据版本,您可以选择在请求实例元数据时要求使用实例元数据服务版本 2 (IMDSv2)。如果未指定值,则默认为同时支持 IMDSv1 和 IMDSv2。
-
对于元数据标记响应跃点限制,您可以为元数据标记设置允许的网络跃点数。如果您未指定值,则原定设置为 1。
-
-
完成后,选择创建启动配置。
要要求在启动配置 IMDSv2 中使用,请使用 Amazon CLI
使用以下create-launch-configuration--metadata-options
将设置为HttpTokens=required
。在为 HttpTokens
指定值时,还必须将 HttpEndpoint
设置为已启用。由于元数据检索请求将安全令牌标头设置为必填项,因此在请求实例元数据 IMDSv2 时会选择要求使用。
aws autoscaling create-launch-configuration \ --launch-configuration-name
my-lc-with-imdsv2
\ --image-idami-01e24be29428c15b2
\ --instance-typet2.micro
\ ... --metadata-options "HttpEndpoint=enabled,HttpTokens=required"
关闭对实例元数据的访问
使用以下create-launch-configuration
aws autoscaling create-launch-configuration \ --launch-configuration-name
my-lc-with-imds-disabled
\ --image-idami-01e24be29428c15b2
\ --instance-typet2.micro
\ ... --metadata-options "HttpEndpoint=disabled"
使用 EC2 实例创建启动配置
您还可以选择使用正在运行的 EC2 实例的属性来创建启动配置。
从头开始创建启动配置和从现有 EC2 实例创建启动配置有区别。如果从头创建启动配置,需要指定映像 ID、实例类型、可选资源(如存储设备)和可选设置(如监控)。当您从正在运行的实例创建启动配置时,Amazon A EC2 uto Scaling 会从指定实例中获取启动配置的属性。属性也可能来自从中启动实例的 AMI 的块储存设备映射,从而忽略在启动后添加的任何其他块储存设备。
如果使用正在运行的实例创建启动配置,可以通过将以下属性指定为相同请求的一部分,来覆盖这些属性:AMI、块储存设备、密钥对、实例配置文件、实例类型、内核、实例监控、部署租用、虚拟磁盘、安全组、最高 Spot 价格、用户数据、该实例是否有公有 IP 地址,以及该实例是否经过了 EBS 优化。
注意
如果指定的实例具有启动配置当前不支持的属性,则 Auto Scaling 组启动的实例可能与原始 EC2 实例不同。
重要
用于启动指定实例的 AMI 必须仍然存在。
从 EC2 实例创建启动配置 (Amazon CLI)
可以使用以下 create-launch-configuration
aws autoscaling create-launch-configuration --launch-configuration-name
my-lc-from-instance
--instance-idi-a8e09d9c
您可以使用以下describe-launch-configurations
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 A EC2 uto Scaling 使用您指定的 EC2 实例中的属性来创建启动配置。不过,块储存设备来自用于启动实例的 AMI,而不是来自实例。要将块储存设备添加到启动配置,请覆盖该启动配置的块储存设备映射。
使用以下create-launch-configuration
aws autoscaling create-launch-configuration --launch-configuration-name
my-lc-from-instance-bdm
--instance-idi-a8e09d9c
\ --block-device-mappings "[{\"DeviceName\":\"/dev/sda1
\",\"Ebs\":{\"SnapshotId\":\"snap-3decf207
\"}},{\"DeviceName\":\"/dev/sdf
\",\"Ebs\":{\"SnapshotId\":\"snap-eed6ac86
\"}}]"
使用以下describe-launch-configurations
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 A EC2 uto Scaling 使用您指定的 EC2 实例中的属性来创建启动配置。根据您的要求,您可能需要覆盖实例中的属性并使用所需的值。例如,您可以覆盖实例类型。
使用以下create-launch-configurationt2.medium
)与实例类型不同(例如t2.micro
)。
aws autoscaling create-launch-configuration --launch-configuration-name
my-lc-from-instance-changetype
\ --instance-idi-a8e09d9c
--instance-typet2.medium
使用以下describe-launch-configurations
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
}
]
}