【问题标题】:EC2 rake instance on AWS ElasticBeanstalk Rails AppAWS ElasticBeanstalk Rails 应用程序上的 EC2 rake 实例
【发布时间】:2015-10-08 15:20:16
【问题描述】:
我们有一个在连接到 RDS postgres 数据库的 AWS EB 容器中运行的 rails 应用程序,并且我们希望能够在连接到同一数据库的专用 EC2 实例上运行一些相当密集的 rake 批处理。
我的问题是:
- 我们如何创建和启动这些特定于 rake 的实例,然后在进程运行后销毁它们?
- 如何在终端输出中调试任何问题?
谢谢!
【问题讨论】:
标签:
ruby-on-rails
amazon-web-services
amazon-ec2
rake
amazon-elastic-beanstalk
【解决方案1】:
对于 Rake Batch 流程,您需要做几件事。
- 使用必要的角色权限设置 AWS 开发工具包以访问 AWS SQS(简单队列服务)。
- 在需要进行批处理时将项目放入 SQS。
- 创建具有必要环境设置的 EC2 实例,以运行 rake 进程以监控队列并在项目存在时执行。
可选:如果您可以在 Node.js 或 Java8 中为 rake 任务编写代码,则可以使用 AWS Lambda,您无需为批处理作业保留专用 EC2 实例,这是一种成本较低的解决方案。