我可以在Heroku上使用Amazon Elasticache吗?

alp*_*eus 10 memcached ruby-on-rails heroku amazon-elasticache

我目前在Rails 3应用程序中使用Heroku的Memcached,并希望转移到Elasticache,因为价格更优惠.这可能吗?配置相对简单吗?关于性能,我应该注意什么?

Dav*_*rei 6

不,不建议您使用Elasticache,因为它没有认证机制.因此,任何人都可以访问您的缓存!这通常很好,因为您将使用AWS安全规则来限制哪些计算机可以访问您的计算机.但是,这显然不适用于Heroku,因为您的应用程序是在随机选择的Herokus机器上运行的.

您可以在EC2计算机上使用SASL身份验证自行部署memcache.ElastiCache实际上并没有给你提供任何东西,而是预装了memcache的EC2机器.

还有另一种选择:MemCachier

(完全免责声明,我为MemCachier工作).

Heroku上还有另一个memcache提供程序,它比membase提供的提供程序便宜得多.它叫做MemCachier,插件主页就在这里.

它的价格与ElasticCache相当,具体取决于您的缓存大小以及是否使用保留实例(在非常大的缓存大小下,ElatiCache更便宜).

更新(2013年6月):membase memcache插件已关闭,因此MemCachier是Heroku上唯一的Memcache提供程序.

如果您需要任何帮助,请与我联系,即使您使用ElastiCache也是如此.


Ros*_*len 5

危险:我不建议将此解决方案用于生产用途。虽然这确实有效,但@btucker 指出它允许任何Heroku 托管的应用程序访问您的 ElastiCache 集群。

是的你可以。设置类似于 Heroku 在Amazon RDS上的指南。不同的步骤是这样的:

  1. 按照“ Amazon ElastiCache 入门”指南创建缓存集群和节点
  2. 安装ElastiCache 命令行工具包
  3. 允许 Heroku 的服务器进入您的 ElastiCache 集群,如 RDS 指南所述,但将rds-命令替换为elasticache-

    elasticache-authorize-cache-security-group-ingress \
      --cache-security-group-name default \ 
      --ec2-security-group-name default \
      --ec2-security-group-owner-id 098166147350 \
    
      # If your AWS_CREDENTIAL_FILE environment setting is configured,
      # this option is not necessary.
      --aws-credential-file ../credential-file-path.template
    
    Run Code Online (Sandbox Code Playgroud)
  4. 使用集群的主机名为您的生产应用程序设置 Heroku 配置值:

    heroku config:set MEMCACHE_SERVERS=elasticachehostname.amazonaws.com
    
    Run Code Online (Sandbox Code Playgroud)

之后,按照Memcache Rails 设置,就可以了。

  • heroku 不再发布其帐户 ID 和安全组 https://devcenter.heroku.com/changelog-items/353 (2认同)