Actualmente estoy usando Heroku's Memcached en una aplicación de Rails 3 y me gustaría pasar a Elasticache porque el precio es mucho más favorable. es posible? ¿La configuración es relativamente sencilla? ¿Hay algo de lo que tenga conocimiento en cuanto al rendimiento?¿Puedo usar Amazon Elasticache en Heroku?
Respuesta
Nota: Mientras esto funciona, @btucker señaló que permite que cualquier aplicación alojada en Heroku acceda a su clúster de ElastiCache. No recomiendo usar esta solución.
Sí, puedes. La configuración es similar a la guía que Heroku tiene en Amazon RDS. Los pasos que difieren algo así:
- seguir el "Get Started with Amazon ElastiCache" guía para crear un clúster de caché y el nodo
- Instalar el ElastiCache Command Line Toolkit
permitir que los servidores entrada de Heroku al clúster ElastiCache como la guía RDS explica pero reemplace los comandos
rds-
con loselasticache-
: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
Establecer un valor de configuración para y Heroku nuestra aplicación de producción con el nombre de host del clúster:
heroku config:set MEMCACHE_SERVERS=elasticachehostname.amazonaws.com
Después de eso, siga el Memcache Rails setup, y ya está.
No, no se recomienda el uso de Elasticache ya que no hay un mecanismo de autenticación con él. Como tal, ¡cualquiera puede acceder a su caché! Esto normalmente es correcto ya que usaría las reglas de seguridad de AWS para restringir qué máquinas pueden acceder a la suya. Sin embargo, esto obviamente no funciona con Heroku ya que tu aplicación se ejecuta en una máquina de Herokus elegida al azar.
Puede implementar Memcache usted mismo con autenticación SASL en una máquina EC2. ElastiCache en realidad no le da nada más que una máquina EC2 con Memcache preinstalado de todos modos.
Hay otra opción: MemCachier
(descargo de responsabilidad completa, trabajo para MemCachier).
Hay otro proveedor de memcache en Heroku que es significativamente más barato que el proporcionado por membase. Se llama MemCachier, la página de inicio de addon es here.
Es comparable en precio a ElasticCache dependiendo del tamaño de su caché y si usa instancias reservadas o no (en los tamaños de caché muy grandes, ElatiCache es más económico).
Actualización (junio de 2013): el complemento membase memcache se ha apagado, por lo que MemCachier es el único proveedor de Memcache en Heroku.
Si desea ayuda, comuníquese conmigo si necesita ayuda con ElastiCache.
Genial. He echado un vistazo a los documentos pero solo para aclararlo: si actualmente estoy usando el complemento membase en Heroku, aparte de agregar gem 'memcachier' a mi Gemfile, ¿hay algún otro cambio que deba hacer para cambiar a ¿tu sistema? – alpheus
@alpheus, sí, todo lo que debes hacer es agregar la gema 'memcachier' y todo lo demás debería funcionar. Háganos saber si tiene problemas: [email protected] (Descargo de responsabilidad: también trabajo en MemCachier). – alexlod
Vale la pena señalar que, si bien la respuesta anterior de @ ssorallen funcionará como se describe, también permite CUALQUIER aplicación heroku desplegada para acceder a su servidor memcached. Por lo tanto, si almacena algo en absoluto confidencial o si le preocupa que otras personas hagan uso de su clúster ElatiCache, no lo haga. En el contexto de RDS tiene el control de acceso integrado en la base de datos, pero memcached no tiene dicha autenticación admitida por ElastiCache. Entonces, abrir el grupo de seguridad a todos Heroku es un riesgo bastante grande.
Ese es un gran punto. Dado que ElastiCache no usa autenticación, ¿hay alguna manera de evitar esto? La seguridad a través de la oscuridad del nombre de host apenas es seguridad. –
@ssorallen, desafortunadamente no hay forma de evitar esto con ElastiCache. Hay algunas distribuciones alternativas de memcached que admiten la autenticación, pero necesitaría ejecutarlo usted mismo en una instancia de ec2. – btucker
Acabo de volver a tener este tema, y una posible solución es tener su código en heroku para hablar con la API de AWS y agregar una regla al grupo de seguridad de ElasticCache para el tráfico proveniente del Dyno actual. Yo * creo * que probablemente funcionaría. Simplemente debería ejecutarse antes de que el cliente de Memcache intente conectarse a ElastiCache. – btucker
- 1. Configuración de Amazon ElastiCache con spymemcached en Java
- 2. ¿Puedo usar dos idiomas en una aplicación Heroku?
- 3. Configurar el entorno para usar el sistema de archivos localmente y Amazon en Heroku
- 4. Cómo usar Elasticsearch en Heroku
- 5. ¿Puedo ejecutar coffeescript en Heroku?
- 6. ¿Cómo puedo usar un adaptador JMS para escuchar Amazon SQS
- 7. Heroku - ¿Cómo puedo deshacer un impulso en heroku?
- 8. Rails Heroku server paperclip Amazon S3 - AWS :: S3 :: Errores :: RequestTimeout
- 9. Estableciendo la conexión con Amazon s3 de Heroku
- 10. linode vs amazon ec2 vs heroku para proyecto con amazon s3
- 11. Configuración de MEDIA_URL para la aplicación Django Heroku, Amazon S3
- 12. Cómo usar haml con heroku?
- 13. Sin conexión Amazon S3
- 14. ¿Puedo usar AdMob en aplicaciones de Android publicadas en la tienda de aplicaciones de Amazon?
- 15. ¿De qué sirve usar Amazon SimpleDB?
- 16. Uso de ElastiCache con RDS para mejorar el rendimiento de lectura/escritura
- 17. Implementar activos estáticos en Amazon S3
- 18. Precio Heroku vs VPS
- 19. Dónde almacenar imágenes en Amazon AWS para usar en RDS
- 20. ¿Cómo puedo usar la API de Amazon en PHP para buscar libros?
- 21. Amazon SimpleDB vs Amazon RDS
- 22. ¿Cómo puedo programar un trabajo 'semanal' en Heroku?
- 23. Heroku - ¿Puedo llamar a Maven desde Procfile?
- 24. ¿Cómo puedo detectar el entorno de Heroku?
- 25. ¿Cómo puedo mantener mi aplicación Heroku privada?
- 26. Debo usar thin o unicornio en Heroku Cedar
- 27. La comunicación entre dos procesos en heroku (qué puerto usar)
- 28. Implementar PHP en Heroku
- 29. configuración de seguridad entre la instancia de Amazon EC2 y heroku
- 30. Almacenamiento de archivos en Heroku - ¿alternativas?
Gracias - esto funciona perfectamente. – alpheus
Disculpa si acabo de secuestrar este comentario, pero es probable que quieras utilizar la dirección privada para no cargar todo el tráfico. Hemos intentado hacerlo con nuestra instancia de EC2 pero no funcionó, pero escuchamos que funcionaría con Elasticache – nambrot
¿Dónde encuentra la dirección privada, @nambrot? Utilizo el "punto final" que figura en la consola de AWS y aún no he visto cargos por el tráfico de ElastiCache. –