Elastic Beanstalk 简介

Elastic Beanstalk(EB) 本质上是 Golden AMI 和 CloudFormation 之间的混合体,同时极大地简化了 PuppetChef 的学习曲线。

Elastic Beanstalk 部署分为两个组件:应用程序和环境。

应用

考虑这是你的顶级分组,你的应用程序本身。例如,单个应用程序(MyWebApp)可能具有多个环境(生产暂存)。

环境

每个环境都包含完整的体系结构部署( EC2 实例Elastic Load BalancerAutoscaling GroupCloudwatch 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 实例(以及所有数据)。