AWS Elastic Beanstalk
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

AWS Elastic Beanstalk 环境的 Amazon EC2 实例

当您创建 Web 服务器环境时,Elastic Beanstalk 会创建一个或多个 Amazon Elastic Compute Cloud (Amazon EC2) 虚拟机,它们配置为在您选择的平台上运行 Web 应用程序。

您环境中的 Auto Scaling 组将管理运行您的应用程序的 EC2 实例。对 Auto Scaling 组启动配置的更改需要替换所有实例,并将根据所配置的对象触发滚动更新不可变更新。有关配置环境的 Auto Scaling 组的详细信息,请参阅配置您的环境的 Auto Scaling 组

配置您环境的 EC2 实例

您可在 Elastic Beanstalk 控制台中修改 Elastic Beanstalk 环境的 Auto Scaling 组配置。

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

  1. 打开 Elastic Beanstalk 控制台

  2. 导航到您的环境的管理页

  3. 选择 Configuration

  4. 实例配置卡上,选择修改

可供使用的设置如下。

实例类型

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

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

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

AMI ID

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

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

监控间隔

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

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

根卷 (引导设备)

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

您可以修改根卷类型来使用机械硬盘存储或者预配置的 IOPS SSD 卷类型,并可根据需要增加卷大小。对于预配置 IOPS 卷,您还必须选择要预配置的 IOPS 数量。选择能满足您的性能和价格要求的卷类型。

有关更多信息,请参阅 Amazon EBS 卷类型Amazon EBS 产品详细信息

安全组

附加到您实例的安全组确定了允许哪些流量到达实例 (传入),以及允许哪些流量离开实例 (传出)。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 安全组的更多信息,请参阅 Amazon Elastic Compute Cloud 用户指南 中的 Amazon EC2 安全组

aws:autoscaling:launchconfiguration 命名空间

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

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

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

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

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