Содержание страницы
Общие вопросы Redis Memcached

Общие вопросы

Основы

Вопрос. Что такое Amazon ElastiCache?
Amazon ElastiCache – это веб‑сервис, упрощающий развертывание и запуск в облаке процесса кэширования, совместимого с протоколами Memcached или Redis. ElastiCache повышает производительность приложений, позволяя получать информацию из быстрых и управляемых систем хранения данных в памяти вместо более медленных систем, размещенных на дисках. Сервис берет на себя мониторинг, решение операционных вопросов и управление средами в памяти, позволяя клиентам сосредоточить усилия технических специалистов на разработке приложений. Также с помощью сервиса все эти задачи проще выполнять. Используя ElastiCache, можно не только улучшить время загрузки и отклика на действия или запросы пользователя, но и сократить расходы, связанные с масштабированием интернет-приложений.

ElastiCache позволяет автоматизировать стандартные административные задачи по обеспечению работы распределенной среды хранения в памяти данных типа «ключ‑значение». Используя ElastiCache, всего за пару минут с помощью нескольких действий в Консоли управления AWS можно добавить в архитектуру своего приложения уровень кэширования или хранения в памяти. ElastiCache может автоматически поддерживать высокую доступность и обеспечивать доступность соглашения об уровне обслуживания (SLA) на 99,99 %. Протоколы, используемые ElastiCache, совместимы с Memcached и Redis, поэтому код, приложения и популярные инструменты, уже используемые в существующих средах Memcached или Redis, будут эффективно работать с этим сервисом. Предварительные капиталовложения не требуются. Оплата начисляется только за используемые ресурсы.

Вопрос. Что такое кэширование в памяти и как оно может помочь приложениям?
Кэширование в памяти, которое обеспечивает ElastiCache, можно использовать для эффективного снижения задержек и повышения пропускной способности различных приложений с большим количеством операций чтения (например, социальных сетей, игр, сервисов обмена мультимедийными материалами и порталов вопросов и ответов) или предъявляющих повышенные требования к вычислительной мощности (например, сервисов рекомендаций). Кэширование в памяти позволяет увеличить производительность приложений за счет сохранения критически важных блоков данных в памяти для последующего доступа к ним с минимальными задержками. Информация в кэше может включать результаты запросов к базам данных с большим количеством операций ввода‑вывода или результаты ресурсоемких расчетов.

Вопрос. Какие виды управления берет на себя ElastiCache?
ElastiCache управляет операциями, связанными с созданием распределенной среды хранения данных в памяти: от выделения запрошенных ресурсов до установки программного обеспечения. При использовании бессерверной конфигурации Amazon ElastiCache не нужно настраивать инфраструктуру и управлять ею. При разработке собственного кластера ElastiCache сервис автоматически выполняет основную часть стандартных административных задач, таких как установка исправлений ПО, обнаружение сбоев и восстановление. ElastiCache предоставляет пользователю метрики подробного мониторинга работы ресурсов, позволяя быстро выявлять неполадки и реагировать на них. Например, можно задать пороговые значения и получать предупреждения, если один из кэшей окажется перегружен запросами.

Вопрос. Какие программные ядра поддерживает ElastiCache?
ElastiCache предлагает полностью управляемые сервисы Redis и Memcached для самых требовательных к ресурсам приложений, которым необходимо время отклика в доли миллисекунды.

Вопрос. Как начать работу с ElastiCache?
Если вы еще не зарегистрировались в сервисе ElastiCache, можно нажать кнопку Get Started (Начать работу) на странице ElastiCache и пройти регистрацию. Для этого потребуется аккаунт AWS. Если такового еще нет, вам будет предложено создать его в начале процесса регистрации в сервисе ElastiCache. После регистрации в ElastiCache изучите документацию по ElastiCache, в которую входит руководство по началу работы с Amazon ElastiCache для Redis или Amazon ElastiCache для Memcached.

После ознакомления с ElastiCache вы сможете за считаные минуты создать кэш с помощью консоли или ElastiCache API.

Вопрос. Как создать кэш?
Кэш просто создать с помощью консоли, ElastiCache API или инструментов командной строки. При использовании бессерверной конфигурации ElastiCache можно создать кэш, используя рекомендуемые по умолчанию настройки, и начать применять его менее чем через минуту.

Бессерверные технологии

Вопрос. Что такое бессерверная конфигурация ElastiCache?
Бессерверная конфигурация ElastiCache – это вариант сервиса, позволяющий начать работу с кэшем менее чем за минуту без выделения инфраструктуры или планирования ресурсов. Бессерверная конфигурация ElastiCache устраняет необходимость в трудоемком планировании ресурсов благодаря постоянному мониторингу использования вычислительных ресурсов, памяти и сети кэша, что позволяет мгновенно масштабировать кэш в соответствии с потребностями без простоев и снижения производительности. Бессерверная конфигурация ElastiCache автоматически реплицирует данные в нескольких зонах доступности и предоставляет клиентам SLA с коэффициентом 99,99 % для каждого кэша. При использовании бессерверной конфигурации ElastiCache вы платите только за хранимые данные и вычислительные ресурсы, применяемые вашим приложением. Чтобы начать, создайте кэш бессерверной конфигурации ElastiCache всего за несколько шагов, указав его имя в консоли, пакете средств разработки ElastiCache (SDK) или интерфейсе командной строки AWS (AWS CLI).

Вопрос. Как перенести существующую рабочую нагрузку ElastiCache на бессерверную конфигурацию ElastiCache?
Можно перенести существующую рабочую нагрузку ElastiCache, изменив адрес Redis или Memcached на новый адрес кэша бессерверной конфигурации ElastiCache в приложении. Указав местоположение файла резервной копии в Простом сервисе хранения данных Amazon (Amazon S3), можно перенести существующие данные ElastiCache в бессерверную конфигурацию ElastiCache. Ознакомьтесь с документацией о бессерверной конфигурации ElastiCache, чтобы узнать больше о переносе рабочих нагрузок.

Вопрос. Какие версии Redis и Memcached поддерживает бессерверная конфигурация ElastiCache?
Бессерверная конфигурация ElastiCache поддерживает ElastiCache для Redis версии 7.1 и ElastiCache для Memcached версии 1.6.21 и новее.

Вопрос. Как бессерверная конфигурация ElastiCache проводит масштабирование?
Бессерверная конфигурация ElastiCache непрерывно отслеживает использование памяти, вычислительных ресурсов и сети кэша для мгновенного масштабирования. Бессерверная конфигурация ElastiCache масштабируется без простоев и снижения производительности приложения, позволяя параллельно масштабировать кэш вертикально и горизонтально, чтобы удовлетворить требования приложения точно в срок. Ознакомьтесь с документацией о бессерверной конфигурации ElastiCache, чтобы узнать больше о масштабировании.

Вопрос. Что такое SLA бессерверной конфигурации ElastiCache, гарантирующее доступность?
Бессерверная конфигурация ElastiCache автоматически хранит данные с обеспечением избыточности во многих зонах доступности и предоставляет SLA, гарантирующее доступность с коэффициентом 99,99 % для всех рабочих нагрузок.

Вопрос. Какие тарифы действуют на бессерверную конфигурацию ElastiCache?
При использовании бессерверной конфигурации ElastiCache вы платите только за хранимые данные и вычислительные ресурсы, используемые вашим приложением. Подробные сведения см. на странице цен ElastiCache.

Зарезервированные узлы

Вопрос. Что такое зарезервированные узлы ElastiCache?
Зарезервированные узлы или зарезервированные инстансы (RI) позволяют получить значительную скидку по сравнению с использованием по требованию при подтверждении обязательств на один либо на три года. Зарезервированные узлы позволяют однократно внести предоплату, зарезервировав возможность запуска кэша в определенном регионе сроком на один или три года, и получить существенную скидку на текущую почасовую плату за использование. Для зарезервированных узлов существуют три варианта оплаты: с полной предоплатой, без предоплаты и с частичной предоплатой. Выбрав подходящий план, можно добиться оптимального соотношения между авансовыми платежами и почасовой оплатой.

