您的 Elastic Beanstalk 环境的 Amazon EC2 实例 - AWS Elastic Beanstalk

您的 Elastic Beanstalk 环境的 Amazon EC2 实例

在创建 Web 服务器环境时,AWS Elastic Beanstalk 会创建一个或多个 Amazon Elastic Compute Cloud (Amazon EC2) 虚拟机(称作实例)。

配置环境中的实例以便在您选择的平台上运行 Web 应用程序。您可以在环境创建期间、在正在运行的环境上创建实例之后,或者作为部署到环境的源代码的一部分对环境实例的各种属性和行为进行更改。有关详细信息,请参阅配置选项

注意

您环境中的 Auto Scaling 组将管理运行应用程序的 Amazon EC2 实例。当您进行本页所述的配置更改时,启动配置(Amazon EC2 启动模板或 Auto Scaling 组启动配置资源)将发生更改。此更改需要替换所有实例,并触发滚动更新不可变更新,具体取决于配置。

在创建环境期间,您可以选 实例类型来确定用于运行实例的主机的硬件。Elastic Beanstalk 在 Amazon EC2 推出新实例类型后不久便能支持这些实例类型,通常是在下一次平台更新之前。

Elastic Beanstalk 支持多种 Amazon EC2 实例购买选项按需实例预留实例Spot 实例。按需实例是一种按使用付费的资源 - 使用时不需要长期承诺。预留实例是对环境中的匹配按需实例自动应用的预购账单折扣。Spot 实例是一种未使用的 Amazon EC2 实例,以低于按需价格提供。您可以通过设置单个选项在环境中启用 Spot 实例。您可以通过使用其他选项来配置 Spot 实例使用,包括混合使用按需实例和 Spot 实例。有关更多信息,请参阅Auto Scaling 组

配置您环境的 Amazon EC2 实例

您可以在 Elastic Beanstalk 控制台中修改 Elastic Beanstalk 环境的 Amazon EC2 实例配置。

在 Elastic Beanstalk 控制台中配置 Amazon EC2 实例

  1. 打开 Elastic Beanstalk 控制台,然后在 Regions (区域) 列表中选择您的 AWS 区域。

  2. 在导航窗格中,选择 Environments (环境),然后从列表中选择环境的名称。

    注意

    如果您有多个环境,请使用搜索栏筛选环境列表。

  3. 在导航窗格中,选择 Configuration (配置)

  4. Instances (实例) 配置类别中,选择 Edit (编辑)。对此类别中的设置进行更改,然后选择应用。有关设置说明,请参阅本页上的实例类别设置部分。

  5. Capacity (容量) 配置类别中,选择 Edit (编辑)。对此类别中的设置进行更改,然后选择继续。有关设置说明,请参阅本页上的容量类别设置部分。

实例类别设置

以下与 Amazon EC2 实例相关的设置在 Instances (实例) 配置类别中提供。


          Elastic Beanstalk 实例配置窗口上的 Amazon EC2 实例设置

监控间隔

默认情况下,您环境中的实例按 5 分钟的间隔将基本运行状况指标发送到 Amazon CloudWatch,不需要额外付费。

如需更详细的报告,您可以将 Monitoring interval (监控时间间隔) 设为 1 minute (1 分钟),以提高环境中的资源将基本运行状况指标发布到 CloudWatch 的频率。一分钟时间间隔指标会产生 CloudWatch 服务费用。有关更多信息,请参阅 Amazon CloudWatch

根卷(引导设备)

您的环境中的每个实例都配置了根卷。根卷是附加到实例的 Amazon EBS 块设备,用于存储操作系统、库、脚本以及您的应用程序源代码。默认情况下,所有平台为存储使用通用 SSD 块储存设备。

您可以修改根卷类型来使用机械硬盘存储或者预配置的 IOPS SSD 卷类型,并可根据需要增加卷大小。对于预配置 IOPS 卷,您还必须选择要预配置的 IOPS 数量。吞吐量仅适用于 gp3 固态硬盘卷类型。您可以输入要预置的所需吞吐量。它的范围可以在每秒 125 到 1000 兆字节之间 (MiB/s)。选择能满足您的性能和价格要求的卷类型。

有关更多信息,请参阅适用于 Linux 实例的 Amazon EC2 用户指南 中的 Amazon EBS 卷类型Amazon EBS 产品详细信息

实例元数据服务

实例元数据服务 (IMDS) 是实例上的组件,在实例上进行编码,用于安全访问实例元数据。代码可以使用以下两种方法之一从正在运行的实例访问实例元数据:实例元数据服务版本 1 (IMDSv1) 或实例元数据服务版本 2 (IMDSv2)。IMDSv2 更加安全。禁用 IMDSv1 以强制实施 IMDSv2。有关详细信息,请参阅在环境实例上配置实例元数据服务

注意

