PHP AWS Elastic Beanstalk后台工作者

时间:2013-05-12 19:29:20

标签: amazon-web-services elastic-beanstalk

我已经使用Elastic Beanstalk部署了我的应用程序,因为这为我提供了一个非常简单的部署流程,使用“git aws.push”一次到多个实例。

我想为我的应用程序添加后台处理支持。后台工作者将使用相同的代码库,并简单地启动一个长期存在的PHP脚本,该脚本不断查找要执行的任务。我应该使用什么AWS来创建这样的工作者实例?

我是否应该使用EB,或者我应该尝试设置标准EC2实例(因为我不需要公开提供)?我想这是正确的方法,然后创建一个部署流程,使其易于部署到我的EC2工作者实例和Elastic beanstalk应用程序?或者有更好的方法吗?

2 个答案:

答案 0 :(得分:2)

AWS EB现在添加了对工作人员实例的支持。他们只是一种与这两种差异不同的环境:

  • 他们没有cnamePrefix(whatever.elasticbeanstalk.com)
  • 相反,他们有一个绑定的SQS队列

在每个实例上,它们运行一个名为sqsd的守护进程,该守护进程基本上轮询其环境的sqs队列并将其转发到本地http服务器。

我相信值得一试。

答案 1 :(得分:0)

如果worker只是轮询队列中的作业并且不需要ELB,那么你需要做的就是使用EC2,SQS和S3。您可以将EC2实例作为自动缩放组的一部分启动,例如,可以将其配置为根据SQS队列的深度进行缩放。如果没有工作要做,你可以拥有最低的EC2#,但如果队列变深,自动缩放会更多地旋转。