Вопрос. Применимы ли зарезервированные узлы к бессерверной конфигурации ElastiCache?
Благодаря зарезервированным узлам можно получить скидку на использование ElastiCache по запросу. Бессерверная конфигурация ElastiCache несовместима с зарезервированными узлами.

Вопрос. Сколько зарезервированных узлов можно приобрести?
Сервис позволяет приобрести до 300 зарезервированных узлов. Если требуется запустить более 300 узлов, заполните форму запроса узлов ElastiCache.

Вопрос. Можно ли преобразовать узел в зарезервированный?
Приобретите зарезервированный узел с тем же классом узла и в том же регионе, какие в данный момент используются в работающем узле, к которому вы хотели бы применить резервирование. Если зарезервированный узел был успешно приобретен, ElastiCache автоматически применит новый пониженный почасовой тариф к существующему узлу.

Вопрос. Если я зарегистрируюсь для получения зарезервированного узла, какой момент времени будет считаться моментом начала резервирования? Что произойдет с узлами после окончания срока резервирования?
Изменение тарифов, связанное с зарезервированным узлом, произойдет сразу после получения запроса и обработки платежа. За состоянием зарезервированных узлов кэша можно следить на странице AWS «История аккаунта» или с помощью API DescribeReservedCacheNodes. Если разовый платеж не удастся обработать к началу следующего расчетного периода, тариф со скидкой не будет применен.

По истечении срока резервирования за использование узла будет взиматься почасовая плата как за узел по требованию, согласно классу узла и региону.

Вопрос. Как определить, какие из узлов будут оплачиваться по тарифу зарезервированных узлов?
API ElastiCache для создания, изменения и удаления узлов являются одинаковыми как для узлов по требованию, так и для зарезервированных узлов, поэтому их можно просто использовать в обоих случаях. При составлении счета наша система автоматически применит тарифы зарезервированных узлов, чтобы соответствующие узлы оплачивались по более низкому почасовому тарифу.

Вопрос. Можно ли перенести зарезервированный узел из одного региона в другой или из одной зоны доступности в другую?
Каждый зарезервированный узел связан с определенным регионом. Эта связь сохраняется в течение всего срока резервирования, поэтому ее нельзя изменить. Однако резервирование может использоваться в любой зоне доступности в пределах соответствующего региона.

Вопрос. Можно ли отменить резервирование?
Нет. Отменить резервирование узла нельзя, и внесенный разовый платеж (если таковой взимался) не возвращается. Каждый час в течение срока действия зарезервированных узлов подлежит оплате независимо от использования.

Вопрос. Как выбор варианта оплаты повлияет на выставление счетов?
Если зарезервированный узел приобретается с полной предоплатой, его стоимость будет целиком оплачена авансовым платежом. При выборе варианта «Без предоплаты» авансовые платежи не потребуются. Общая стоимость зарезервированного узла без авансового платежа будет распределена по выплатам за каждый час (вне зависимости от использования инстанса). Частичная предоплата сочетает в себе свойства планов без авансового платежа и вариантов с полной предоплатой. При данном сценарии потребуется небольшой авансовый платеж, а затем будет взиматься небольшая почасовая плата в течение срока действия вне зависимости от использования инстанса.

Безопасность

Вопрос. Какие средства контроля безопасности существуют для ElastiCache?
ElastiCache позволяет настроить шифрование данных в местах хранения с помощью Сервиса управления ключами AWS (AWS KMS), шифрование данных в движении посредством протокола TLS (безопасность транспортного уровня), аутентификацию благодаря Управлению идентификацией и доступом AWS (IAM) и контроль доступа к сети с использованием групп безопасности Эластичного облака вычислений Amazon (Amazon EC2).

Вопрос. Как управлять доступом к ElastiCache?
Если вы не используете виртуальное частное облако Amazon (Amazon VPC), с помощью сервиса ElastiCache можно контролировать доступ к кэшу посредством групп безопасности сети. Группа безопасности работает как брандмауэр, управляя сетевым доступом к кэшам. По умолчанию сетевой доступ к кэшам запрещен. Если вы хотите, чтобы ваши приложения имели доступ к вашему кэшу, вы должны явно разрешить доступ с их адресов в конкретных группах безопасности Amazon EC2.

Вы также можете контролировать доступ к ресурсам ElastiCache с помощью аутентификации IAM. Дополнительные сведения см. в документации об аутентификации с помощью IAM.

Соответствие требованиям

Вопрос. Какие программы соответствия требованиям поддерживает ElastiCache?
ElastiCache поддерживает такие программы соответствия требованиям, как SOC 1, SOC 2, SOC 3, ISO, MTCS, C5, PCI DSS, HIPAA и FedRAMP. Актуальный перечень поддерживаемых программ соответствия требованиям см. на странице Сервисы AWS в программе соответствия требованиям.

Вопрос. Соответствует ли ElastiCache требованиям PCI DSS?
Да. ElastiCache входит в программу соответствия AWS требованиям PCI. Ресурсы с подробной информацией см. ниже.

Актуальный перечень программ соответствия, распространяющихся на ElastiCache, см. на странице Сервисы AWS в программе обеспечения соответствия.

Вопрос. Соответствует ли ElastiCache требованиям HIPAA?
Да. ElastiCache соответствует требованиям HIPAA и подпадает под действие договора делового партнерства AWS (BAA). Это означает, что ElastiCache можно использовать для обработки, обслуживания и хранения закрытой медицинской информации (PHI) и применять в приложениях для сферы здравоохранения.

Вопрос. Как начать использовать сервис ElastiCache, чтобы обеспечить соответствие требованиям HIPAA?
Если договор BAA с AWS уже заключен, можно сразу использовать ElastiCache для создания приложений, хранящих и обрабатывающих PHI в соответствии с HIPAA. Если договора BAA нет или имеются другие вопросы об использовании AWS для приложений, свяжитесь с нами для получения дополнительной информации. 

Вопрос. Получил ли ElastiCache авторизацию FedRAMP?
ElastiCache для Redis входит в программу соответствия AWS требованиям FedRAMP в качестве авторизованного сервиса. С помощью последней версии сервиса ElastiCache клиенты и партнеры правительства США могут обрабатывать и хранить данные и системы, соответствующие требованиям FedRAMP, а также размещать критически важные рабочие процессы с высоким уровнем риска в регионе AWS GovCloud (США –восток) и AWS GovCloud (США – запад), а процессы со средним уровнем риска – в регионах Восток США (Огайо), Восток США (Северная Вирджиния), Запад США (Северная Калифорния) и Запад США (Орегон).

Ресурсы с подробной информацией см. ниже.

Актуальный перечень программ соответствия, распространяющихся на ElastiCache, см. на странице Сервисы AWS в программе обеспечения соответствия.

Вопрос. Взимается ли дополнительная плата за использование соответствия требованиям?
Нет. Дополнительная плата за соответствие требованиям не взимается.

Группы параметров

Вопрос. Что представляют собой группы параметров? Чем они могут быть полезны?
Группа параметров работает как контейнер для параметров настройки сервиса и может применяться к одному или нескольким кластерам. Если создать кластер без указания группы параметров, к нему будет применена группа параметров по умолчанию. В этой группе содержатся параметры работы сервиса и системы ElastiCache по умолчанию, оптимизированные для используемого кластера. Однако если требуется определить специальные параметры работы для кэша, нужно создать новую группу параметров, скорректировать необходимые параметры, а также настроить кластер для ее использования. Значения параметров автоматически обновляются на всех кластерах, связанных с измененной группой параметров. Дополнительные сведения о настройке групп параметров см. в руководстве пользователя ElastiCache для Redis или ElastiCache для Memcached.

Вопрос. Как правильно выбрать параметры конфигурации для кэшей?
ElastiCache по умолчанию выбирает оптимальные параметры конфигурации для кэша, учитывая объем памяти и вычислительных ресурсов конкретного типа узла. Если параметры требуется изменить, это можно сделать с помощью API управления конфигурацией. Следует помнить, что изменение рекомендованных параметров конфигурации может повлечь за собой нежелательные последствия, такие как снижение производительности или сбои системы. Поэтому к подобным мерам следует прибегать только продвинутым пользователям, которые осознают данные риски. Дополнительные сведения об изменениях параметров см. в руководстве пользователя ElastiCache.

