Подтвердить что ты не робот

Redis: Amazon EC2 vs Elasticache

Я хочу разместить сервер Redis самостоятельно. Я сравнил EC2 с Elasticache. И я хотел бы знать, каков недостаток EC2.

Маленький экземпляр EC2 стоит столько же, сколько крошечный экземпляр ELasticache, но больше 400 мб. Зачем использовать Elasticache и не настраивать собственный Redis Server на ec2 tiny isntance?

4b9b3361

Ответ 1

Поскольку я ленив, я бы выбрал Elasticcache через EC2, чтобы избежать некоторых из операционных аспектов управления экземпляром Redis. С Redis на EC2 вы отвечаете за масштабирование, обновление, мониторинг и обслуживание хоста и экземпляра Redis. Если вы хорошо разбираетесь в операционных аспектах Redis, тогда это не должно быть проблемой. Многие люди смотрят затраты на операционные аспекты запуска экземпляра Redis. Если вы не будете хорошо приправлены Редисом, я бы подумал об Эластике. Я использовал его и до сих пор очень доволен.

Теперь EC2 имеет смысл, когда вам нужны настраиваемые конфигурации Redis, которые не поддерживаются Elasticache.

Кроме того, ̶ Если вам нужна для подключения к REDIS, например, из за пределами AWS окружающей среды, ̶ ̶E̶l̶a̶s̶t̶i̶c̶a̶c̶h̶e̶ будет проблема, так как вы не можете используйте REDIS-Cli для подключения к REDIS Instance, который работает в ̶E̶l̶a̶s̶t̶i̶c̶a̶c̶h̶e̶ из ̶o̶u̶t̶s̶i̶d̶e̶.̶

Обновить: Доступ к ресурсам ElastiCache из вне AWS

Наконец, если вы планируете находиться на краю Redis, у вас больше смысла запускать свой собственный. Но опять же, у вас есть операционные биты, мониторинг, исправление и т.д.

Ответ 2

tl; dr: Elasticache заставляет вас использовать один экземпляр redis, что является неоптимальным.

Длинная версия:

Я понимаю, что это старый пост (2 года на момент написания этой статьи), но я думаю, что важно отметить, что я не вижу здесь.

На эластике ваше развертывание redis управляется Amazon. Это означает, что вы застряли, но они решили запустить redis.

Redis использует один поток выполнения для чтения/записи. Это обеспечивает согласованность без блокировки. Это главный актив с точки зрения производительности, а не для управления замками и защелками. Несчастливое последствие, тем не менее, заключается в том, что если ваш EC2 имеет более 1 vCPU, они не будут использоваться. Это относится ко всем экземплярам эластичности с более чем одним vCPU.

Размер экземпляра эластичной формы по умолчанию равен cache.r3.large, который имеет два ядра.

Меню настройки Amazon's Elasticache с заполненными по умолчанию

Фактически, существует несколько размеров экземпляров с несколькими vCPU. Много возможностей для проявления этой проблемы.

введите описание изображения здесь

Кажется, Amazon уже знает об этой проблеме, но они, похоже, немного игнорируют ее.

введите описание изображения здесь

Часть, которая делает это особенно актуальным для этого вопроса, заключается в том, что на вашем EC2 (поскольку вы управляете своим собственным развертыванием) вы можете реализовать multi -tenancy. Это означает, что у вас много экземпляров процесса redis, прослушивающих разные порты. Выбрав порт для чтения/записи в/из приложения на основе хэша ключа записи, вы можете использовать все ваши vCPU.

В качестве побочного примечания; развертывание эластичной резинки redis на многоядерной машине всегда должно выполняться по сравнению с развертыванием эластичных дисков memcached по размеру экземпляра. С многократным арендным договором redis имеет тенденцию быть победителем.

Ответ 3

Другим моментом является то, что Elasticache является динамическим, вы можете уменьшить/увеличить память, которую вы используете динамически, или даже закрыть кеш (и сохранить $$), если индексы производительности находятся в зеленом цвете.

Ответ 4

t2.micro vs cache.t2.micro

t2.micro - 1GiB cache.t2.micro - 0.555GiB

Но на t2.micro вам нужна ОС!. Большинству из них требуется около 512 мегабайт.

t2.micro может победить, возможно, только в производительности сети. Вы можете попробовать запустить тесты и сравнить.