开始免费使用 AWS

创建免费账户
或登录到控制台

获得 12 个月的 AWS 免费使用套餐,同时享受 AWS 的基本支持功能,包括全年全天候无休客户服务、支持论坛及更多。

问:什么是 AWS Elastic Beanstalk?
AWS Elastic Beanstalk 让开发人员能够更加轻松地在 AWS 云中快速部署和管理应用程序。开发人员只需上传应用程序,Elastic Beanstalk 将自动处理容量预配置、负载均衡、Auto Scaling 和应用程序运行状况监控的部署细节。

问:哪些用户应该使用 AWS Elastic Beanstalk?
希望在 AWS 云中快速部署和管理应用程序的用户。无需熟悉云计算即可使用该服务。AWS Elastic Beanstalk 支持 Java、.NET、PHP、Node.js、Python、Ruby、Go 和 Docker Web 应用程序。

问:AWS Elastic Beanstalk 支持哪些语言和开发堆栈?
AWS Elastic Beanstalk 支持以下语言和开发堆栈:

  • 适用于 Jave 应用程序的 Apache Tomcat
  • 适用于 PHP 应用程序的 Apache HTTP Server
  • 适用于 Python 应用程序的 Apache HTTP Server
  • Node.js 应用程序的 Nginx 或 Apache HTTP 服务器
  • 适用于 Ruby 应用程序的 Passenger 或 Puma
  • 适用于 .NET 应用程序的 Microsoft IIS 7.5、8.0 和 8.5
  • Java SE
  • Docker
  • Go

请参阅支持的平台,查看支持的语言和开发堆栈的最新完整列表。

问:AWS Elastic Beanstalk 是否还支持其他语言?
是。AWS Elastic Beanstalk 经过精心设计,以便将来可以扩展支持多种开发堆栈和编程语言。AWS 正在与解决方案提供商合作创建其他 Elastic Beanstalk 服务所需的 API 和功能。

问:使用 AWS Elastic Beanstalk,开发人员现在可以实现哪些以前无法实现的事情?
通过创建一种运行某版应用程序的环境,AWS Elastic Beanstalk 可自动执行容量预配置、负载均衡、Auto Scaling 和应用程序部署的细节。您只需上传自己可部署的代码 (如 WAR 文件),剩余工作则可由 AWS Elastic Beanstalk 执行。借助 AWS Toolkit for Visual Studio 和 AWS Toolkit for Eclipse,即可将应用程序部署到 AWS Elastic Beanstalk 并进行管理,而不必退出 IDE。一旦应用程序运行,Elastic Beanstalk 将自动执行监控、应用程序版本部署、基本运行状况检查等管理任务,并促进日志文件访问。使用 Elastic Beanstalk,开发人员可以专注于开发应用程序,无须再处理配置服务器、设置负载均衡或管理扩展等面向部署的任务。

问:AWS Elastic Beanstalk 与现有的应用程序容器或平台即服务解决方案有何不同?
大多数现有的应用程序容器或平台即服务解决方案在减少所需的编程量的同时,会大大降低开发人员的灵活性和控制。开发人员需要集中关注供应商预先确定的所有解决方案,很少能够对其应用程序基础设施的各个部分采取控制。而使用 AWS Elastic Beanstalk,开发人员可保留对支持其应用程序的 AWS 资源的完全控制。如果开发人员决定要管理基础设施的某些(或全部)元素,可使用 Elastic Beanstalk 的管理功能无缝操作。

问:使用 AWS Elastic Beanstalk 可以控制应用程序的哪些元素?
使用 AWS Elastic Beanstalk,您可以:

  • 选择与您的应用程序要求相匹配的操作系统(例如,Amazon Linux 或 Windows Server 2012 R2)
  • 从若干可用的数据库和存储选项中选择
  • 实现登录访问 Amazon EC2 实例,从而即时直接排除故障
  • 通过在多个可用区域运行,快速提高应用程序可靠性
  • 通过在负载均衡器上启用 HTTPS 协议,增强应用程序安全性
  • 访问内置 Amazon CloudWatch,监控和获取应用程序状况及其他重要事件的通知
  • 调整应用程序服务器设置 (如 JVM 设置) 和传送环境变量
  • 在 Amazon EC2 中并列运行其他应用程序组件,例如内存缓存服务
  • 不登录应用程序服务器而访问日志文件