Вопрос. Как просмотреть текущие значения в определенной группе параметров?
Чтобы получить информацию об используемых группах параметров и соответствующих настройках, применяйте консоль, API ElastiCache или инструменты командной строки.

Redis

Функции Redis

Вопрос. Что представляет собой ElastiCache для Redis?
ElastiCache для Redis – это веб‑сервис, упрощающий развертывание и запуск в облаке процесса кэширования, совместимого с протоколом Redis. Сервис обеспечивает управление узлами Redis, их мониторинг и эксплуатацию. Создание, удаление и изменение узлов выполняется с помощью консоли ElastiCache, AWS CLI или API данного веб‑сервиса. ElastiCache для Redis поддерживает конфигурации с высоким уровнем доступности, в том числе включение режима кластера Redis и отключение режима кластера с автоматической обработкой отказа с основного сервера на реплику.

Вопрос. Совместимы ли протоколы ElastiCache для Redis с сервисом Redis с открытым исходным кодом?
Да. Протоколы ElastiCache для Redis совместимы с сервисом Redis с открытым исходным кодом. Код, приложения, драйверы и инструменты, которые сейчас используются с существующим автономным хранилищем данных Redis, продолжат функционировать с сервисом ElastiCache для Redis. Если не указано иное, для существующих развертываний Redis при переносе в сервис ElastiCache для Redis никаких изменений в код вносить не требуется.

Вопрос. Сколько стоит ElastiCache для Redis?
Ознакомьтесь с действующими тарифами на странице цен.

Вопрос. Поддерживает ли ElastiCache для Redis работу с несколькими зонами доступности?
Да. С помощью ElastiCache для Redis можно создавать реплики чтения в других зонах доступности AWS. При использовании бессерверной конфигурации ElastiCache для Redis данные автоматически сохраняются в нескольких зонах для обеспечения высокой доступности. В случае сбоя узла при разработке собственного кэша ElastiCache для Redis сервис выделит новый узел. В сценариях, в которых происходит сбой первичного узла, ElastiCache для Redis автоматически делает существующую реплику для чтения основной. Дополнительные сведения о том, как обрабатывать сбои узлов, см. в разделе Общие сведения о репликации Redis.

Вопрос. Как обновить ядро до новой версии?
Быстро обновить ядро до новой версии можно с помощью API-интерфейсов ElastiCache и указания предпочитаемой версии ядра. В консоли ElastiCache выберите кэш и щелкните Modify (Изменить). Процесс обновления ядра разработан таким образом, чтобы сохранить существующие данные. Дополнительные сведения см. в разделе Стратегии и передовые практики кэширования.

Вопрос. Можно ли вернуть ядро к более ранней версии?
Нет. Возврат к более ранней версии ядра не поддерживается.

Вопрос. Можно ли создавать межрегиональные реплики данных при работе с ElastiCache для Redis?
Да. Создавать межрегиональные реплики можно, используя глобальное хранилище данных в ElastiCache для Redis. Глобальное хранилище данных обеспечивает полностью управляемую, быструю, надежную и ориентированную на безопасность межрегиональную репликацию данных. Глобальное хранилище данных позволяет записывать данные в кластер ElastiCache для Redis в одном регионе и считывать их из не более чем двух других межрегиональных кластеров репликации, благодаря чему чтение и аварийное восстановление между регионами осуществляются с низкой задержкой.

Производительность

Вопрос. Каковы преимущества у ElastiCache для Redis в плане производительности?
ElastiCache для Redis предоставляет улучшенные потоки ввода-вывода, которые значительно повышают пропускную способность и сокращают задержки при масштабировании за счет мультиплексирования, разгрузки уровня представления и многого другого. Усовершенствованные потоки ввода-вывода повышают производительность за счет использования большего количества ядер для обработки операций и динамической адаптации к рабочей нагрузке. ElastiCache для Redis повышает пропускную способность кластеров с поддержкой протокола TLS за счет переноса шифрования на те же усовершенствованные потоки ввода-вывода. В ElastiCache для Redis версии 7.0 появилось улучшенное мультиплексирование ввода-вывода, которое объединяет множество клиентских запросов в один канал и повышает эффективность основного потока Redis.

В ElastiCache для Redis версии 7.1 расширена функциональность усовершенствованных потоков ввода-вывода, чтобы они также обрабатывали логику уровня представления. Они не только считывают входные данные клиента, но и анализируют их в двоичном формате команд Redis, которые затем передаются в основной поток для выполнения, чтобы повысить производительность. С помощью ElastiCache для Redis версии 7.1 можно добиться увеличения пропускной способности на 100 % и снижения задержки P99 на 50 % по сравнению с версией 7.0. На инстансе r7g.4xlarge и выше можно обрабатывать более 1 миллиона запросов в секунду (RPS) на узел.

Вопрос. Как отслеживать загрузку ЦП Redis?
ElastiCache предоставляет два разных набора метрик для измерения использования ЦП кэша в зависимости от выбранного варианта развертывания кэша. При использовании бессерверной конфигурации ElastiCache можно отслеживать загрузку ЦП с помощью метрики ElastiCache Processing Units (ECPU). Количество ECPU, используемых вашими запросами, зависит от времени, затраченного виртуальным процессором, и объема переданных данных. Для каждого простого чтения и записи, например команд Redis GET и SET или команд Memcached get и set, требуется 1 ECPU на каждый переданный килобайт (КБ) данных. Некоторые команды Redis, работающие со структурами данных в памяти, могут дольше использовать виртуальный процессор, чем команды GET или SET. ElastiCache вычисляет количество использованных ECPU на основе времени, затраченного на выполнение команды виртуальным процессором, по сравнению с базовым показателем времени его работы, затрачиваемого командой Redis SET или GET. Если выполнение команды занимает дополнительное время использования виртуального процессора и передает больше данных, чем 1 ECPU при базовой производительности, ElastiCache рассчитывает необходимое количество процессоров на основе большего из двух параметров.

При проектировании собственного кластера вы можете отслеживать метрики EngineCPUUtilization и CPUUtilization. Метрика CPUUtilization оценивает загрузку ЦП для каждого инстанса (узла), а EngineCPUUtilization – общую загрузку ЦП на уровне процесса Redis. Метрика EngineCPUUtilization введена в дополнение к метрике CPUUtilization, так как основной процесс Redis является однопоточным и использует только одно ядро из всех доступных на инстансе ядер ЦП. Соответственно, метрика CPUUtilization не отражает в полной мере степень загрузки ЦП на уровне процесса Redis. Чтобы точно понимать фактическую загрузку ЦП на кластерах Redis, рекомендуется использовать сочетание метрик CPUUtilization и EngineCPUUtilization.

Оба набора метрик доступны во всех регионах AWS, а работать с ними можно с помощью сервиса Amazon CloudWatch или консоли. Кроме того, мы рекомендуем ознакомиться с документацией, чтобы узнать о полезных метриках для мониторинга производительности.

Вопрос. Как оптимизировать производительность клиента Redis?
Redis – одно из самых популярных NoSQL хранилищ ключевых значений, известное своей высокой производительностью. Чтобы оптимизировать использование Redis, вам также нужен производительный клиент.

Реплика чтения

Вопрос. Что значит запустить узел Redis как реплику чтения?
Реплики чтения в Redis служат для:

  • обработки сбоев;
  • масштабирования при обслуживании запросов чтения.

При запуске кэша как реплики чтения первичный узел обслуживает процессы записи и чтения. Реплика обслуживает исключительно трафик чтения, а также доступна в среде теплого резервирования на случай повреждения первичного узла.

