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 部署的应用程序拥有组可写文件权限?