AWS OpsWorks:使用Redis而不是Memcached

时间:2014-11-20 01:37:20

标签: amazon-web-services redis aws-opsworks

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

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

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

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

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

我是DevOps的新手,之前从未使用过厨师收据。刚刚今天第一次检查了AWS OpsWorks服务,请耐心等待。

谢谢!

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

为什么?

  1. 你不能使用Elasticache,没有办法阻止它,所以你必须全天候付费。
  2. 使用OpsWorks或Beanstalk进行缓存层效率不高,您无法控制分片在其他实例上的分布情况,因此无效。
  3. Redis速度非常快,1个实例每秒可处理大量命令,例如1到5千个。
  4. 您仍然可以在OpsWorks上使用您的应用程序,只需将缓存层指向您的EC2结构即可。当然,如果您愿意,您可以为QA环境创建一个域名,并在其前面放置一个ELB。
  5. 即使只使用一个实例,您也可以在其中创建大量的Redis实例。这样您就可以模拟生产分片。即使在生产中,我认为每个服务器有一个以上的redis实例是个好主意,通常每个核心配置1个实例。例如:4 cpus,4 redis。
  6. 根据您的问题,我了解到我们正在讨论QA / Dev环境,因为您关注的是在没有人使用服务器时禁用服务器。 =]