Вопрос. В каких случаях стоит использовать реплики чтения Redis?
В бессерверной конфигурации ElastiCache реплики чтения автоматически поддерживаются сервисом. При проектировании собственного кэша развертывание одной и более реплик чтения для данного первичного узла успешно применяется в различных сценариях. Ниже перечислены самые распространенные из них.

  • Масштабирование вычислительных ресурсов или ресурсов ввода‑вывода одного первичного узла для выполнения рабочих нагрузок с большим количеством операций чтения. Избыточный трафик чтения можно направить на одну и более реплик чтения.
  • Обслуживание трафика чтения в случае недоступности первичного узла. Если первичный узел не принимает запросы ввода‑вывода (например, в связи с приостановкой ввода‑вывода во время выполнения резервного копирования или запланированного обслуживания), трафик операций чтения можно направить на реплики чтения. Следует учесть, что в этом случае данные, которые содержит реплика чтения, могут оказаться устаревшими вследствие недоступности основного инстанса. Реплику чтения также можно использовать для перезапуска отказавшего первичного узла.
  • Сценарии защиты данных. В маловероятном случае сбоя первичного узла или зоны доступности, в которой он находится, реплику чтения в другой зоне доступности можно назначить новым первичным узлом. 

Вопрос. Как подключиться к репликам чтения?

Вы можете подключиться к реплике чтения так же, как и к первичному узлу кэша. Порядок распределения трафика чтения по множеству реплик чтения определяется приложением. Дополнительные подробности.

  • Кластеры Redis (режим кластера отключен) используют отдельные адреса узла для операций чтения (в API и CLI они называются адресами чтения).
  • Кластеры Redis (режим кластера включен) используют для всех адресов конфигурации кластера. Необходимо использовать клиент с поддержкой кластеров Redis (Redis 3.2). Кроме того, выполнять операции чтения по-прежнему можно из адресов узлов (в API и CLI они называются адресами чтения).

Вопрос. Сколько реплик чтения можно создать для одного первичного узла?
ElastiCache позволяет создать не более пяти (5) реплик чтения для одного первичного узла кэша.

Вопрос. Что произойдет с репликами чтения при обработке отказа?
В случае обработки отказа репликация всех связанных и доступных реплик чтения автоматически возобновится сразу же по завершении обработки (с применением обновлений, которые содержатся в репликах, ставших основными).

Вопрос. Как ElastiCache обновляет реплику чтения на своем первичном узле?
Обновления первичного узла кэша автоматически реплицируются во все связанные реплики чтения. Однако в связи с применением поддерживаемой Redis асинхронной репликации обновления реплики чтения могут отставать от обновлений соответствующего первичного узла кэша. Ниже перечислены наиболее частые причины такого отставания.

  • Объем операций ввода‑вывода при записи в первичный узел кэша превышает скорость применения обновлений к реплике чтения.
  • Сетевое разграничение или задержка между первичным узлом кэша и репликой чтения.

Функционирование реплик чтения зависит от характеристик встроенной репликации Redis. Используя реплики чтения, следует учитывать потенциальное время отставания реплики от ее основного узла кэша (так называемую противоречивость). ElastiCache создает метрику, чтобы помочь вам разобраться в сути противоречивости.

Вопрос. Сколько стоит использование реплик чтения? С какого момента начинается и когда заканчивается начисление платы?
Плата за реплики чтения начисляется по той же схеме и тарифам, что и за стандартные узлы кэша. Как и при использовании стандартных узлов кэша, тариф за узел кэша в час для реплик чтения определяется классом узла кэша реплики чтения. Актуальные цены на ElastiCache см. здесь. За передачу данных при выполнении их репликации между первичным узлом кэша и репликой чтения плата не начисляется. Начисление платы за использование реплики чтения начинается сразу после ее успешного создания (с момента, когда ее состояние отобразится как «активное»). Плата за использование реплики чтения продолжает начисляться по стандартным почасовым тарифам для узлов кэша ElastiCache, пока не будет дана команда удалить ее.

Вопрос. Что происходит во время обработки отказа и сколько времени это занимает?
Сервис ElastiCache поддерживает выполнение инициированной обработки отказа, при этом операции кэширования будут возобновлены в кратчайшие сроки. При выполнении обработки отказа ElastiCache изменяет запись DNS узла кэша таким образом, чтобы она указывала на реплику чтения, которая становится первичным узлом. Рекомендуется выполнить повторную попытку подключения к узлу кэша на уровне приложения. Как правило, выполнение всех пяти шагов занимает не более шести минут.

Это события автоматической обработки отказа, перечисленные в порядке возникновения:

  1. Сообщение группы репликации: Test Failover API called for node group <node-group-id> (Вызов тестирования API обработки отказа для группы узлов <node-group-id>)
  2. Сообщение кластера кэша: Failover from primary node <primary-node-id> to replica node <node-id> completed (Обработка отказа с передачей роли первичного узла от <primary-node-id> узлу реплики <node-id> завершена)
  3. Сообщение группы репликации: Failover from primary node <primary-node-id> to replica node <node-id> completed (Обработка отказа с передачей роли первичного узла от <primary-node-id> узлу реплики <node-id> завершена)
  4. Сообщение кластера кэша: Recovering cache nodes <node-id> (Восстановление узлов кэша <node-id>)
  5. Сообщение кластера кэша: Recovering cache nodes <node-id> (Восстановление узлов кэша <node-id> завершено)

Вопрос. Можно ли создать реплику чтения в регионе, отличном от региона первичного узла?
Нет. Реплики чтения можно создавать в той же или в другой зоне доступности региона, в котором находится первичный узел кэша. Однако можно использовать глобальное хранилище данных для Redis в целях полностью управляемой, быстрой, надежной и ориентированной на безопасность репликации в нескольких регионах AWS. С помощью этой функции можно создать межрегиональные кластеры реплик чтения для обеспечения чтения с низкой задержкой в ElastiCache для Redis и для аварийного восстановления в нескольких регионах AWS.

Вопрос. Можно ли узнать, в какой зоне доступности находится текущая основная реплика?
Да. Увидеть местоположение текущего первичного узла можно в консоли или с помощью DescribeCacheClusters API.

Вопрос. Можно ли добавлять или удалять узлы реплики чтения из своей кластерной среды Redis?
Да. Можно добавлять или удалять реплики чтения в одном либо нескольких сегментах кластерной среды Redis. Во время этого процесса кластер остается доступным и обслуживает входящие операции ввода‑вывода.

Развертывание в нескольких зонах доступности

Вопрос. В чем заключается поддержка нескольких зон доступности в ElastiCache для Redis?
Поддержка нескольких зон доступности позволяет работать в более высокодоступной конфигурации при разработке собственного кэша ElastiCache для Redis. Все кэши бессерверной конфигурации ElastiCache автоматически запускаются в нескольких зонах доступности. Группа репликации ElastiCache для Redis состоит из первичного узла и не более чем пяти реплик чтения. Если используется несколько зон доступности, то по крайней мере одна реплика должна быть основной. При некоторых видах планового обслуживания или в маловероятном случае сбоя узла ElastiCache либо всей зоны доступности ElastiCache автоматически обнаружит сбой первичного узла, выберет реплику чтения и назначит ее новым первичным узлом. Кроме того, ElastiCache внесет изменения DNS, связанные с этой репликой чтения. Таким образом, если приложение выполняет запись в первичный узел, изменение адреса не потребуется.
 
Вопрос. Каковы преимущества нескольких зон доступности и когда следует их использовать?
Основные преимущества запуска ElastiCache для Redis в нескольких зонах доступности – это повышение доступности и снижение потребности в администрировании. При запуске ElastiCache в нескольких зонах доступности кэши соответствуют требованиям SLA на уровне 99,99 %. При сбое первичного узла ElastiCache для Redis он будет недоступен для чтения и записи лишь в течение времени, требуемого для выполнения обработки отказа. Если используются возможности нескольких зон доступности, обработка отказа узла ElastiCache выполняется автоматически и не требует никаких действий администратора. Больше нет необходимости отслеживать работу узлов Redis и вручную инициировать восстановление в случае нарушения работы основного узла.
 
