在 AWS Elastic Beanstalk 上配置 Rails、Sidekiq、Redis 的可持续解决方案

Posted

技术标签:

【中文标题】在 AWS Elastic Beanstalk 上配置 Rails、Sidekiq、Redis 的可持续解决方案【英文标题】:Sustainable Solution To Configuring Rails, Sidekiq, Redis All On AWS Elastic Beanstalk 【发布时间】:2015-09-12 09:31:23 【问题描述】:

AWS Elastic Beanstalk rails 应用程序需要与 Puma/Passenger 一起运行的 sidekiq 工作进程。让 sidekiq 进程运行导致数小时的尝试失败。此外,让 rails 应用程序和 sidekiq 与我的 AWS ElastiCache 集群通信显然需要更改一些安全规则。

背景

我们从一个非常简单的 Rails 应用程序开始,它可以轻松部署到 AWS Elastic Beanstalk。从早期开始,我们已经将应用程序改进为现在使用工作框架 Sidekiq。 Sidekiq 反过来喜欢使用 Redis 来拉取它的工作。无论如何,在 AWS 世界中组装所有这些拼图有点挑战。

【问题讨论】:

【参考方案1】:

来自网络的解决方案...存在一些可持续性问题

AWS 生态系统经历了更新和升级,其中许多都没有清楚地记录在案。例如环境设置定期更改;您编写的脚本可能会在后续版本中中断。

我使用了以下一些解决方案来尝试解决这个问题:

http://blog.noizeramp.com/2013/04/21/using-sidekiq-with-elastic-beanstalk/(请注意,这篇博文中的 cmets 包含许多有用的要点)。非常感谢这篇文章中的贡献者和评论者。 http://qiita.com/sawanoboly/items/d28a05d3445901cf1b25(使用 upstart/initctl 启动 sidekiq 似乎是最简单和最可持续的方法)。这个页面是日文的,但是 sidekiq 启动代码是完全有意义的。谢谢! 为 Redis 使用 AWS 的 ElastiCache。确保相应地配置您的安全组:this AWS document was helpful...

【讨论】:

我会在有时间的时候更新并完成这个答案。我一定会包括版本号和一些要点。 很棒的倡议。不过要小心链接失效。 我会将这篇更新的文章添加到此列表中:docs.google.com/document/d/… second option 虽然是日文,但比我目前看到的任何其他脚本都好用。

以上是关于在 AWS Elastic Beanstalk 上配置 Rails、Sidekiq、Redis 的可持续解决方案的主要内容,如果未能解决你的问题,请参考以下文章

在 AWS Elastic Beanstalk 上扩展 Magento

如何在 AWS Elastic Beanstalk 上设置 HTTPS

如何在 AWS Elastic Beanstalk 上设置 HTTPS

在 AWS Elastic Beanstalk 上运行节点和反应

如何使用 aws cli 在 Elastic Beanstalk 上上传和部署?

在aws elastic beanstalk上上传文件?