2013-05-12 159 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服務器。

我相信這是值得一試的。