问:哪些云资源可支持 AWS Elastic Beanstalk 应用程序?
AWS Elastic Beanstalk 使用如下经过证实的 AWS 功能和服务来创建运行应用程序的环境:Amazon EC2、Amazon RDS、Elastic Load Balancing、Auto Scaling、Amazon S3 和 Amazon SNS。当前版本的 AWS Elastic Beanstalk 采用 Amazon Linux AMI 或 Windows Server 2012 R2 AMI。

问:AWS Elastic Beanstalk 支持哪种应用程序?
AWS Elastic Beanstalk 支持 Java、.NET、PHP、Node.js、Python、Ruby、Go 以及 Docker,是 Web 应用程序的理想之选。不过,鉴于 Elastic Beanstalk 为开放式架构,也可使用 Elastic Beanstalk 来部署非 Web 应用程序。预计将来还会支持其他应用程序类型和编程语言。请参阅支持的平台,了解更多信息。

问:AWS Elastic Beanstalk 采用哪种操作系统?
AWS Elastic Beanstalk 可在 Amazon Linux AMI 和 Windows Server 2012 R2 AMI 中运行。这两种 AMI 均受 Amazon Web Services 支持并由其进行维护,旨在为 Amazon EC2 云计算提供稳定、安全和高性能的执行环境。

问:应用程序能够多快开始运行?
通常需要花几分钟时间来创建运行应用程序的 AWS 资源,时间从您上传您的应用程序版本 (例如,WAR 文件、ASP.NET 文件、Node.js 文件、PHP 文件、Python 文件或 Ruby 文件) 开始计算,到应用程序完全部署可供用户访问时结束。所需时间取决于很多元素,包括部署代码的大小及将部署的应用程序服务器数量。

问:应用程序能够多快得到更新?
将新应用程序版本部署到现有资源 (例如环境) 的速度非常快 (通常不到一分钟),主要取决于新应用程序版本的大小。

问:应用程序能多快进行扩展?
AWS Elastic Beanstalk 使用 Auto Scaling 提供真正的弹性环境。您的应用程序可以配置为自动根据 CPU 使用率或网络带宽等阈值扩展数十或数百倍。使用 Elastic Beanstalk 控制台可以轻松为您特定的应用程序配置这些阈值。使用 Elastic Beanstalk,则无需担心是否能够快速扩展来处理高峰流量或用户,也不必担心是否会被迫为不需要的资源付费。

问:是否可以同时运行多个应用程序版本?
可以。AWS Elastic Beanstalk 可用于支持多个运行环境,例如,一个用于集成测试,一个用于前期生产,一个用于生产。每个环境可独立配置并在其独自的 AWS 资源中运行。此外,Elastic Beanstalk 还能随时间推移存储和跟踪应用程序版本,以便可以轻松将现有环境回滚到早期版本,或使用早期版本启动新环境来尝试和再现客户问题。

问:使用 AWS Elastic Beanstalk 可以运行多少个应用程序?
您可以创建多达 75 个应用程序和 1000 个应用程序版本。默认情况下,您可以对所有应用程序运行多达 200 个环境。如果在 AWS Elastic Beanstalk 之外还使用有 AWS,则可能无法创建 10 个环境,因为可能会很快达到其他限制。例如,默认的 AWS 账户限制允许您启动多达 20 个 EC2 实例,并创建多达 10 个弹性负载均衡器。如果需要更多资源,请填写 AWS Elastic Beanstalk 申请表,系统将立即评估您的请求。