此配置页面上的 IMDS 部分仅为支持 IMDSv2 的平台版本显示。

安全组

附加到您实例的安全组确定了允许哪些流量到达实例 (传入),以及允许哪些流量离开实例 (传出)。Elastic Beanstalk 会创建一个允许来自负载均衡器上标准端口 HTTP (80) 和 HTTPS (443) 流量的安全组。

您可以指定自己创建的其他安全组,允许来自其他端口或其他来源的流量。例如,您可以为 SSH 访问创建安全组,允许来自限定 IP 地址范围的端口 22 上的传入流量;或者为了增强安全性,允许只有您有访问权限的堡垒主机的流量。

注意

要允许环境 A 的实例与环境 B 的实例之间的流量,可向 Elastic Beanstalk 附加到环境 B 的安全组中添加一个规则,并指定 Elastic Beanstalk 附加到环境 A 的安全组。这样就允许流量流入或流出环境 A 的实例。但是,这样做会在两个安全组之间建立依赖关系。如果之后尝试终止环境 A,Elastic Beanstalk 将无法删除该环境的安全组,因为环境 B 的安全组依赖于它。

更安全的方法是,创建一个单独的安全组,将其附加到环境 A,并在环境 B 的安全组规则中指定该安全组。

有关 Amazon EC2 安全组的更多信息,请参阅适用于 Linux 实例的 Amazon EC2 用户指南 中的 Amazon EC2 安全组

容量类别设置

以下与 Amazon EC2 实例相关的设置在 Capacity (容量) 配置类别中提供。


          Elastic Beanstalk 容量配置窗口上的 Amazon EC2 实例设置

实例类型

Instance type (实例类型) 设置确定启动用于运行您应用程序的 Amazon EC2 实例类型。选择充分配置的实例来运行具有高负载的应用程序,但配置不要过高以至于大部分时间空闲。对于开发用途,t2 系列的实例提供了中等处理能力,能够在短时间内突增。

对于大规模、需要高可用性的应用程序,使用实例池来确保单个实例出现故障时,容量不会受到显著影响。首先使用允许您在正常时间的中等负载下运行五个实例的实例类型。如果任何实例失败,剩下实例可以接管剩余流量。通过容量缓冲区,当流量在高峰时间增长时,环境还可以扩展。

有关 Amazon EC2 实例系列和类型的更多信息,请参阅适用于 Linux 实例的 Amazon EC2 用户指南 中的实例类型

当为环境启用 Spot 实例请求时,此配置页面将显示实例类型列表,而不是单个设置。您可以为 Spot 实例选择一个或多个实例类型。有关详细信息,请参阅Spot 实例支持

AMI ID

Amazon 系统映像 (AMI) 是 Elastic Beanstalk 用于在您的环境中启动 Amazon EC2 实例的 Amazon Linux 或 Windows Server 系统映像。Elastic Beanstalk 提供包含运行您的应用程序所需的工具和资源的系统映像。

Elastic Beanstalk 根据您选择的区域、平台和实例类型选择适用于您的环境的默认 AMI。如果您创建了自定义 AMI,则使用您的 AMI ID 替换默认的 AMI ID。

aws:autoscaling:launchconfiguration 命名空间

您可以使用 aws:autoscaling:launchconfiguration 命名空间中的配置选项来配置您的环境实例,其中包括未在控制台中提供的附加选项。

以下配置文件示例配置本主题中介绍的基本选项、IMDS 中讨论的选项 DisableIMDSv1安全性 中讨论的选项 EC2KeyNameIamInstanceProfile 以及控制台中未提供的附加选项 BlockDeviceMappings

option_settings: aws:autoscaling:launchconfiguration: InstanceType: m1.small SecurityGroups: my-securitygroup MonitoringInterval: "1 minute" DisableIMDSv1: false EC2KeyName: my-keypair IamInstanceProfile: "aws-elasticbeanstalk-ec2-role" BlockDeviceMappings: "/dev/sdj=:100,/dev/sdh=snap-51eef269,/dev/sdb=ephemeral0"

BlockDeviceMappings 可让您为实例配置附加块设备。有关更多信息,请参阅适用于 Linux 实例的 Amazon EC2 用户指南 中的块存储设备映射

注意

InstanceType 选项已过时。它被 InstanceTypes 命名空间中更新、功能更强大的 aws:ec2:instances 选项所取代。新选项允许您为环境指定一个或多个实例类型的列表。该列表上的第一个值等于此处描述的 InstanceType 命名空间中包含的 aws:autoscaling:launchconfiguration 选项的值。指定实例类型的建议方法是使用新选项。如果指定,则新选项优先于旧选项。有关更多信息,请参阅aws:ec2:instances 命名空间

EB CLI 和 Elastic Beanstalk 控制台会对前面的选项应用建议的值。如果您需要使用配置文件来配置相同的项,则必须删除这些设置。有关更多信息,请参阅 建议值