Могу ли я использовать Amazon Elasticache на Heroku?

В настоящее время я использую Memcached от Heroku в приложении на Rails 3 и хотел бы перейти на Elasticache, потому что цены намного выгоднее. Это возможно? Конфигурация относительно проста? Что-нибудь, о чем я должен знать относительно работы?

Ответы на вопрос(4)

которые решат эту проблему. Они предоставляют SOCKS5-прокси статический IP-адрес, который вы можете внести в белый список.

https://elements.heroku.com/addons/proximo https://elements.heroku.com/addons/quotaguardstatic https://elements.heroku.com/addons/fixie-socks

Вы также можете сделать это самостоятельно, настроив собственный прокси SOCKS5 на ec2.

Обратите внимание на предостережения здесь: http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/Access.Outside.html

Он медленнее, не зашифрован, и для его работы потребуется какой-то бизнес с обезьянами NAT.

не рекомендуется использовать Elasticache, так как с ним нет механизма аутентификации. В качестве таких,anyone можете получить доступ к вашему кешу! Обычно это нормально, так как вы используете правила безопасности AWS, чтобы ограничить доступ компьютеров к нему. Однако это, очевидно, не работает с Heroku, поскольку ваше приложение запускается на случайно выбранной машине Herokus.

Вы можете развернуть memcache самостоятельно с аутентификацией SASL на машине EC2. ElastiCache действительно не дает вам ничего, кроме машины EC2 с предварительно установленной memcache.

There is another option: MemCachier

(Full disclaimer, I work for MemCachier).

На Heroku есть еще один провайдер memcache, который значительно дешевле, чем тот, который был у мембраны. Это называетсяMemCachier, домашняя страница аддонаВот.

Он сопоставим по цене с ElasticCache в зависимости от размера кеша и от того, используете ли вы зарезервированные экземпляры или нет (при очень больших размерах кеша ElatiCache дешевле).

Update (June, 2013): Дополнение memcache в memase отключено, поэтому MemCachier является единственным поставщиком Memcache на Heroku.

Пожалуйста, свяжитесь со мной, если вам нужна помощь, даже если вы используете ElastiCache.

 alpheus16 июн. 2012 г., 00:45
Здорово. Я взглянул на документы, но просто чтобы уточнить - если я в настоящее время использую аддон мембраны на Heroku, кроме добавления gem 'memcachier' к моему Gemfile, есть ли какие-либо другие изменения, которые мне нужно сделать, чтобы переключиться на вашу систему?
 18 июн. 2012 г., 18:51
@alpheus, да, все, что вам нужно сделать, это добавитьmemcachier драгоценный камень и все остальное должно работать. Дайте нам знать, если у вас есть проблемы: [email protected] (Полный отказ от ответственности: я тоже работаю над MemCachier).
Решение Вопроса

Note: While this does work, @btucker pointed out that it allows any Heroku-hosted app to access your ElastiCache cluster. I do not recommend using this solution.

Да, ты можешь. Установка похожа на руководство по HerokuAmazon RDS, Шаги, которые отличаются, идут следующим образом:

Follow the "Get Started with Amazon ElastiCache" guide to create a cache cluster and node Install the ElastiCache Command Line Toolkit

Allow Heroku's servers ingress to your ElastiCache cluster like the RDS guide explains but replace the rds- commands with elasticache- ones:

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

Set a Heroku config value for your production app with your cluster's hostname:

heroku config:set MEMCACHE_SERVERS=elasticachehostname.amazonaws.com

После этого следуйтеНастройка Memcache Railsи вы переустановлены.

 13 окт. 2015 г., 09:11
heroku больше не публикует идентификатор своего аккаунта и группу безопасностиdevcenter.heroku.com/changelog-items/353
 25 нояб. 2012 г., 23:32
Извините, если я просто похитил этот комментарий, но вы, вероятно, хотите использовать личный адрес, чтобы не взимать плату за весь трафик? Мы пытались сделать это с нашим экземпляром EC2, но он не работал, но слышал, что он работает с Elasticache.
 alpheus20 нояб. 2012 г., 16:07
Спасибо - это работает отлично.
 26 нояб. 2012 г., 07:51
Где ты находишь личный адрес, @nambrot? Я использую «конечную точку» указан в консоли AWS и еще не видел платы за трафик ElastiCache.
 16 сент. 2013 г., 16:05
Это правильная информация. Вы также можете сделать то же самое через экран редактирования Cache Security Group в консоли AWS, если вы не хотите устанавливать / настраивать этот инструмент командной строки. Ключом является знание идентификатора владельца учетной записи Heroku.

что хотя ответ @ ssorallen выше будет работать, как описано, он также позволяетANY Развернутое приложение heroku для доступа к вашему memcached серверу. Поэтому, если вы храните что-либо в тайне или беспокоитесь о том, что другие люди используют ваш кластер ElatiCache, не делайте этого. В контексте RDS у вас есть контроль доступа, встроенный в базу данных, но у memcached нет такой аутентификации, поддерживаемой ElastiCache. Так что открытие группы безопасности для всего Heroku - довольно большой риск.

 07 мар. 2013 г., 21:53
Я на самом деле не пытался, так как мне самому это не нужно - в итоге я просто разместил приложение на EC2. Но, читая документацию, к сожалению, я не думаю, что это сработает. Группы безопасности ElastiCache позволяют настраивать вход только из группы безопасности EC2, а не с определенного IP-адреса. Так что это оставляет вас в начале, где вы вынуждены открывать все герои. Когда-нибудь, будем надеяться, Heroku позволит вам работать в специальной группе безопасности.
 14 дек. 2012 г., 22:10
@ssorallen, к сожалению, с ElastiCache я не могу обойти это. Есть несколько альтернативных дистрибутивов memcached, которые поддерживают аутентификацию, но вам нужно запустить это самостоятельно на экземпляре ec2.
 05 мар. 2013 г., 23:53
Вам повезло с вашей настройкой? У меня еще не было возможности опробовать его.
 08 янв. 2013 г., 20:53
Только что эта тема возникла снова, и одно из возможных решений этой проблемы - заставить ваш код на heroku общаться с API-интерфейсом AWS и добавить правило в группу безопасности ElasticCache для трафика, поступающего с текущего Dyno. яthink это, вероятно, сработает. Это просто нужно запустить до того, как клиент memcache попытается подключиться к ElastiCache.
 30 нояб. 2012 г., 23:05
Это замечательный момент. Учитывая, что ElastiCache не использует аутентификацию, есть ли способ предотвратить это? Безопасность через неизвестность имени хоста едва ли безопасна.

Ваш ответ на вопрос