问:是否可以使用 AWS Elastic Beanstalk 来部署必须具有高可用性的应用程序?
可以。为此,您需要编辑环境配置设置,为“Auto Scaling”最小值选择 2 或以上个实例,并将多可用区设置为“Any 2”。设置 AWS 可用区域是为了外观上比较明确,故障独立,性能可靠。

问:如果应用程序停止响应请求,应该怎么办?
AWS Elastic Beanstalk 应用程序受到保护,以防底层基础设施出现故障。如果 Amazon EC2 实例由于任何原因出现故障,AWS Elastic Beanstalk 将采用 Auto Scaling 自动启动新的实例。此外,Elastic Beanstalk 还可以在底层基础设施看起来运行正常的情况下,检测应用程序是否不能响应自定义的 URL,并将其作为环境事件记录 (例如部署的版本错误),以便您采取相应的操作。

问:AWS Elastic Beanstalk 在哪些 AWS 地区可用?

请参阅区域性产品和服务,了解 Elastic Beanstalk 在不同区域的具体提供情况。

问:如何访问 AWS Elastic Beanstalk?
您可以使用 AWS 管理控制台、AWS Elastic Beanstalk 命令行界面 (CLI)、AWS Toolkit for Visual Studio、AWS Toolkit for Eclipse、AWS Elastic Beanstalk API 或 AWS 开发工具包。

问:是否可以使用 Eclipse 或 Microsoft Visual Studio 之类的集成开发环境?
可以。您可以使用 Eclipse 和 Visual Studio,将应用程序部署到 AWS Elastic Beanstalk。Java 应用程序可使用 AWS Toolkit for Eclipse,.NET 应用程序可使用 AWS Toolkit for Visual Studio。通过这些工具包,您可以开发应用程序,将其部署到 Elastic Beanstalk,甚至对其进行测试,而不必让工作重点离开 IDE。

 



问:如何注册 AWS Elastic Beanstalk?

要注册 AWS Elastic Beanstalk,请选择 Elastic Beanstalk 详细信息页面中的 Sign Up Now 按钮。您必须拥有 Amazon Web Services 账户才能访问此服务;如果还没有该账户,则在您开始 Elastic Beanstalk 过程时,系统将提示您创建一个账户。注册后,请参阅 AWS Elastic Beanstalk Getting Started Guide

问:注册 AWS Elastic Beanstalk 时为什么需要验证我的电话号码?

注册 AWS Elastic Beanstalk 要求您在 AWS 上登记您的有效电话号码和电子邮件地址,以便我们需要联系您时使用。验证您的电话号码只需要几分钟时间。注册过程中您会接到一个自动电话,然后您需要使用电话键盘输入 PIN 码。

问:注册后,如何开始使用?

开始使用 AWS Elastic Beanstalk 的最佳方法请参阅 AWS Elastic Beanstalk Getting Started Guide(技术文档的一部分)。只需几分钟时间,您即可设置和使用示例应用程序或上传自己的应用程序。

问:是否有示例应用程序可用来检查 AWS Elastic Beanstalk?

有。AWS Elastic Beanstalk 包括示例应用程序,可用来测试服务及试用其功能。

问:AWS Elastic Beanstalk 是否在 Amazon S3 中存储任何内容?

是。AWS Elastic Beanstalk 会在 Amazon S3 中存储您的应用程序文件及服务器日志文件 (可选)。如果使用 AWS 管理控制台、AWS Toolkit for Visual Studio 或 AWS Toolkit for Eclipse,系统会在您的账户中创建一个 Amazon S3 存储桶,并自动将您上传的文件从本地客户端复制到 Amazon S3。您还可以选择将 Elastic Beanstalk 配置为每小时复制服务器日志文件到 Amazon S3。通过编辑环境配置设置,可完成上述操作。

问:是否可以使用 Amazon S3 来存储图像之类的应用程序数据?