Вопрос. Как работает кластер в нескольких зонах доступности?
Если вы используете ElastiCache для Redis и у вас имеется группа репликации, состоящая из основного узла и одной или нескольких реплик чтения, можно воспользоваться развертыванием в нескольких зонах доступности. В таких развертываниях ElastiCache автоматически обнаруживает сбой основного узла, выбирает одну из доступных реплик чтения и назначает ее новым основным узлом. ElastiCache вносит изменения DNS, связанные с этой репликой чтения, и приложение продолжает выполнять запись в основной узел. Кроме того, ElastiCache будет пытаться создать новый узел для замены реплики чтения, которая была назначена основным узлом, в той же зоне доступности, где находился отказавший основной узел. В случае сбоя основного узла в связи с временным нарушением работы зоны доступности новая реплика будет запущена, как только работа зоны доступности возобновится.
 
Вопрос. Можно ли поместить реплики в ту же зону доступности, что и первичный узел?
Да. Обратите внимание на то, что размещение первичного узла и реплик в одной и той же зоне доступности не повысит устойчивость группы репликации ElastiCache для Redis к сбоям в работе зоны доступности. Кроме того, размещение реплик в той же зоне доступности, что и первичный узел, будет запрещено, если включена поддержка нескольких зон доступности.
 
Вопрос. В каких случаях ElastiCache выполняет обработку отказа на реплику чтения?
ElastiCache выполняет обработку отказа на реплику чтения в следующих случаях.
  • Потеря доступности в зоне доступности первичного узла
  • Потеря сетевого подключения к основному инстансу
  • Сбой вычислительного блока основного инстанса

Вопрос. Какая реплика чтения будет назначена новым первичным узлом в случае сбоя текущего первичного узла?
Если реплик чтения несколько, первичным узлом назначается реплика с наименьшей задержкой асинхронной репликации.

Вопрос. Отобразит ли сервис предупреждение о том, что выполнена автоматическая обработка отказа?
Да. ElastiCache создает событие, чтобы оповестить клиента об автоматическом выполнении обработки отказа. Для получения информации о событиях, связанных с узлом ElastiCache, воспользуйтесь DescribeEvents API или разделом Events (События) консоли управления ElastiCache.

Вопрос. После выполнения обработки отказа основной узел оказался не в той зоне доступности, в которой находятся другие ресурсы AWS (например, инстансы Amazon EC2). Повлияет ли это на время задержки?
Зоны доступности спроектированы с учетом обеспечения низкой задержки сетевого подключения к другим зонам доступности того же самого региона. В архитектуре приложения и других ресурсов AWS может потребоваться предусмотреть избыточное копирование в несколько зон доступности, чтобы обеспечить отказоустойчивость приложения в случае сбоя одной из зон доступности.
 
Вопрос. Где получить дополнительную информацию о репликации в несколько зон доступности?
Подробнее об использовании нескольких зон доступности см. в документации ElastiCache.

Резервное копирование и восстановление

Вопрос. Что представляет собой возможность резервного копирования и восстановления?
Возможность резервного копирования и восстановления позволяет создавать снимки состояния кэшей ElastiCache для Redis. Сервис ElastiCache сохраняет снимки состояния, которые впоследствии можно использовать для восстановления кэшей Redis.

Вопрос. Зачем нужны снимки состояния?
Снимки состояния будут полезны в случае потери данных по причине сбоя узла или в маловероятном случае сбоя аппаратного обеспечения. Кроме того, резервные копии часто используют при создании архивов. Снимки состояния хранятся в Amazon S3.

Вопрос. Как работает возможность резервного копирования и восстановления?
При запуске резервного копирования сервис ElastiCache создает снимок состояния указанного кэша Redis, который впоследствии можно будет использовать для восстановления или архивации. Резервное копирование можно запустить в любой момент. Можно также настроить регулярное ежедневное резервное копирование со сроком хранения копий до 35 дней. При выборе снимка состояния для восстановления будет создан новый кэш ElastiCache для Redis, содержащий данные этого снимка состояния. Снимки состояния ElastiCache для Redis совместимы с форматом файлов Redis RDB с открытым исходным кодом.

Вопрос. Как начать выполнение резервного копирования и восстановления?
Функцию резервного копирования и восстановления можно использовать с помощью консоли, ElastiCache API и AWS CLI. Выполнение этих операций можно в любой момент прекратить или запустить снова.

Вопрос. Как настроить выполнение резервного копирования для определенного кэша или узла Redis?
Возможность резервного копирования и восстановления позволяет создавать снимки состояния для каждого кэша. Можно выбрать ElastiCache для кэша Redis, резервную копию которого требуется создать, в консоли, с помощью AWS CLI или ElastiCache API. Рекомендуется выполнять резервное копирование одного кэша реплик чтения для минимизации возникновения задержек в работе первичного узла. При использовании бессерверной конфигурации ElastiCache резервное копирование реплик чтения выполняется автоматически.

Вопрос. Можно ли экспортировать снимки состояния ElastiCache для Redis в принадлежащую мне корзину Amazon S3?
Да. Экспортировать снимки состояния ElastiCache для Redis можно в авторизованную корзину S3, находящуюся в том же регионе, что и кэш.

Вопрос. Я пользуюсь сервисом ElastiCache для Redis в нескольких аккаунтах AWS. Могу ли я использовать снимки состояния ElastiCache одного аккаунта для запуска кластера ElastiCache для Redis в другом аккаунте?
Да. Сначала нужно скопировать снимок состояния в выбранную авторизованную корзину S3, находящуюся в том же регионе, и затем предоставить другому аккаунту разрешение на доступ к корзине.

Вопрос. Какова стоимость использования резервного копирования и восстановления?
Сервис ElastiCache позволяет бесплатно хранить по одному снимку состояния для каждого активного инстанса ElastiCache в кэше Redis. За хранение дополнительных снимков состояния плата начисляется на основании используемого объема хранилища по тарифу 0,085 USD/ГБ в месяц (единый тариф для всех регионов). Передача данных в связи с использованием снимков состояния выполняется бесплатно.

Вопрос. Что произойдет со снимками состояния при удалении ElastiCache для кэша Redis?
При удалении ElastiCache для кэша Redis снимки состояния, созданные вручную, будут сохранены. Кроме того, можно настроить создание финального снимка состояния перед удалением кэша. Автоматически создаваемые снимки состояния кэша при его удалении не сохраняются.

Улучшенное программное ядро

Вопрос. Чем отличается программное ядро ElastiCache для Redis от ядра Redis с открытым исходным кодом?
Программное ядро, используемое в ElastiCache для Redis, полностью совместимо с ядром Redis с открытым исходным кодом, но в нем используются улучшения, которые повышают надежность, производительность и стабильность. Вот некоторые из улучшений.

  • Больший объем используемой памяти. Теперь можно смело выделять приложениям больше памяти без риска увеличить использование подкачки во время синхронизации или создания снимков состояния.
  • Улучшенная синхронизация. Более надежная синхронизация при высоких нагрузках и при восстановлении после разрывов связи в сети. Кроме того, синхронизация происходит быстрее, так как первичный узел и реплики не используют для этой операции дисковые накопители.
  • Более эффективная обработка отказов. В случае обработки отказа сегмент восстанавливается быстрее, так как реплики больше не выполняют очистку данных для полной повторной синхронизации с первичным узлом.
  • Разгрузка TLS и мультиплексирование операций ввода-вывода. Сервис ElastiCache разработан для более эффективного использования доступных ресурсов процессора путем обработки определенных сетевых процессов в выделенных потоках.

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

Вопрос. Сколько стоит использование улучшенного ядра?
Дополнительная плата за использование улучшенного ядра не взимается.

Шифрование

Вопрос. Что обеспечивает шифрование данных при хранении в ElastiCache для Redis?
Шифрование данных при хранении предоставляет механизмы защиты от несанкционированного доступа к данным. Когда оно включено, производится шифрование следующих объектов.

  • Диск во время синхронизации, резервного копирования и замены
  • Резервные копии, хранящиеся в Amazon S3

ElastiCache для Redis обеспечивает шифрование по умолчанию (управляемое сервисом) для данных при хранении, а также возможность использования собственных симметричных, управляемых клиентами, ключей AWS KMS в сервисе AWS KMS. Дополнительные сведения см. в разделе о шифровании данных при хранении.

