AWS Elastic Beanstalk是针对Web应用程序的AWS托管服务。 Elastic beanstalk是一个预先配置的EC2服务器,可以直接使用您的应用程序代码和环境配置,并使用它自动在AWS内配置和部署所需资源以运行Web应用程序。与EC-2(即基础架构即服务)不同,Elastic beanstalk是一种平台即服务(PAAS),因为它允许用户直接为他们的应用程序使用预先配置的服务器。当然,您无需使用弹性beantalk即可部署应用程序,但这意味着必须从AWS提供的大量服务中选择适当的服务,手动配置这些AWS资源并将它们拼接在一起,以形成一个完整的Web应用程序。 Elastic beantalk抽象化了基础配置工作,并允许您作为用户集中精力处理更紧迫的事情。
这就引起了一个担忧,即弹性beantalk本身会配置大多数资源并抽象出底层细节。开发人员是否可以根据需要更改配置?答案是肯定的。提供了Elastic Beanstalk可以简化应用程序的部署,但从根本上讲,它不会限制开发人员更改任何配置。
AWS Elastic Beanstalk功能:
- 应用程序: Elastic Beanstalk直接提取项目代码。因此,Elastic Beanstalk应用程序的名称与您的项目主目录相同。
- 应用程序环境:用户可能希望其应用程序在不同的环境(例如DEV,UAT和PROD)上运行。您可以创建和配置不同的环境,以在不同阶段运行应用程序。
- 环境健康:自动健康检查是在AWS或大多数其他云平台上运行应用程序最有利可图的功能之一。 AWS可以对所有EC-2部署(Elastic Beanstalk是托管的EC-2服务)运行自动运行状况检查,可以从AWS控制台对其进行监视。例如,在使用Web应用程序的情况下,AWS将按照开发人员的计划定期对应用程序执行ping操作,以检查响应是否为状态码200和应用程序是否按预期运行。健康检查回复:
- 红色:应用程序未通过所有运行状况测试。
- 黄色:应用程序未通过某些运行状况测试。
- 灰色:应用程序正在更新。
- 绿色:应用成功通过健康检查。
- 隔离的:单个应用程序中的所有环境彼此隔离(独立于彼此的运行状态)。不用说,两个不同的应用程序也被隔离了。
- 可伸缩性:在Elastic beanstalk中使用自动伸缩功能可以使应用程序动态伸缩。
- Elastic Load Balancing:到应用程序的所有Web请求都不会直接中继到应用程序实例。他们首先使用了弹性负载均衡器(ELB),顾名思义,该负载均衡了所有应用程序实例的负载。
- 语言支持: Elastic Beanstalk支持在熟悉的服务器(例如Apache,Nginx,Passenger和IIS)上使用Java,.NET, PHP,Node.js, Python,Ruby,Go和Docker开发的应用程序。
- 定价:使用Elastic Beanstalk不收取任何额外费用。用户只需要支付Elastic Beanstalk Service所提供的服务和资源。
- 自动配置: Elastic Beanstalk消除了选择正确的服务并配置其安全组以协同工作的负担。
- 不可能超出范围: AWS声称,由于Elastic Beanstalk使用Auto Scaling功能,从理论上讲,它可以处理任何数量的Internet流量。
AWS Elastic Beanstalk命令:
AWS提供了一组可在AWS-CLI(AWS命令行界面)上运行的命令,以管理您的服务。就像您要通过AWS控制台进行管理一样。以下是可以运行以管理AWS Elastic Beanstalk服务的命令列表。
- 中止环境更新
- 应用环境管理行动
- 检查dns可用性
- 组成环境
- 创建应用
- 创建应用程序版本
- 创建配置模板
- 创建环境
- 创建平台版本
- 创建存储位置
- 删除应用
- 删除应用程序版本
- 删除配置模板
- 删除环境配置
- 删除平台版本
- 描述帐户属性
- 描述应用程序版本
- 描述应用
- 描述配置选项
- 描述配置设置
- 描述环境健康
- 描述环境管理的行动历史
- 描述环境管理的行为
- 描述环境资源
- 描述环境
- 描述事件
- 描述实例健康
- 描述平台版本
- 列出可用的解决方案堆栈
- 列表平台分支
- 列表平台版本
- 列出资源标签
- 重建环境
- 请求环境信息
- 重新启动应用服务器
- 检索环境信息
- 交换环境名称
- 终止环境
- 更新应用
- 更新应用程序资源生命周期
- 更新应用程序版本
- 更新配置模板
- 更新环境
- 资源更新标签
- 验证配置设置
简而言之,Elastic Beanstalk是一项自动应用程序部署服务。即使没有平台经验,这也是在AWS上部署应用程序的最简单方法。