可以。可以使用 Amazon S3 来存储应用程序。最简单的方法是将 AWS 开发工具包作为应用程序可部署文件的一部分包括在内。例如,您可以将适用于 Java 的 AWS 开发工具包包括在应用程序 WAR 文件中。

问:AWS Elastic Beanstalk 可与哪些数据库解决方案一起使用?

AWS Elastic Beanstalk 不会限制您使用任何特定的数据持久化技术。您可以选择使用 Amazon Relational Database Service (Amazon RDS) 或 Amazon DynamoDB,也可以使用 Microsoft SQL Server、Oracle 或其他在 Amazon EC2 上运行的关系数据库。

问:如何设置数据库,以便将其用于 AWS Elastic Beanstalk?

Elastic Beanstalk 可以自动预置 Amazon RDS 数据库实例。应用程序可通过环境变量来了解有关数据库实例连接的信息。要详细了解如何为您的环境配置 RDS 数据库实例,请参阅《Elastic Beanstalk 开发人员指南》

问:这是否意味着,从测试转入生产时,我需要修改应用程序代码?

如果您使用 AWS Elastic Beanstalk,则无需修改。使用 Elastic Beanstalk,您可以在环境配置中指定连接信息。通过从应用程序代码中提取连接字符串,可以轻松地配置不同的 Elastic Beanstalk 环境来使用不同的数据库。

问:如何将应用程序设置为私有?

默认情况下,您的应用程序会在 myapp.elasticbeanstalk.com 中公开,可供任何用户访问。您可以使用 Amazon VPC 在您定义的虚拟网络中配置私有、隔离的应用程序部分。可通过特定的安全组规则、网络 ACL 和自定义路由表将该虚拟网络设置为私有。您还可以通过更改 EC2 安全组设置,轻松地控制是否向应用程序服务器传送其他传入流量 (如 SSH)。

问:是否能在 Virtual Private Cloud (VPC) 内运行我的应用程序?

可以。您可以在 VPC 内运行您的应用程序。有关更多详细信息,请参阅 AWS Elastic Beanstalk 开发人员指南

问:可在何处找到有关 AWS 安全性和在 AWS 上运行应用程序的更多信息?

有关 AWS 安全性的更多信息,请参阅 Amazon Web Services: Overview of Security Processes 文档,或访问我们的安全中心

问:Identity & Access Management (IAM) 是否可以与 AWS Elastic Beanstalk 一起使用?

可以。如果 IAM 用户具有相应的权限,可以立即与 AWS Elastic Beanstalk 交互。

问:为什么应将 IAM 与 AWS Elastic Beanstalk 一起使用?

IAM 允许您集中管理用户和组。您可以控制哪些 IAM 用户能够访问 AWS Elastic Beanstalk,并将操作员的权限限制为只读访问 Elastic Beanstalk,这样他们将不能对 Elastic Beanstalk 资源执行操作。您账户下的所有用户活动将汇总为一个 AWS 账单。

问:如何创建 IAM 用户?

您可以使用 IAM 控制台、IAM 命令行界面 (CLI) 或 IAM API 来预置 IAM 用户。默认情况下,IAM 用户在获得权限前不能访问 AWS 服务。

问:如何授与 IAM 用户对 AWS Elastic Beanstalk 的访问权限?

您可以使用策略授与 IAM 用户对服务的访问权限。要简化 AWS Elastic Beanstalk 访问权限的授与过程,您可以使用 IAM 控制台中的策略模板之一来提供帮助。Elastic Beanstalk 提供两种模板:只读访问权限模板和完整访问权限模板。只读模板授与对 Elastic Beanstalk 资源的读取权限。完整访问权限模板授予对所有 Elastic Beanstalk 操作的完整访问权限,还会授予对 Elastic Load Balancing、Auto Scaling 和 Amazon S3 等依赖性资源的管理权限。您也可以使用 AWS Policy Generator 来创建自定义策略。有关更多详细信息,请参阅 AWS Elastic Beanstalk Developer Guide