Вопрос. Что обеспечивает шифрование данных при передаче в ElastiCache для Redis?
Возможность шифрования данных при передаче упрощает шифрование всех данных, передаваемых между клиентами и сервером ElastiCache для Redis, а также между серверами Redis (первичными узлами и репликами чтения). Узнайте больше информации о шифровании данных при передаче в сервисе ElastiCache.

Вопрос. Как использовать шифрование данных при передаче и хранении, а также Redis AUTH?
Шифрование данных при передаче и хранении, Redis AUTH и управление доступом на основе ролей (RBAC) – это функции, которые вы можете выбрать при создании кэша ElastiCache для Redis. Если вы включили шифрование при передаче, то можете выбрать Redis AUTH или RBAC, чтобы укрепить безопасность и улучшить управление доступом.

Вопрос. Требуются ли какие‑либо действия для возобновления сертификатов TLS?
Нет. Сервис ElastiCache самостоятельно управляет сроком действия сертификации и его обновлением. Для текущего обслуживания сертификатов никакие действия со стороны пользователя не требуются.

Вопрос. Возникают ли дополнительные расходы при использовании шифрования?
Нет. За использование шифрования дополнительная плата не взимается.

Глобальное хранилище данных

Вопрос. Что такое глобальное хранилище данных ElastiCache?
Глобальное хранилище данных – это функция ElastiCache для Redis, которая обеспечивает полностью управляемую, быструю, надежную и ориентированную на безопасность репликацию данных между регионами. Глобальное хранилище данных позволяет записывать данные в кэш ElastiCache для Redis в одном регионе и считывать их из не более чем двух других межрегиональных кластеров репликации, благодаря чему чтение и аварийное восстановление между регионами осуществляются с низкой задержкой.

Глобальное хранилище данных предназначено для приложений для работы в режиме реального времени в глобальном масштабе. Оно реплицирует данные между регионами, как правило, на уровне долей секунды, что повышает скорость отклика ваших приложений, обеспечивая географически локальное чтение данных для пользователей. В маловероятном случае снижения производительности во всем регионе один из работоспособных кэшей репликации в другом регионе может быть превращен в первичный узел с полными возможностями чтения и записи. Полный перевод обычно происходит менее чем за минуту после инициации, поэтому ваши приложения останутся доступными.

Вопрос. В какое количество регионов AWS можно выполнять репликацию?
В рамках глобального хранилища данных вы можете реплицировать данные в два вторичных региона. Кэши во вторичных регионах могут использоваться для обеспечения низкой задержки локальных операций чтения, а также для аварийного восстановления в маловероятном случае снижения производительности в масштабах региона.

Вопрос. Какие версии ядра поддерживают глобальное хранилище данных?
Глобальное хранилище данных поддерживается сервисом ElastiCache для Redis версии 5.0.6 и выше.

Вопрос. Как создать глобальное хранилище данных?
Вы можете настроить глобальное хранилище данных, используя существующий кэш или создав новый, который будет использоваться в качестве основного. Вы можете создать глобальное хранилище данных всего за несколько шагов в консоли управления ElastiCache или загрузив последнюю версию AWS SDK либо AWS CLI. Глобальное хранилище данных поддерживается в AWS CloudFormation.

Вопрос. Обеспечивает ли сервис ElastiCache автоматическое аварийное переключение глобального хранилища данных, чтобы назначить вторичный кластер основным в случае снижения производительности основного кластера (региона)?
Нет. Сервис ElastiCache не производит автоматическое назначение вторичного кластера основным в случае ухудшения производительности основного кластера (региона). Вы можете запустить аварийное переключение вручную, назначив вторичный кластер основным. Аварийное переключение и назначение вторичного кластера основным обычно завершаются менее чем за одну минуту.

Вопрос. Как мои данные защищаются при использовании глобального хранилища данных?
Глобальное хранилище данных обеспечивает более высокую безопасность данных благодаря использованию шифрования при передаче межрегионального трафика. Кроме того, можно использовать шифрование данных при хранении, чтобы зашифровать основные и вторичные кэши, а также лучше защитить данные. В каждом первичном и вторичном кэше может быть отдельный ключ AWS KMS, управляемый клиентом, для шифрования при хранении.

Вопрос. Какие характеристики по целевой точке восстановления (RPO) и целевому времени восстановления (RTO) можно ожидать от глобального хранилища данных?
Сервис ElastiCache не предоставляет SLA в отношении RPO и RTO. Основным фактором для RPO является задержка репликации между регионами, которая зависит от задержек в сети между регионами и межрегиональной загруженности сети. RPO глобального хранилища данных обычно не превышает секунды, поэтому данные, записанные в основном регионе, становятся доступны во вторичных регионах в течение одной секунды. RTO глобального хранилища данных для Redis составляет обычно менее минуты. Когда инициируется переключение на вторичный кластер, ElastiCache обычно переводит вторичный кластер в режим полной поддержки чтения и записи менее чем за минуту.

Вопрос. Сколько стоит использование глобального хранилища данных?
Сервис ElastiCache не взимает дополнительную плату за использование глобального хранилища данных для Redis. Оплате подлежит использование основного и вторичного кэшей в глобальном хранилище данных, а также передача данных между регионами.

Многоуровневое хранение данных

Вопрос. Что такое многоуровневое хранение данных в ElastiCache для Redis?
Многоуровневое хранение данных меняет соотношение цены и производительности рабочих нагрузок Redis за счет использования более дешевых твердотельных накопителей (SSD) в каждом узле кластера в дополнение к хранению данных в памяти. Это идеальный вариант для рабочих нагрузок, которым регулярно требуется доступ к 20 % от всего набора данных, а также приложений, для которых не имеет значения дополнительная задержка при обращении к данным на SSD. По сравнению с узлами ElastiCache R6g, располагающими только памятью, у узлов ElastiCache R6gd с памятью и твердотельными накопителями емкость хранилища почти в 5 раз больше. Благодаря этому экономия клиентов при максимальной нагрузке составляет более 60 %.
 
Вопрос. Как работает многоуровневое хранение данных в ElastiCache для Redis?
Многоуровневое хранение данных работает автоматически и прозрачно: когда доступный объем памяти заканчивается, элементы, которые дольше всего не использовались, перемещаются на локально подключенные твердотельные накопители (SSD) NVMe. Если в дальнейшем осуществляется доступ к элементу, хранящемуся на SSD, ElastiCache перед обслуживанием запроса асинхронно возвращает элемент в память.
 
Вопрос: Какую производительность стоит ожидать при использовании кластеров с многоуровневым хранением данных?
Многоуровневое хранение данных оказывает минимальное влияние на производительность приложений. Например, при значении строк в 500 байт дополнительная задержка для запросов к данным на твердотельном накопителе в среднем составит 300 мкс по сравнению с запросами к данным в памяти.
 
Вопрос. Какие версии ядра поддерживают многоуровневое хранение данных?
ElastiCache для Redis поддерживает многоуровневое хранение данных в Redis версии 6.2 и выше.
 
Вопрос: Какие типы узлов поддерживают многоуровневое хранение данных?
ElastiCache для Redis поддерживает многоуровневое хранение данных в кластерах Redis, использующих узлы R6gd.
 
Вопрос: Какие возможности ElastiCache поддерживаются в кластерах, использующих многоуровневое хранение данных?
При использовании многоуровневого хранения данных поддерживаются все команды Redis и большая часть возможностей ElastiCache. Возможности, которые не поддерживаются в кластерах с многоуровневым хранением данных, перечислены в документации.
 
Вопрос: Какова стоимость многоуровневого хранения данных в ElastiCache для Redis?
Начисляется только почасовая плата за использование узла; дополнительная плата за многоуровневое хранение данных не взимается. Узлы с многоуровневым хранением данных предлагаются как зарезервированные узлы с тарифами по требованию. Цены на ElastiCache см. здесь.

Memcached

Функции Memcached

