Elastic Beanstalk 简介
Elastic Beanstalk(EB)
本质上是 Golden AMI 和 CloudFormation 之间的混合体,同时极大地简化了 Puppet 或 Chef 的学习曲线。
Elastic Beanstalk 部署分为两个组件:应用程序和环境。
应用
考虑这是你的顶级分组,你的应用程序本身。例如,单个应用程序(MyWebApp
)可能具有多个环境(生产和暂存)。
环境
每个环境都包含完整的体系结构部署( EC2 实例 , Elastic Load Balancer , Autoscaling Group和 Cloudwatch Alarms )。将自动设置和维护整个环境配置。
部署应用程序
你的应用程序部署就像上传包含代码的 zip 文件一样简单。你上载的每个 zip 文件(称为应用程序版本 )都与应用程序相关联,因此你可以上载一次并部署到多个环境。
自定义环境
默认情况下,Elastic Beanstalk 将部署库存亚马逊维护的 AMI。对于大多数应用程序来说,这已经足够了,但是你可能需要进行环境调整(例如,更改时区,添加代码中不存在的包/依赖项等)。
有两种方法可以自定义使用的 EB AMI: ebextensions 或自定义 AMI。
ebextensions - 一个文件夹,字面意思是’.ebextensions’,可以选择放在你的应用程序版本的根目录 (你上传的包含代码的 zip)。在 ebextensions 文件夹中,你可以放置YAML 文件,定义你希望在部署过程中在服务器端执行的任何自定义脚本,依赖项等。有许多可用的挂钩点,有关最新信息,请查看相关文档: http : //docs.aws.amazon.com/elasticbeanstalk/latest/dg/ebextensions.html
知识/事情要注意
VPC 复选框 - 创建环境时,可以离散地选择是否应在 VPC 中创建/放置环境。如果你需要应用程序与你创建的现有资源进行通信,请选中此框。否则,Elastic Beanstalk 将创建一个与你的其他 VPC 隔离的新安全组。虽然你可以在创建后手动调整安全组设置,但尝试将其添加到 VPC 中将在以后导致各种问题。
RDS - 创建环境时,你可以选择在环境中创建 RDS 实例。建议不要使用此功能,因为只要你需要重建环境(例如蓝色/绿色部署,故障排除),它就会破坏并重新创建 RDS 实例(以及所有数据)。