问:是否可以限制特定 AWS Elastic Beanstalk 资源的访问权限?

可以。您可以允许或拒绝对特定 AWS Elastic Beanstalk 资源(如应用程序、应用程序版本和环境)的访问。

问:谁负责为 IAM 用户创建的 AWS 资源付费?

IAM 用户在根账户下创建的所有资源归根账户所有,费用记入根账户。

问:哪些用户可以访问 IAM 用户启动的 AWS Elastic Beanstalk 环境?

根账户对任何 IAM 用户在该账户下启动的所有 AWS Elastic Beanstalk 环境具有完整的访问权限。如果使用 Elastic Beanstalk 模板向 IAM 用户授予只读权限,则该用户可以查看所有应用程序、应用程序版本、环境及该账户下关联的所有资源。如果使用 Elastic Beanstalk 模板向 IAM 用户授予完整访问权限,则该用户可以创建、修改和终止该账户下的任何 Elastic Beanstalk 资源。

问:IAM 用户是否可以访问 AWS Elastic Beanstalk 控制台?

可以。IAM 用户可以使用其用户名和密码访问 AWS Elastic Beanstalk 控制台。

问:IAM 用户是否可以调用 AWS Elastic Beanstalk API?

可以。IAM 用户可以使用其访问密钥和机密密钥执行使用 Elastic Beanstalk API 的操作。

问:IAM 用户是否可以使用 AWS Elastic Beanstalk 命令行接口?

可以。IAM 用户可以通过 AWS Elastic Beanstalk 命令行界面 (CLI) 使用其访问密钥和秘密密钥执行操作。

问:如何使运行自己应用程序的环境底层平台自动保持最新?

您可以选择让 AWS Elastic Beanstalk 环境在特定维护时段内自动更新为运行您应用程序的底层平台的最新版本。Elastic Beanstalk 会通过更新操作系统、Web 和应用程序服务器以及语言和框架来定期发布新版本的支持平台 (Java、PHP、Ruby、Node.js、Python、.NET、Go 和 Docker)。

问:如何开始执行托管平台更新?

要让 Elastic Beanstalk 自动管理您的平台更新,您必须在 Elastic Beanstalk 控制台的“Configuration”选项卡中启用托管平台更新,或者使用 EB CLI 或 API。启用该功能后,您便可配置允许的更新类型及更新时间。

问:托管平台更新适用于何种平台版本更新?

AWS Elastic Beanstalk 可以为新修补程序和次要平台版本自动执行平台更新。Elastic Beanstalk 不会自动执行主要平台版本更新 (例如 Java 7 Tomcat 7 到 Java 8 Tomcat 8),因为这些更新包含向后不兼容的更改,且需要进行额外测试。在这些情况下,您必须手动启动更新。

问:AWS Elastic Beanstalk 如何区分“主要”、“次要”和“修补程序”发布版本?

AWS Elastic Beanstalk 平台使用以下模式进行版本控制:MAJOR.MINOR.PATCH(例如 2.0.0)。各个部分按如下方式递增:

  • 存在不兼容的更改时,MAJOR 版本递增。
  • 存在以向后兼容方式添加的额外功能时,MINOR 版本递增。
  • 存在向后兼容的错误修复时,PATCH 版本递增。

问:何时以及如何执行主要版本更新?

您可以使用 AWS Elastic Beanstalk 管理控制台、API 或 CLI 随时执行主要版本更新。您可以使用以下选项来执行主要版本更新:

问:Elastic Beanstalk 如何应用托管平台更新?

使用不可变的部署机制应用更新,以确保在已安装更新的 Amazon EC2 的并行队列在可替换现有实例 (替换后会随即被终止) 之前,不对现有环境进行任何更改。此外,如果 Elastic Beanstalk 运行状况系统在更新期间检测到任何问题,则会将流量重定向至现有的实例队列,以最大限度地降低对应用程序最终用户的影响。

问:我的应用程序在维护时段内是否可用?

