Hinweis: Obwohl dies funktioniert, hat @btucker darauf hingewiesen, dass jede von Heroku gehostete App auf Ihren ElastiCache-Cluster zugreifen kann. Ich empfehle nicht, diese Lösung zu verwenden.
Ja, du kannst. Das Setup ähnelt dem Handbuch, das Heroku auf Amazon RDS installiert hat. Die Schritte, die sich unterscheiden, gehen so:
Erlauben Sie Herokus Servern den Zugriff auf Ihren ElastiCache-Cluster wie im RDS-Handbuch beschrieben, ersetzen Sie aber die rds-
-Befehle durch elasticache-
eins:
Legen Sie einen Heroku-Konfigurationswert für Ihre Produktionsanwendung mit dem Hostnamen Ihres Clusters fest:
%Vor%Folgen Sie danach dem Memcache Rails-Setup und Sie sind fertig.
Nein, es wird nicht empfohlen, Elasticache zu verwenden, da es keinen Authentifizierungsmechanismus gibt. Daher kann jeder auf Ihren Cache zugreifen! Dies ist normalerweise in Ordnung, da Sie die AWS-Sicherheitsregeln verwenden können, um einzuschränken, welche Computer auf Ihr System zugreifen können. Dies funktioniert jedoch offensichtlich nicht mit Heroku, da Ihre App auf einer zufällig ausgewählten Maschine von Herokus läuft.
Sie können Memcache selbst mit SASL-Authentifizierung auf einem EC2-Computer bereitstellen. ElastiCache bietet nicht wirklich mehr als eine EC2-Maschine mit Memcache, die sowieso vorinstalliert ist.
Es gibt noch eine andere Option: MemCachier
(Vollständiger Disclaimer, ich arbeite für MemCachier).
Es gibt einen anderen Memcache-Anbieter auf Heroku, der bedeutend billiger ist als der von membase bereitgestellte. Es heißt MemCachier , die Addon-Homepage ist hier .
Es ist vergleichbar mit ElasticCache, abhängig von Ihrer Cache-Größe und wenn Sie reservierte Instanzen verwenden oder nicht (bei den sehr großen Cache-Größen ist ElatiCache billiger).
Update (Juni 2013) : Das membase memcache Addon wurde heruntergefahren, daher ist MemCachier der einzige Anbieter von Memcache auf Heroku.
Bitte wenden Sie sich an mich, wenn Sie Hilfe benötigen, auch wenn Sie ElastiCache verwenden.
Es ist erwähnenswert, dass die obige Antwort von @ssorallen zwar wie beschrieben funktionieren wird, es aber auch der ANY heroku-deployten App erlaubt, auf Ihren memcached Server zuzugreifen. Wenn Sie also alles vertraulich speichern oder sich Sorgen darüber machen, dass andere Personen Ihren ElatiCache-Cluster nutzen, tun Sie es nicht. Im Kontext von RDS haben Sie die Zugriffskontrolle in die Datenbank integriert, aber Memcached hat keine solche von ElastiCache unterstützte Authentifizierung. Also ist die Öffnung der Sicherheitsgruppe für ganz Heroku ein ziemlich großes Risiko.
Es gibt mehrere Heroku-Addons, die dieses Problem lösen werden. Sie stellen einem SOCKS5-Proxy eine statische IP-Adresse zur Verfügung, die Sie auf die weiße Liste setzen können.
Sie können dies auch selbst tun, indem Sie Ihren eigenen SOCKS5-Proxy auf ec2 einrichten.
Beachten Sie jedoch die Vorbehalte hier: Ссылка
Es ist langsamer, unverschlüsselt, und einige NAT-Monkey-Geschäfte werden benötigt, damit es funktioniert.
Tags und Links ruby-on-rails memcached heroku amazon-elasticache