Вопрос. Что можно кэшировать с помощью ElastiCache для Memcached?
С помощью ElastiCache для Memcached можно кэшировать различные объекты: от содержимого хранилищ данных длительного хранения (таких как Служба реляционных баз данных Amazon (Amazon RDS), Amazon Dynamo DB или самостоятельно управляемых БД, размещаемых в Amazon EC2) до динамически создаваемых веб‑страниц (например, с Nginx) или данных переходных сеансов, для которых может не требоваться постоянное хранилище. Memcached также можно использовать для реализации высокочастотных счетчиков для развертывания управления доступом в крупных интернет‑приложениях.

Вопрос. Можно ли использовать ElastiCache для Memcached с хранилищами AWS длительного хранения данных, такими как Amazon RDS или DynamoDB?
Да. ElastiCache является идеальной интерфейсной частью для хранилищ данных, таких как Amazon RDS или DynamoDB. Он может обеспечить высокопроизводительный промежуточный уровень для приложений с большим количеством запросов или жесткими требованиями к задержке.

Вопрос. Сейчас я использую Memcached. Как мне перейти на использование ElastiCache?
Протоколы, используемые ElastiCache, совместимы с Memcached. Таким образом, в сервисе можно использовать стандартные операции Memcached, такие как get, set, incr и decr точно так же, как в существующей среде Memcached. ElastiCache поддерживает как текстовые, так и двоичные протоколы. Он также поддерживает большинство стандартных статистических результатов, которые также можно просмотреть в графическом виде с помощью CloudWatch. Все это позволяет перейти к использованию ElastiCache без перекомпиляции или повторного связывания приложений: библиотеки, которые уже используются, продолжат работать. Чтобы настроить серверы кэширования, к которым получает доступ приложение, нужно обновить файл конфигурации Memcached, чтобы включить в него адреса серверов (узлов), которые выделены пользователю. Чтобы получить список адресов, воспользуйтесь опцией Copy Node Endpoints (Копировать адреса узлов) в консоли или API DescribeCacheClusters. Как и в случае любой другой миграции, мы рекомендуем провести тщательное тестирование ElastiCache после развертывания и только после этого полностью переходить на его использование вместо текущего решения.

Доступ к кластерам ElastiCache в Amazon VPC можно получить из сети Amazon EC2 или из собственного центра обработки данных. Дополнительные сведения см. в разделе Шаблоны доступа к Amazon VPC. ElastiCache использует записи DNS, чтобы разрешать клиентским приложениям обнаруживать серверы (узлы). Имя DNS для узла остается постоянным, но IP‑адрес узла может измениться с течением времени, например если узлы были автоматически заменены после сбоя в случае развертывания сервиса вне VPC. См. рекомендации по действиям в случае сбоев узлов на данной странице вопросов и ответов.

Конфигурация и масштабирование

Вопрос. Как выбрать подходящий тип узла для моего приложения?
Точный ответ на данный вопрос получить сложно, но при использовании ElastiCache не нужно беспокоиться об определении точного количества узлов, т. к. можно быстро добавить или удалить узлы позже. Можно также использовать бессерверную конфигурацию ElastiCache для упрощения работы высокодоступного кэша Memcached. При выборе первоначальной конфигурации рекомендуется учитывать следующие взаимосвязанные аспекты:

  • требуемый для данных общий объем памяти, позволяющий добиться необходимой частоты попаданий в кэш;
  • количество узлов, необходимое для поддержания приемлемой производительности приложений без перегрузки сервера базы данных в случае отказа одного или нескольких узлов.

Требуемый объем памяти зависит от размера набора данных и схемы доступа приложения. Для повышения отказоустойчивости, получив общее представление о необходимом общем объеме памяти, разделите этот объем памяти на достаточное количество узлов таким образом, чтобы приложение могло нормально работать в случае потери одного или двух узлов. Например, если требуется 13 ГБ памяти, можно использовать два узла cache.m4.large вместо одного узла cache.m4.xlarge. Важно, чтобы в ходе восстановления после сбоя одного или нескольких узлов другие системы, такие как базы данных, не были перегружены при временном уменьшении частоты попаданий в кэш. Дополнительные сведения см. в руководстве пользователя ElastiCache.

Вопрос. Может ли кластер располагаться в нескольких зонах доступности?
Да. При создании кластера или добавлении узлов в существующий кластер можно выбрать зоны доступности для новых узлов. Вы можете либо указать запрашиваемое количество узлов в каждой зоне доступности, либо выбрать возможность распределения узлов по всем зонам. Если кластер находится в Amazon VPC, узлы можно размещать только в тех зонах доступности, которые входят в состав группы подсетей, выбранной для кэша. Дополнительные сведения см. в документации по ElastiCache VPC.

Вопрос. Сколько узлов на регион можно запускать в ElastiCache для Memcached?
В каждом регионе можно запускать не более 300 узлов. Если требуется запустить большее количество, заполните форму запроса на увеличение лимитов ElastiCache.

Вопрос. Как реагирует ElastiCache на отказ узла?
Сервис обнаружит отказ узла и будет автоматически выполнять следующие шаги.

  • ElastiCache будет восстанавливать узел путем привлечения новых ресурсов и перенаправит существующее имя DNS узла так, чтобы оно указывало на новые ресурсы сервиса. Во время установки в Amazon VPC сервис ElastiCache при восстановлении узлов в случае сбоя обеспечивает неизменность как имени DNS, так и IP‑адреса узла. При установке вне Amazon VPC сервис ElastiCache обеспечивает неизменность имени DNS, однако основной IP‑адрес узла может измениться.
  • Если связать тему SNS с кластером, после настройки нового узла и его готовности к использованию ElastiCache будет отправлять оповещение SNS о том, что произошло восстановление узла после сбоя. Это позволяет дополнительно адаптировать приложения, заставляя клиентскую библиотеку Memcached повторно подключаться к восстановленным узлам. Такая возможность может потребоваться, так как некоторые библиотеки Memcached перестают использовать сервер (узел) на неопределенный срок, если столкнутся с ошибками связи или тайм‑аутами для этого сервера.

Вопрос. Как увеличить общий объем памяти в ElastiCache, если я определю, что для поддержки приложения мне требуется больший объем памяти?
Можно добавить больше узлов для существующего кластера с помощью операции Add Node (Добавить узел) на вкладке Nodes (Узлы) соответствующего кластера в консоли или путем вызова API ModifyCacheCluster.

Совместимость

Вопрос. Как ElastiCache взаимодействует с другими сервисами AWS?
ElastiCache является идеальной интерфейсной частью для таких сервисов AWS, как Amazon RDS и DynamoDB: он обеспечивает чрезвычайно низкую задержку для высокопроизводительных приложений и берет на себя некоторый объем запросов, в то время как другие сервисы обеспечивают продолжительную сохранность данных. Сервис также можно использовать для повышения производительности приложений в сочетании с Amazon EC2 и Amazon EMR.

Вопрос. Существуют ли языки программирования, предпочтительные для работы с ElastiCache?
Клиентские библиотеки Memcached доступны для многих, если не для всех популярных языков программирования. Если у вас возникли проблемы при использовании конкретного клиента Memcached с ElastiCache, сообщите нам на форуме сообщества ElastiCache.

Вопрос. Какие популярные библиотеки Memcached совместимы с ElastiCache?
ElastiCache не требует специальных клиентских библиотек и работает с существующими клиентскими библиотеками Memcached без перекомпиляции или повторного связывания приложений (Memcached 1.4.5 и более поздних версий). В качестве примера можно привести libMemcached (C) и другие библиотеки, основанные на ней (например, PHP, Perl, Python), spyMemcached (Java) и fauna (Ruby).

Auto Discovery

Вопрос. Что представляет собой возможность Auto Discovery и как ее можно использовать?
Auto Discovery – это возможность, которая экономит время и силы разработчиков, уменьшая сложность их приложений. Auto Discovery позволяет программным клиентам осуществлять автоматическое обнаружение узлов кэша, когда они добавляются или удаляются из кластера ElastiCache. Ранее для обработки изменений в составе кластера разработчикам необходимо было вручную обновлять список адресов узлов кэша. В зависимости от используемой архитектуры клиентского приложения обычно для инициализации клиента требовалось перезапускать приложение, что приводило к перерывам в работе. Благодаря возможности Auto Discovery сервис ElastiCache устраняет эту сложность. Используя Auto Discovery и обратную совместимость с протоколом Memcached, сервис ElastiCache предоставляет программным клиентам информацию о составе кластера кэша. Клиент, способный обрабатывать дополнительную информацию, без какой‑либо инициализации самостоятельно осуществляет перенастройку, чтобы использовать самые актуальные узлы кластера ElastiCache.

