ElasticBeanStalk如何将您的应用程序版本部署到实例?

时间:2012-07-24 09:53:09

标签: amazon-web-services elastic-beanstalk

我目前正在使用AWS ElasticBeanStalk,我很好奇它是如何(在内部)知道当你启动一个实例(或它自动进行缩放)时,解压缩我上传的版本的zip?是否有一些环境设置可以在我的S3存储桶中查找我的zip,然后为在该环境中运行的每个实例自动解压缩?

如果是这样,是否可以将其用于自动化任务,例如在启动(实例部署)时运行SQL查询?这些自动化任务是否可以更改或可查看?

由于

2 个答案:

答案 0 :(得分:1)

我不知道beanstalk如何知道下载和解压缩哪个版本,但在启动时运行任务是微不足道的。查看cloud-inittool written by Ubuntu that's now packaged in Amazon Linux.它允许您将任意shell脚本传递到实例配置的UserData部分,这些shell脚本将在启动时运行。

It's a great way to bootstrap instances on startup,避免了管理急性心肌梗死的痛苦。

快速(可能不适用)警告:如果您正在运行beanstalk AMI的数据库上运行SQL查询,那么您肯定会在某些时候丢失数据库。这些机器设计为完全瞬态的。不要将数据库放在它们上面。 See this answer for more details.

答案 1 :(得分:0)

由于您的目标似乎是运行自定义配置任务,答案是肯定的,有一种方法可以做到这一点。您可以在随应用程序打包的.ebextensions文件中定义自定义操作。例如,您可以配置命令以在每次部署新计算机时运行: http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-ec2.html#linux-commands