由于托管平台更新使用不可变的部署机制来执行更新,因此您的应用程序在维护时段内可用,并且用户也不会因为更新而受到影响。

问:使用托管平台更新时如何收费?

托管平台更新功能不收取额外费用。您只需为更新期间需要执行更新的额外 EC2 实例支付费用。

问:什么是维护时段?

维护时段指每周两个小时的时间段,在此期间,如果托管平台更新已启用且新平台版本已发布,则 AWS Elastic Beanstalk 将会启动平台更新。例如,如果您选择的维护时段开始于每个星期日的凌晨 2 点,则 AWS Elastic Beanstalk 将在每个星期日凌晨 2 点到 4 点之间启动平台更新。请注意,更新可能会在维护时段结束后完成,具体取决于您的应用程序配置。

维护时段是根据环境设置的,以便您针对不同的应用程序组件或应用程序设置不同的维护时段。这样一来,如果您不希望应用程序的多个组件同时更新,则可交错进行环境更新。如果您启用了托管平台更新但没有指定维护时段,则系统将为您的环境分配一个每周 2 小时的默认时段。如果您想更改系统代您执行维护的时间,只需在 AWS 管理控制台中修改,或使用 UpdateEnvironment API 修改托管更新配置即可。

问:我将如何收到有关可用新平台版本的通知?

您将通过 AWS 管理控制台、论坛公告和发行说明收到有关可用新平台版本的通知。

问:在哪里可以找到平台版本间变更的详细信息?

在 AWS Elastic Beanstalk 发行说明页面上可找到有关平台版本间变更的详细信息。

问:在进行托管更新期间,我能对环境执行哪些操作?

在进行托管更新期间,您只能执行“中止”这一项操作。执行此操作后,系统将立即停止更新并回退到上一版本。

问:如果在维护时段内发布了多个新版本,我的环境将会更新为哪个平台版本?

您的环境始终会根据您所选的级别(次要 + 修补程序或仅修补程序)更新为可用的最新版本。

问:在哪里可以找到已在我的环境中执行的所有托管平台更新的详细信息?

有关所有托管平台更新的详细信息均可在事件页面上找到,且标记有“MAINTENANCE”事件类型。

问:平台版本更新多久发布一次?

根据语言/框架供应商或核心团队的版本和修补程序的频率和内容,以及我们的平台设计团队对这些版本和修补程序的彻底审查结果,指定年度内的版本发布次数会有所不同。

问:AWS Elastic Beanstalk 的费用是多少?

对于 AWS Elastic Beanstalk,您只需为存储和运行应用程序实际使用的 AWS 资源付费,没有额外费用。符合 AWS 免费套餐使用条件的新 AWS 客户可以使用 Elastic Beanstalk 的默认设置来部署免费套餐中运行的应用程序。

问:在 AWS Elastic Beanstalk 上为我的应用程序提供技术支持的 AWS 资源,其费用是多少?

您只需按实际使用量付费,所有 AWS 资源都没有最低收费。有关 Amazon EC2 定价信息,请访问 EC2 详细信息页面上的定价部分。有关 Amazon S3 定价信息,请访问 S3 详细信息页面上的定价部分。您可以使用 AWS 简易结算器来估算不同应用程序大小的账单。

问:如何查看应用程序已使用多少个 AWS 资源并访问我的账单?

在 Amazon Web Services 网站上,您可以随时登录您的 Amazon Web Services 账户,并选择您的 Web 服务账户下的账户活动,查看当前账单期的费用。

问:AWS Support 是否对 AWS Elastic Beanstalk 提供支持?

是。对于与 AWS Elastic Beanstalk 的使用相关的问题,AWS Support 都提供支持。有关其他详细信息和定价,请参阅 AWS Support 页面。

问:还有哪些支持选项可用?

通过 AWS Elastic Beanstalk 开发论坛,您可以了解广泛的现有 AWS 社区知识,以帮助进行开发。