Вопрос. Как работает возможность Auto Discovery?
Кластер ElastiCache можно создать с узлами, обращение к которым осуществляется по именованным адресам. Auto Discovery аналогичным образом предоставляет кластеру ElastiCache уникальный адрес конфигурации, представляющий собой запись DNS, которая действует в течение всего срока использования кластера. Эта запись DNS содержит DNS‑имена узлов, которые входят в состав кластера. ElastiCache будет гарантировать, что адрес конфигурации всегда указывает хотя бы на один такой целевой узел. Запрос к целевому узлу возвращает адреса для всех узлов соответствующего кластера. После этого можно подключаться к узлам кластера обычным образом, а также использовать команды протокола Memcached, такие как get, set, incr и decr. Подробные сведения см. в документации. Для использования возможности Auto Discovery необходим клиент, совместимый с Auto Discovery. Клиенты Auto Discovery для Java и PHP можно загрузить в консоли ElastiCache. После инициализации клиент будет автоматически определять текущий состав кластера ElastiCache, используя адрес конфигурации. Когда в кластере кэша добавляются, удаляются или автоматически заменяются узлы после сбоя, клиент Auto Discovery автоматически определяет изменения, и инициализация клиентов вручную не требуется.

Вопрос. Как начать работу с Auto Discovery?
Чтобы начать работу, загрузите клиент кластера ElastiCache, нажав ссылку Download ElastiCache Cluster Client (Загрузить клиент кластера ElastiCache) в консоли ElastiCache. Для загрузки клиента требуется аккаунт ElastiCache. Если такой аккаунт еще не создан, можно зарегистрироваться на странице сведений об ElastiCache. После загрузки клиента можно приступить к настройке и активации кластера ElastiCache, открыв консоль ElastiCache. Подробнее об этом см. в документации.

Вопрос. Если продолжать использовать собственные клиенты Memcached со своим кластером ElastiCache, можно ли пользоваться этой возможностью?
Нет. Использовать возможность Auto Discovery в существующих клиентах Memcached не получится. Для использования Auto Discovery клиент должен быть способен использовать адрес конфигурации и определять адреса узлов кластера. Можно либо использовать клиент кластера ElastiCache, либо расширить возможности существующего клиента Memcached, добавив набор команд Auto Discovery.

Вопрос. Каковы минимальные требования к аппаратному и программному обеспечению для использования Auto Discovery?
Чтобы воспользоваться всеми возможностями Auto Discovery, для подключения к кластеру ElastiCache необходимо использовать клиент, совместимый с Auto Discovery. ElastiCache в настоящее время обеспечивает работу с клиентами, поддерживающими Auto Discovery, для .Net, Java и PHP. Их можно загрузить в консоли ElastiCache. У вас есть возможность создать клиентов для любого другого языка, взяв за основу доступные популярные клиенты Memcached.

Вопрос. Как мне создать или настроить свой клиент Memcached для поддержки Auto Discovery?
Добавить поддержку возможности Auto Discovery можно к любой клиентской библиотеке Memcached. Инструкции по добавлению или изменению собственного клиента для обеспечения поддержки Auto Discovery см. в документации по набору команд Auto Discovery.

Вопрос. Можно ли продолжать работать с текущим клиентом Memcached, если я не собираюсь использовать Auto Discovery?
Да. Сервис ElastiCache по‑прежнему совместим с протоколами Memcached, поэтому в смене клиента необходимости нет. Однако чтобы использовать преимущества возможности Auto Discovery, мы расширили возможности клиента Memcached. Если вы не собираетесь использовать клиент кластера ElastiCache, можно продолжать работу с собственными клиентами или добавить поддержку набора команд Auto Discovery в свою клиентскую библиотеку.

Вопрос. Можно ли при работе с Auto Discovery использовать разнородные клиенты?
Да. К одному и тому же кластеру ElastiCache одновременно можно подключаться с помощью клиента с поддержкой Auto Discovery и обычного клиента Memcached. Как и ранее, ElastiCache полностью совместим с протоколами Memcached.

Вопрос. Можно ли прекратить использование Auto Discovery?
Да. Прекратить использование Auto Discovery можно в любой момент. Чтобы отключить возможность Auto Discovery, укажите нужный режим работы при инициализации клиента кластера ElastiCache. Кроме того, благодаря поддержке Memcached сервисом ElastiCache, можно, как и прежде, просто использовать любой клиент, совместимый с протоколом Memcached.

Управление версиями сервиса

Вопрос. Можно ли самостоятельно принимать решение об обновлении версии сервиса кэширования, используемой кластером ElastiCache, до новых поддерживаемых версий, а также о времени этого обновления?
ElastiCache позволяет пользователю самостоятельно принимать решение об обновлении используемого кластером ПО, совместимого с протоколом Memcached, до новых версий, поддерживаемых ElastiCache, а также о времени этого обновления. Благодаря этому можно гибко обеспечивать совместимость с определенными версиями Memcached, тестировать работу приложения с новыми версиями перед развертыванием в рабочей среде и выполнять обновления версий по своему собственному графику. В связи с тем, что обновление версий сопряжено с некоторым риском несовместимости, оно не выполняется автоматически и должно быть инициировано пользователем. Таким образом, вы самостоятельно управляете процессом обновления версий ПО, но всю трудоемкую работу по применению обновлений выполняет сервис ElastiCache. В последующих пунктах вопросов и ответов подробнее рассказывается об управлении версиями. См. также информацию по данной теме в Руководстве пользователя ElastiCache. Хотя возможности управления версиями ядра позволяют пользователям максимально контролировать процесс обновления, мы сохраняем за собой право самостоятельно применять исправления к кластеру в случае обнаружения любых уязвимостей, касающихся безопасности системы или ПО кэширования.

Вопрос. Как указать, какую из поддерживаемых версий Memcached необходимо запустить в кластере?
Можно указать любую из поддерживаемых в настоящее время версий (второстепенную или основную) при создании нового кластера. Чтобы инициировать обновление до той или иной поддерживаемой версии сервиса, используйте параметр Modify (Изменить) соответствующего кластера. В поле Cache Engine Version (Версия сервиса кэша) укажите версию, до которой хотите выполнить обновление. При этом обновление будет применено либо сразу же (если установлен флажок Applied Immediately), либо во время следующего запланированного интервала обслуживания кластера.

Вопрос. Можно ли перед применением обновлений провести тестирование кластера с новой версией?
Да. Это можно сделать, создав новый кластер с новой версией сервиса. Можно направить приложение, находящееся на стадии разработки или тестирования, на этот кластер, протестировать его и принять решение об обновлении основного кластера.

Вопрос. Предоставляет ли ElastiCache информацию о поддерживаемых новых или об устаревших версиях Memcached, которые еще поддерживаются?
Мы планируем добавить поддержку дополнительных версий Memcached для ElastiCache, как основных, так и второстепенных. Количество выпусков новой версии, поддерживаемых в конкретном году, зависит от частоты выпуска и содержания новых версий Memcached, а также от результатов подробных исследований этих выпусков, проводимых нашей технической службой.

Вопрос. Что нужно сделать, чтобы обновить Memcached до последней версии?
Существующий кластер Memcached можно обновить с помощью процесса Modify. При обновлении старых версий Memcached до версии 1.4.33 и новее удостоверьтесь, что используемое значение параметра max_chunk_size удовлетворяет условиям, необходимым параметру slab_chunk_max. Ознакомьтесь с предварительными требованиями для обновления.

Подробнее о ценах на ElastiCache для Redis

Перейти на страницу цен
Готовы приступить к разработке?
Начало работы с ElastiCache для Redis
Есть вопросы?
Связаться с нами