AWS OpsWorks:使用 Redis 而不是 Memcached

Posted

技术标签:

【中文标题】AWS OpsWorks:使用 Redis 而不是 Memcached【英文标题】:AWS OpsWorks: use Redis instead of Memcached 【发布时间】:2015-01-17 18:21:12 【问题描述】:

是否可以在 AWS OpsWorks 上使用 Redis 而不是 Memcached 作为层?

我很快就会开始一个项目,我正在考虑使用 Redis 作为我唯一的数据库,因为:

- It's really fast
- Has built-in persistence 
- Is available as a service on AWS, unlike MongoDB

在开发期间(可能在最终生产环境中)服务器将仅在我们的业务期间运行以减少开支。

关于如何使用 Redis 并在无人使用时关闭缓存/数据库服务器的任何想法?

我是 DevOps 的新手,以前从未使用过 Chef 收据。今天才第一次使用 AWS OpsWorks 服务,请耐心等待。

谢谢!

【问题讨论】:

【参考方案1】:

我认为对于这种情况,最好的方法是将您自己的 Redis 副本运行在标准 EC2 上。

为什么会这样?

    您不能使用 Elasticache,无法阻止它,因此您必须 24/7 全天候付费。 对缓存层使用 OpsWorks 或 Beanstalk 效率不高,您无法控制分片在其他实例上的分布方式,因此没有用处。 Redis 速度非常快,1 个实例每秒可以处理大量命令,大约 1 到 5 千。 您仍然可以在 OpsWorks 上使用您的应用程序,只需将缓存层指向您的 EC2 结构。当然,您可以为您的 QA 环境创建一个域名,如果您愿意,还可以在其前面添加一个 ELB。 即使只使用一个实例,您也可以在其中创建大量 Redis 实例。通过这种方式,您可以模拟您的生产分片。即使在生产中,我认为每台服务器拥有超过 1 个 redis 实例也是一个好主意,通常我为每个核心配置 1 个实例。例如:4 个 CPU,4 个 redis。

通过您的问题,我了解到我们正在谈论 QA/Dev 环境,因为您关心的是在没有人使用服务器时禁用它们。 =]

【讨论】:

【参考方案2】:

如果您只想坚持使用 OpsWorks,那么那里没有开箱即用的 Redis。但是,您可以创建自定义配方并制作自己的 Redis 层。

如果您不必只使用 OpsWorks,那么 ElastiCache 可以使用 memcached 或 Redis。

【讨论】:

以上是关于AWS OpsWorks:使用 Redis 而不是 Memcached的主要内容,如果未能解决你的问题,请参考以下文章

Opsworks:Rails 层连接到 Elasticache:Redis

AWS OpsWorks 中是不是有类似的 Elastic Beanstalk 工作程序层模式

AWS+OpsWorks:如何使用 OpsWorks 启用 EC2 实例的详细监控

如何对从 AWS OpsWorks 部署的应用程序拥有组可写文件权限?

AWS OpsWorks - 无法使用 AWS OpsWorks 部署我的应用程序,尤其是无法成功迁移

Cloudformation + OpsWorks