我目前在Rails 3應用程序中使用Heroku的Memcached,並希望轉移到Elasticache,因爲定價更有利。這可能嗎?配置相對簡單嗎?在演奏方面我應該注意什麼?我可以在Heroku上使用Amazon Elasticache嗎?
回答
注意:雖然這樣做有效,但@btucker指出它允許任何Heroku託管的應用程序訪問您的ElastiCache羣集。我不建議使用此解決方案。
是的,你可以。該設置類似於Heroku在Amazon RDS上的指南。
- 按照「Get Started with Amazon ElastiCache」嚮導來創建緩存集羣和節點
- 安裝ElastiCache Command Line Toolkit
允許Heroku的服務器進入到您的ElastiCache集羣像RDS導解釋說:那不同的是這樣的步驟但
elasticache-
那些更換rds-
命令: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
設置一個Heroku的配置Y值我們的生產應用與您的集羣主機名:
heroku config:set MEMCACHE_SERVERS=elasticachehostname.amazonaws.com
之後,按照Memcache Rails setup,和你設置。
不,建議您不要使用Elasticache,因爲它沒有認證機制。因此,任何人都可以訪問您的緩存!這通常很好,因爲您會使用AWS安全規則來限制哪些機器可以將其訪問給您的機器。然而,這顯然不適用於Heroku,因爲您的應用程序是在隨機選擇的Herokus機器上運行的。
您可以在EC2計算機上使用SASL身份驗證自行部署memcache。 ElastiCache並沒有給你任何東西,而是一個預裝了memcache的EC2機器。
還有另一種選擇:MemCachier
(全部免責聲明,我對MemCachier工作)。
Heroku上還有另一個memcache提供程序,它比membase提供的memcache提供程序便宜得多。它被稱爲MemCachier,插件主頁是here。
它的價格可以與ElasticCache相媲美,具體取決於您的緩存大小,以及是否使用保留實例(在非常大的緩存大小ElatiCache更便宜時)。
更新(2013年6月):membase memcache插件已關閉,因此MemCachier是Heroku上Memcache的唯一提供者。
即使您使用ElastiCache,如果您需要任何幫助,請與我聯繫。
值得注意的是,儘管@ ssorallen的回答如上所述,但它也允許ANY heroku部署的應用程序訪問您的memcached服務器。因此,如果您存儲任何保密信息,或者您擔心其他人使用您的ElatiCache羣集,請不要這樣做。在RDS環境中,您擁有內置到數據庫中的訪問控制,但memcached沒有ElastiCache支持的此類身份驗證。因此,向所有Heroku開放安全組是一個相當大的風險。
這是一個很好的觀點。鑑於ElastiCache不使用身份驗證,有沒有辦法來防止這種情況?通過隱瞞主機名安全性幾乎沒有安全性。 –
@ssorallen,不幸的是,我知道ElastiCache沒有辦法解決這個問題。還有一些支持認證的memcached發行版,但你需要在ec2實例上自己運行它。 – btucker
剛剛討論過這個話題,一個可能的解決方案是讓heroku上的代碼與AWS API交談,並向ElasticCache安全組添加一條規則,以處理來自當前Dyno的流量。我*想*可能會工作。它只需要在memcache客戶端嘗試連接到ElastiCache之前運行。 – btucker
- 1. 在Heroku上可以使用SQLAlchemy嗎?
- 2. 我可以在Amazon Redshift上使用Madlib嗎?
- 3. 使用Amazon ElastiCache redis來存儲會話
- 4. 我可以在Rails應用上使用Heroku上的Puma線程嗎?
- 5. 我可以在我的Heroku子域中使用子域名嗎?
- 6. 在Heroku上使用Amazon KMS服務
- 7. Heroku - 我可以從Procfile調用Maven嗎?
- 8. 我可以在Amazon Appstore上發佈的android應用程序中使用AdMob嗎?
- 9. 我可以在heroku中安裝cruisecontrol.rb嗎?
- 10. 我可以在Heroku中運行coffeescript嗎?
- 11. 可以在Heroku上運行xvfb嗎?
- 12. 我可以在vs2008上使用HTML5嗎
- 13. 我可以在Azure上使用LoadLibrary嗎?
- 14. 我可以在GAE上使用Spring嗎?
- 15. 我可以在Android上使用PixelMed嗎?
- 16. 我可以在QNX上使用Java嗎?
- 17. 我可以在iOS上使用QLThumbnailImageCreate嗎?
- 18. 我可以在GAE上使用django.contrib.gis嗎?
- 19. 我可以在android上使用jmonkeyengine嗎?
- 20. 我可以在iPhone上使用setModalPresentationStyle嗎?
- 21. 我可以在Monogame上使用OpenCL嗎?
- 22. 我可以在TFS上使用Grunt嗎?
- 23. 我可以在Facebook上使用mailto嗎?
- 24. 我可以在Ubuntu上使用brew嗎?
- 25. 我可以在KeyUp上使用KeyBinding嗎?
- 26. 我可以在ES6上使用JSNice嗎?
- 27. 我可以在Mac上使用Kinect嗎?
- 28. 我可以在Amazon EC2上運行Windows Server 2008嗎?
- 29. 我可以在EC2上運行Amazon RDS副本嗎?
謝謝 - 這完美的作品。 – alpheus
對不起,如果我只是劫持這個評論,但你可能想使用私人地址不收取所有的流量?我們試圖用我們的EC2實例做到這一點,但它沒有奏效,但聽說它可以與Elasticache合作 – nambrot
你在哪裏找到私人地址@nambrot?我使用AWS控制檯中列出的「端點」,但尚未收到ElastiCache流量的費用。 –