2013-05-12 108 views
1

我已经使用Elastic Beanstalk部署了我的应用程序,因为这给我一个非常简单的部署流程,使用“git aws.push”一次同时对多个实例。PHP AWS Elastic Beanstalk后台工作人员

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

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

回答

0

如果工作人员轮询作业的队列并且不需要ELB,那么您只需要使用EC2,SQS和S3。您可以将EC2实例作为自动缩放组的一部分来启动,例如,该组可以根据SQS队列的深度进行缩放。当没有工作要做时,您可以拥有最少的EC2,但如果队列变深,自动缩放将会增加更多。

2

AWS EB现在增加了对工作实例的支持。他们只是一种不同的环境中,其这两个区别:

  • 他们没有一个cnamePrefix(whatever.elasticbeanstalk.com)
  • 取而代之的是,他们已经有了一个SQS队列势必

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

我相信这是值得一试的。