- Базы данных›
- Amazon ElastiCache›
- Вопросы и ответы по Amazon Elasticache
Вопросы и ответы по Amazon ElastiCache
Общие вопросы
Что такое Amazon ElastiCache?
Amazon ElastiCache – это веб‑сервис, упрощающий развертывание и запуск в облаке процесса кэширования, совместимого с протоколами Valkey, Memcached или Redis OSS. Elasticache повышает производительность приложений, позволяя получать информацию из быстрых и управляемых систем хранения данных в памяти вместо более медленных систем, размещенных на дисках. Сервис берет на себя мониторинг, решение операционных вопросов и управление средами в памяти, позволяя клиентам сосредоточить усилия технических специалистов на разработке приложений. Также с помощью сервиса все эти задачи проще выполнять. Используя ElastiCache, можно не только улучшить время загрузки и отклика на действия или запросы пользователя, но и сократить расходы, связанные с масштабированием интернет-приложений.
ElastiCache позволяет автоматизировать стандартные административные задачи по обеспечению работы распределенной среды хранения в памяти данных типа «ключ‑значение». Используя ElastiCache, всего за пару минут с помощью нескольких действий в Консоли управления AWS можно добавить в архитектуру своего приложения уровень кэширования или хранения в памяти. Elasticache может автоматически поддерживать высокую доступность и обеспечивать доступность соглашения об уровне обслуживания (SLA) на 99,99 %. Протоколы, используемые Elasticache, совместимы с Valkey, Memcached и OSS Redis, поэтому код, приложения и популярные инструменты, уже используемые в существующих средах Valkey, Memcached или OSS Redis, будут эффективно работать с этим сервисом. Предварительные капиталовложения не требуются. Оплата начисляется только за используемые ресурсы.
Что такое кэширование в памяти и как оно может помочь приложениям?
Кэширование в памяти, которое обеспечивает ElastiCache, можно использовать для эффективного снижения задержек и повышения пропускной способности различных приложений с большим количеством операций чтения (например, социальных сетей, игр, сервисов обмена мультимедийными материалами и порталов вопросов и ответов) или предъявляющих повышенные требования к вычислительной мощности (например, сервисов рекомендаций). Кэширование в памяти позволяет увеличить производительность приложений за счет сохранения критически важных блоков данных в памяти для последующего доступа к ним с минимальными задержками. Информация в кэше может включать результаты запросов к базам данных с большим количеством операций ввода‑вывода или результаты ресурсоемких расчетов.
Какие виды управления берет на себя ElastiCache?
ElastiCache управляет операциями, связанными с созданием распределенной среды хранения данных в памяти: от выделения запрошенных ресурсов до установки программного обеспечения. При использовании бессерверной конфигурации Amazon ElastiCache не нужно настраивать инфраструктуру и управлять ею. При разработке собственного кластера ElastiCache сервис автоматически выполняет основную часть стандартных административных задач, таких как установка исправлений ПО, обнаружение сбоев и восстановление. ElastiCache предоставляет пользователю метрики подробного мониторинга работы ресурсов, позволяя быстро выявлять неполадки и реагировать на них. Например, можно задать пороговые значения и получать предупреждения, если один из кэшей окажется перегружен запросами.
Какие программные ядра поддерживает ElastiCache?
ElastiCache предлагает полностью управляемые сервисы Valkey, Memcached и OSS Redis для самых требовательных к ресурсам приложений, которым необходимо время отклика в доли миллисекунды.
Как начать работу с ElastiCache?
Если вы еще не зарегистрировались в сервисе ElastiCache, можно нажать кнопку Get Started (Начать работу) на странице ElastiCache и пройти регистрацию. Для этого потребуется аккаунт AWS. Если такового еще нет, вам будет предложено создать его в начале процесса регистрации в сервисе Elasticache. После регистрации в ElastiCache обратитесь к документации по ElastiCache, в которую входит руководство по началу работы с Amazon ElastiCache.
После ознакомления с ElastiCache вы сможете за считаные минуты создать кэш с помощью консоли или API ElastiCache.
Как создать кэш?
Кэш можно легко создать с помощью консоли, API ElastiCache или инструментов командной строки. При использовании бессерверной конфигурации ElastiCache можно создать кэш, используя рекомендуемые по умолчанию настройки, и начать применять его менее чем через минуту.
Конфигурация Serverless
Что такое бессерверная конфигурация ElastiCache?
Бессерверная конфигурация ElastiCache – это вариант сервиса, позволяющий начать работу с кэшем менее чем за минуту без выделения инфраструктуры или планирования ресурсов. Бессерверная конфигурация ElastiCache устраняет необходимость в трудоемком планировании ресурсов благодаря постоянному мониторингу использования вычислительных ресурсов, памяти и сети кэша, что позволяет мгновенно масштабировать кэш в соответствии с потребностями без простоев и снижения производительности. Бессерверная конфигурация ElastiCache автоматически реплицирует данные в нескольких зонах доступности и предоставляет клиентам SLA с коэффициентом 99,99 % для каждого кэша. При использовании бессерверной конфигурации ElastiCache вы платите только за хранимые данные и вычислительные ресурсы, применяемые вашим приложением. Чтобы начать, создайте кэш бессерверной конфигурации ElastiCache всего за несколько шагов, присвоив ему имя с помощью консоли, пакета средств разработки ElastiCache (SDK) или интерфейса командной строки AWS (AWS CLI).
Как перенести существующую рабочую нагрузку ElastiCache на бессерверную конфигурацию ElastiCache?
Можно перенести существующую рабочую нагрузку ElastiCache, изменив адрес Valkey, Memcached или Redis OSS на новый адрес кэша бессерверной конфигурации ElastiCache в приложении. Указав местоположение файла резервной копии в Простом сервисе хранения данных Amazon Simple Storage Service (Amazon S3), можно перенести существующие данные Elasticache в бессерверную конфигурацию Elasticache. Ознакомьтесь с документацией о бессерверной конфигурации Elasticache, чтобы узнать больше о переносе рабочих нагрузок.
Какие версии Valkey, Memcached и Redis OSS поддерживает бессерверная конфигурация ElastiCache?
Бессерверная конфигурация ElastiCache поддерживает Valkey 7.2, Memcached версии 1.6.21, а также OSS Redis версии 7.0 и более новых версий.
Как выполняется масштабирование в бессерверной конфигурации ElastiCache?
Бессерверная конфигурация ElastiCache непрерывно отслеживает использование памяти, вычислительных ресурсов и сети кэша для мгновенного масштабирования. Бессерверная конфигурация ElastiCache масштабируется без простоев и снижения производительности приложения, позволяя параллельно масштабировать кэш вертикально и горизонтально, чтобы удовлетворить требования приложения точно в срок. Ознакомьтесь с документацией о бессерверной конфигурации ElastiCache, чтобы узнать больше о масштабировании.
Какой уровень доступности гарантирует соглашение об уровне обслуживания для бессерверной конфигурации ElastiCache?
Бессерверная конфигурация ElastiCache автоматически сохраняет данные во многих зонах доступности для обеспечения избыточности и для нее соглашение об уровне обслуживания гарантирует доступность на уровне 99,99 % для всех рабочих нагрузок.
Как оплачивается использование бессерверной конфигурации ElastiCache?
При использовании бессерверной конфигурации ElastiCache вы платите только за хранимые данные и вычислительные ресурсы, используемые вашим приложением. Подробные сведения см. на странице цен на ElastiCache.
Зарезервированные узлы
Что такое зарезервированные узлы ElastiCache?
Зарезервированные узлы или зарезервированные инстансы (RI) позволяют получить значительную скидку по сравнению с использованием по требованию при подтверждении обязательств на один либо на три года. Зарезервированные узлы позволяют однократно внести предоплату, зарезервировав возможность запуска кэша в определенном регионе сроком на один или три года, и получить существенную скидку на текущую почасовую плату за использование. Для зарезервированных узлов существуют три варианта оплаты: с полной предоплатой, без предоплаты и с частичной предоплатой. Выбрав подходящий план, можно добиться оптимального соотношения между авансовыми платежами и почасовой оплатой.
Применяются ли зарезервированные узлы к бессерверной конфигурации ElastiCache?
Благодаря зарезервированным узлам можно получить скидку на использование ElastiCache по запросу. Бессерверная конфигурация ElastiCache несовместима с зарезервированными узлами.
Сколько зарезервированных узлов можно приобрести?
Сервис позволяет приобрести до 300 зарезервированных узлов. Если требуется запустить более 300 узлов, заполните форму запроса узлов ElastiCache.
Можно ли преобразовать уже существующий узел в зарезервированный?
Приобретите зарезервированный узел с тем же классом узла и в том же регионе, какие в данный момент используются в работающем узле, к которому вы хотели бы применить резервирование. Если зарезервированный узел был успешно приобретен, ElastiCache автоматически применит новый пониженный почасовой тариф к существующему узлу.
Если я зарегистрируюсь для получения зарезервированного узла, какой момент времени будет считаться началом резервирования? Что произойдет с узлами после окончания срока резервирования?
Изменение тарифов, связанное с зарезервированным узлом, произойдет сразу после получения запроса и обработки платежа. За состоянием зарезервированных узлов кэша можно следить на странице AWS «История аккаунта» или с помощью API DescribeReservedCacheNodes. Если разовый платеж не удастся успешно выполнить к началу следующего расчетного периода, тариф со скидкой применен не будет.
По истечении срока резервирования за использование узла будет взиматься почасовая плата как за узел по требованию, согласно классу узла и региону.
Как настроить, какие из узлов будут оплачиваться по тарифу для зарезервированных узлов?
API ElastiCache для создания, изменения и удаления узлов являются одинаковыми как для узлов по требованию, так и для зарезервированных узлов, поэтому их можно просто использовать в обоих случаях. При составлении счета наша система автоматически применит тарифы зарезервированных узлов, чтобы соответствующие узлы оплачивались по более низкому почасовому тарифу.
Можно ли перенести зарезервированный узел в другой регион или в другую зону доступности?
Каждый зарезервированный узел связан с определенным регионом. Эта связь сохраняется в течение всего срока резервирования, поэтому ее нельзя изменить. Однако каждое резервирование может использоваться в любой зоне доступности в пределах соответствующего региона.
Можно ли отменить резервирование инстанса?
Нет. Отменить резервирование узла нельзя, и внесенный разовый платеж (если таковой взимался) не возвращается. Каждый час в течение срока действия зарезервированных узлов подлежит оплате независимо от использования.
Как выбор варианта оплаты повлияет на итоговую стоимость?
Если зарезервированный узел приобретается с полной предоплатой, его стоимость будет целиком оплачена авансовым платежом. При выборе варианта «Без предоплаты» авансовые платежи не потребуются. Общая стоимость зарезервированного узла без авансового платежа будет распределена по выплатам за каждый час (вне зависимости от использования инстанса). Частичная предоплата сочетает в себе свойства планов без авансового платежа и вариантов с полной предоплатой. При данном сценарии потребуется небольшой авансовый платеж, а затем при каждой почасовой выплате будет дополнительно взиматься небольшая сумма (вне зависимости от использования инстанса).
Применяется ли гибкость размера к зарезервированным узлам ElastiCache?
Да, зарезервированные узлы ElastiCache предлагают гибкость размера в пределах того же семейства инстансов (или семейства узлов) и в том же регионе AWS. Это означает, что скидка на зарезервированные узлы будет автоматически применяться к использованию узлов всех размеров из выбранного семейства.
Безопасность
Какие существуют средства контроля безопасности для ElastiCache?
ElastiCache позволяет настроить шифрование данных в местах хранения с помощью Сервиса управления ключами AWS (AWS KMS), шифрование данных в движении посредством протокола TLS (безопасность транспортного уровня), аутентификацию благодаря Управлению идентификацией и доступом AWS (IAM) и контроль доступа к сети с использованием групп безопасности Эластичного облака вычислений Amazon (Amazon EC2).
Как управлять доступом к ElastiCache?
Если вы не используете Amazon Virtual Private Cloud (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 входит в программу соответствия AWS требованиям FedRAMP в качестве авторизованного сервиса. С помощью последней версии сервиса Elasticache клиенты и партнеры правительства США могут обрабатывать и хранить данные и системы, соответствующие требованиям FedRAMP, а также размещать критически важные рабочие процессы с высоким уровнем риска в регионе AWS GovCloud (США – восток) и AWS GovCloud (США – запад), а процессы со средним уровнем риска – в регионах «Восток США (Огайо)», «Восток США (Северная Вирджиния)», «Запад США (Северная Калифорния)» и «Запад США (Орегон)».
Ресурсы с подробной информацией см. ниже.
Актуальный перечень программ соответствия, распространяющихся на ElastiCache, см. на странице Сервисы AWS в программе обеспечения соответствия требованиям.
Особенности Valkey
Что такое Valkey?
Valkey – это разработанная под руководством Linux Foundation версия OSS Redis с открытым исходным кодом, поддерживающая множество вариантов использования, таких как кэширование, таблицы лидеров и хранилища сеансов, созданная давними разработчиками и специалистами по поддержанию OSS Redis. Valkey поддерживают более 40 компаний, и после появления в марте 2024 года проект быстро завоевал популярность.
Почему мне следует использовать ElastiCache для Valkey?
ElastiCache для Valkey предоставляет полностью управляемый алгоритм взаимодействия на основе технологии с открытым исходным кодом, гарантирует безопасность, эффективность операций, соглашение об уровне обслуживания с доступностью 99,99 % и надежность, обеспечиваемые AWS. Можно дополнительно оптимизировать затраты на бессерверный ElastiCache для Valkey за счет снижения цены на 33 % и минимального объема хранилища данных 100 МБ, что на 90 % меньше, чем у OSS Redis ElastiCache. При использовании ElastiCache для Valkey на базе узлов стоимость каждого узла можно снизить до 20 %.
Как перейти с ElastiCache для OSS Redis на ElastiCache для Valkey?
Можно обновить имеющийся ElastiCache для OSS Redis до ElastiCache для Valkey без простоев всего за несколько кликов. Сначала можно использовать Консоль управления AWS, Пакет средств разработки ПО (SDK) или интерфейс командной строки (CLI). Дополнительная информация доступна на странице функций ElastiCache, в блоге, посвященном началу работы, и в руководстве пользователя ElastiCache.
Поддерживает ли ElastiCache работу с несколькими зонами доступности?
Да. С помощью Elasticache можно создавать реплики чтения в других зонах доступности AWS. При использовании бессерверной конфигурации Elasticache данные автоматически сохраняются в нескольких зонах для обеспечения высокой доступности. В случае сбоя узла при разработке собственного кэша Elasticache сервис выделит новый узел. В сценариях, в которых происходит сбой первичного узла, Elasticache автоматически делает существующую реплику для чтения основной. Дополнительные сведения о том, как обрабатывать сбои узлов, см. в разделе Общие сведения о репликации.
Как обновить сервис до новой версии ядра?
Быстро обновить ядро до новой версии можно с помощью API-интерфейсов ElastiCache и указания предпочитаемой версии ядра. В консоли ElastiCache выберите кэш и щелкните Modify (Изменить). Процесс обновления ядра разработан таким образом, чтобы сохранить существующие данные. Дополнительные сведения см. в разделе Стратегии и передовые практики кэширования.
Можно ли выполнить возврат к более ранней версии ядра?
Нет. Возврат к более ранней версии ядра не поддерживается.
Можно ли создавать реплики данных в других регионах при работе с ElastiCache?
Да. Создавать реплики в других регионах можно, используя функцию глобального хранилища данных ElastiCache. Глобальное хранилище данных обеспечивает полностью управляемую, быструю, надежную и ориентированную на безопасность межрегиональную репликацию данных. Глобальное хранилище данных позволяет записывать данные в кластер Elasticache в одном регионе и считывать их из не более чем двух других межрегиональных кластеров репликации, благодаря чему чтение и аварийное восстановление между регионами осуществляются с низкой задержкой.
Производительность
Каковы преимущества по производительности предоставляет ElastiCache?
Таких преимуществ несколько.
Elasticache предоставляет улучшенные потоки ввода-вывода, которые значительно повышают пропускную способность и сокращают задержки при масштабировании за счет мультиплексирования, разгрузки уровня представления и многого другого. Усовершенствованные потоки ввода-вывода повышают производительность за счет использования большего количества ядер для обработки операций и динамической адаптации к рабочей нагрузке. Elasticache повышает пропускную способность кластеров с поддержкой протокола TLS за счет переноса шифрования на те же усовершенствованные потоки ввода-вывода. Это позволяет ElastiCache для Valkey обеспечить увеличение пропускной способности до 100 % и снижение задержки P99 на 50 % по сравнению с версией ElastiCache 7.0 для Redis OSS. На узлах r7g.4xlarge или более больших можно обрабатывать свыше 1 млн запросов в секунду на узел или 500 млн запросов в секунду на кластер.
Кроме того, версия ElastiCache 8.0 для Valkey позволяет повысить эффективность использования памяти для кластеров на основе узлов в кластерном режиме за счет использования на 32 байта меньше памяти на раздел по сравнению с версией ElastiCache 7.2 для Valkey и версией 7.1 для Redis OSS. Бессерверная конфигурация обеспечивает повышенную производительность благодаря масштабированию до 5 миллионов запросов в секунду на кэш за считаные минуты, что в 5 раз быстрее, чем у Valkey 7.2, при этом задержка чтения составляет несколько микросекунд.
Как отслеживать загрузку ЦП Valkey?
Elasticache предоставляет два разных набора метрик для измерения использования ЦП кэша в зависимости от выбранного варианта развертывания кэша. При использовании бессерверной конфигурации ElastiCache можно отслеживать загрузку ЦП с помощью метрики ElastiCache Processing Units (ECPU). Количество ECPU, используемых вашими запросами, зависит от времени, затраченного виртуальным ЦПУ, и объема переданных данных. Для каждого простого чтения и записи, например команд Valkey GET и SET или команд Memcached get и set, требуется 1 ECPU на каждый переданный килобайт (КБ) данных. Некоторые команды, работающие со структурами данных в памяти, могут дольше использовать виртуальный процессор, чем команды GET или SET. ElastiCache вычисляет количество использованных ECPU на основе времени, затраченного на выполнение команды виртуальным процессором, по сравнению с базовым показателем времени его работы, затрачиваемого командой SET или GET. Если выполнение команды занимает дополнительное время использования виртуального процессора и передает больше данных, чем 1 ECPU при базовой производительности, Elasticache рассчитывает необходимое количество процессоров на основе большего из двух параметров.
При проектировании собственного кластера вы можете отслеживать метрики EngineCPUUtilization и CPUUtilization. Метрика CPUUtilization оценивает загрузку ЦП для каждого инстанса (узла), а EngineCPUUtilization – общую загрузку ЦП на уровне процесса ядра. Метрика EngineCPUUtilization введена в дополнение к метрике CPUUtilization, так как основной процесс ядра является однопоточным и использует только одно ядро из всех доступных на инстансе ядер ЦП. Соответственно, метрика CPUUtilization не отражает в полной мере степень загрузки ЦП на уровне процесса. Чтобы точно понимать фактическую загрузку ЦП на кластерах Valkey, рекомендуется использовать сочетание метрик CPUUtilization и EngineCPUUtilization.
Оба набора метрик доступны во всех регионах AWS, а работать с ними можно с помощью сервиса Amazon CloudWatch или консоли. Кроме того, мы рекомендуем ознакомиться с документацией, чтобы узнать о полезных метриках для мониторинга производительности.
Реплика чтения
Что значит запустить узел как реплику чтения?
Реплики чтения служат для двух целей:
- обработки сбоев;
- масштабирования при обслуживании запросов чтения.
При запуске кэша как реплики чтения первичный узел обслуживает процессы записи и чтения. Реплика обслуживает исключительно трафик чтения, а также доступна в среде теплого резервирования на случай повреждения первичного узла.
В каких случаях стоит использовать реплики чтения Valkey?
В бессерверной конфигурации Elasticache реплики чтения автоматически поддерживаются сервисом. При проектировании собственного кэша развертывание одной и более реплик чтения для данного первичного узла успешно применяется в различных сценариях. Ниже перечислены самые распространенные из них.
- Масштабирование вычислительных ресурсов или ресурсов ввода‑вывода одного первичного узла для выполнения рабочих нагрузок с большим количеством операций чтения. Избыточный трафик чтения можно направить на одну и более реплик чтения.
- Обслуживание трафика чтения в случае недоступности первичного узла. Если первичный узел не принимает запросы ввода‑вывода (например, в связи с приостановкой ввода‑вывода во время выполнения резервного копирования или запланированного обслуживания), трафик операций чтения можно направить на реплики чтения. Следует учесть, что в этом случае данные, которые содержит реплика чтения, могут оказаться устаревшими вследствие недоступности основного инстанса. Реплику чтения также можно использовать для перезапуска отказавшего первичного узла.
Сценарии защиты данных. В маловероятном случае сбоя первичного узла или зоны доступности, в которой он находится, реплику чтения в другой зоне доступности можно назначить новым первичным узлом.
Как подключиться к репликам чтения?
Вы можете подключиться к реплике чтения так же, как и к первичному узлу кэша. Порядок распределения трафика чтения по множеству реплик чтения определяется приложением. Дополнительные сведения.
- Кластеры Valkey или OSS Redis (режим кластера отключен) используют отдельные адреса узла для операций чтения (в API и CLI они называются адресами чтения).
- Кластеры Valkey или OSS Redis (режим кластера включен) используют для всех адресов конфигурации кластера. Кроме того, выполнять операции чтения по-прежнему можно из адресов узлов (в API и CLI они называются адресами чтения).
Сколько реплик чтения можно создать для одного первичного узла?
ElastiCache позволяет создать не более пяти (5) реплик чтения для одного первичного узла кэша.
Что произойдет с репликами чтения при применении механизма отказоустойчивости?
В случае аварийного переброса репликация всех связанных и доступных реплик чтения автоматически возобновится сразу же по завершении переброса (с применением обновлений, которые содержатся в репликах, ставших основными).
Как ElastiCache обновляет реплику чтения на первичном узле?
Обновления первичного узла кэша автоматически реплицируются во все связанные реплики чтения. Однако в связи с применением поддерживаемой Valkey или OSS Redis асинхронной репликации обновления реплики чтения могут отставать от обновлений соответствующего первичного узла кэша. Ниже перечислены наиболее частые причины такого отставания.
- Объем операций ввода‑вывода при записи в первичный узел кэша превышает скорость применения обновлений к реплике чтения.
- Сетевое разграничение или задержка между первичным узлом кэша и репликой чтения.
Функционирование реплик чтения зависит от характеристик встроенной репликации Valkey или OSS Redis. Используя реплики чтения, следует учитывать потенциальное время отставания реплики от ее первичного узла кэша (так называемую противоречивость). ElastiCache создает метрику, чтобы помочь вам разобраться в сути противоречивости.
Сколько стоит использование реплик чтения? С какого момента начинается и когда заканчивается начисление платы?
Плата за реплики чтения начисляется по той же схеме и тарифам, что и за стандартные узлы кэша. Как и при использовании стандартных узлов кэша, тариф за узел кэша в час для реплик чтения определяется классом узла кэша реплики чтения. Актуальные цены на ElastiCache см. здесь. За передачу данных при выполнении их репликации между первичным узлом кэша и репликой чтения плата не начисляется. Начисление платы за использование реплики чтения начинается сразу после ее успешного создания (с момента, когда ее состояние отобразится как «активное»). Плата за использование реплики чтения продолжает начисляться по стандартным почасовым тарифам для узлов кэша ElastiCache, пока не будет дана команда удалить ее.
Что происходит во время обработки отказа и сколько времени это занимает?
Сервис ElastiCache поддерживает выполнение инициированной обработки отказа, при этом операции кэширования будут возобновлены в кратчайшие сроки. При выполнении обработки отказа ElastiCache изменяет запись DNS узла кэша таким образом, чтобы она указывала на реплику чтения, которая становится первичным узлом. Рекомендуется выполнить повторную попытку подключения к узлу кэша на уровне приложения. Как правило, выполнение всех пяти шагов занимает не более шести минут.
Это события автоматической обработки отказа, перечисленные в порядке возникновения:
- Сообщение группы репликации: Test Failover API called for node group <node-group-id> (Вызов тестирования API обработки отказа для группы узлов <node-group-id>)
- Сообщение кластера кэша: Failover from primary node <primary-node-id> to replica node <node-id> completed (Обработка отказа с передачей роли первичного узла от <primary-node-id> узлу реплики <node-id> завершена)
- Сообщение группы репликации: Failover from primary node <primary-node-id> to replica node <node-id> completed (Обработка отказа с передачей роли первичного узла от <primary-node-id> узлу реплики <node-id> завершена)
- Сообщение кластера кэша: Recovering cache nodes <node-id> (Восстановление узлов кэша <node-id>)
- Сообщение кластера кэша: Recovering cache nodes <node-id> (Восстановление узлов кэша <node-id> завершено)
Можно ли создать реплику чтения в регионе, отличном от региона первичного узла?
Нет. Реплики чтения можно создавать в той же или в другой зоне доступности региона, в котором находится первичный узел кэша. Однако можно использовать глобальное хранилище данных в целях полностью управляемой, быстрой, надежной и ориентированной на безопасность репликации в нескольких регионах AWS. С помощью этой функции можно создать межрегиональные кластеры реплик чтения для обеспечения чтения с низкой задержкой в Elasticache и для аварийного восстановления в нескольких регионах AWS.
Можно ли добавлять узлы реплики чтения в свою кластерную среду или удалять из нее?
Да. Можно добавлять или удалять реплики чтения в одном либо нескольких сегментах кластерной среды. Во время этого процесса кластер остается доступным и обслуживает входящие операции ввода‑вывода.
Развертывание в нескольких зонах доступности
В чем заключается поддержка нескольких зон доступности в ElastiCache?
Поддержка нескольких зон доступности позволяет работать в более высокодоступной конфигурации при разработке собственного кэша Elasticache. Все кэши бессерверной конфигурации Elasticache автоматически запускаются в нескольких зонах доступности. Группа репликации Elasticache состоит из первичного узла и не более чем пяти реплик чтения. Если используется несколько зон доступности, то по крайней мере одна реплика должна быть основной. При некоторых видах планового обслуживания или в маловероятном случае сбоя узла ElastiCache либо всей зоны доступности ElastiCache автоматически обнаружит сбой первичного узла, выберет реплику чтения и назначит ее новым первичным узлом. Кроме того, ElastiCache внесет изменения DNS, связанные с этой репликой чтения. Таким образом, если ваше приложение выполняет запись в основной узел, изменение адреса не потребуется.
Какие преимущества дает поддержка нескольких зон доступности и когда ее следует использовать?
Основные преимущества запуска Elasticache в нескольких зонах доступности – это повышение доступности и снижение потребности в администрировании. При запуске Elasticache в нескольких зонах доступности кэши соответствуют требованиям SLA на уровне 99,99 %. При сбое первичного узла Elasticache он будет недоступен для чтения и записи лишь в течение времени, требуемого для выполнения обработки отказа. Если используются возможности нескольких зон доступности, обработка отказа узла Elasticache выполняется автоматически и не требует никаких действий администратора.
Как работает поддержка нескольких зон доступности?
Если вы используете Elasticache и у вас имеется группа репликации, состоящая из первичного узла и одной или нескольких реплик чтения, можно воспользоваться развертыванием в нескольких зонах доступности. В таких развертываниях Elasticache автоматически обнаруживает сбой первичного узла, выбирает одну из доступных реплик чтения и назначает ее новым первичным узлом. ElastiCache вносит изменения DNS, связанные с этой репликой чтения, и приложение продолжает выполнять запись в основной узел. Кроме того, ElastiCache будет пытаться создать новый узел для замены реплики чтения, которая была назначена основным узлом, в той же зоне доступности, где находился отказавший основной узел. В случае сбоя основного узла в связи с временным нарушением работы зоны доступности новая реплика будет запущена, как только работа зоны доступности возобновится.
Можно ли поместить реплики в ту же зону доступности, где находится первичный узел?
Да. Обратите внимание на то, что размещение первичного узла и реплик в одной и той же зоне доступности не повысит устойчивость группы репликации Elasticache к сбоям в работе зоны доступности.
В каких случаях ElastiCache выполняет переключение на реплику чтения?
ElastiCache выполняет обработку отказа на реплику чтения в следующих случаях.
- Потеря доступности в зоне доступности первичного узла
- Потеря сетевого подключения к основному инстансу
- Сбой вычислительного блока основного инстанса
Какая реплика чтения будет назначена новым первичным узлом в случае сбоя текущего первичного узла?
Если реплик чтения несколько, первичным узлом назначается реплика с наименьшей задержкой асинхронной репликации.
Отобразит ли сервис предупреждение о том, что выполнена автоматическая обработка отказа?
Да. ElastiCache создает событие, чтобы оповестить клиента об автоматическом выполнении обработки отказа. Для получения информации о событиях, связанных с узлом ElastiCache, воспользуйтесь DescribeEvents API или разделом Events (События) консоли управления ElastiCache.
После применения механизма отказоустойчивости первичный узел оказался не в той зоне доступности, в которой находятся другие ресурсы AWS (например, инстансы Amazon EC2). Повлияет ли это на время задержки?
Зоны доступности спроектированы с учетом обеспечения низкой задержки сетевого подключения к другим зонам доступности того же самого региона. В архитектуре приложения и других ресурсов AWS может потребоваться предусмотреть избыточное копирование в несколько зон доступности, чтобы обеспечить отказоустойчивость приложения в случае сбоя одной из зон доступности.
Где получить дополнительную информацию о репликации в несколько зон доступности?
Подробнее об использовании нескольких зон доступности см. в документации ElastiCache.
Резервное копирование и восстановление
Что представляет собой функция резервного копирования и восстановления?
Функция резервного копирования и восстановления позволяет создавать снимки состояния кэшей Elasticache. Сервис Elasticache сохраняет снимки состояния, которые впоследствии можно использовать для восстановления кэшей. В настоящее время это поддерживается ElastiCache для Valkey, ElastiCache для Redis OSS и бессерверными системами.
Зачем нужны снимки состояния?
Снимки состояния будут полезны в случае потери данных по причине сбоя узла или в маловероятном случае сбоя аппаратного обеспечения. Кроме того, резервные копии часто используют при создании архивов. Снимки состояния томов помещаются в хранилище Amazon S3.
Можно ли экспортировать снимки состояния ElastiCache в принадлежащую мне корзину Amazon S3?
Да. Экспортировать снимки состояния Elasticache можно в авторизованную корзину S3, находящуюся в том же регионе, что и кэш.
Я пользуюсь сервисом ElastiCache в нескольких аккаунтах AWS. Могу ли я использовать снимки состояния ElastiCache из одного аккаунта для создания кластера ElastiCache в другом аккаунте?
Да. Сначала нужно скопировать снимок состояния в выбранную авторизованную корзину S3, находящуюся в том же регионе, и затем предоставить другому аккаунту разрешение на доступ к корзине.
Какова стоимость использования резервного копирования и восстановления?
Сервис Elasticache позволяет бесплатно хранить по одному снимку состояния для каждого активного инстанса кэша Elasticache. За хранение дополнительных снимков состояния плата начисляется на основании используемого объема хранилища по тарифу 0,085 USD/ГБ в месяц (единый тариф для всех регионов). Передача данных, связанных с использованием снимков состояния, не тарифицируется.
Что произойдет со снимками состояния при удалении кэша ElastiCache?
При удалении кэша Elasticache снимки состояния, созданные вручную, будут сохранены. Кроме того, можно настроить создание финального снимка состояния перед удалением кэша. Автоматически создаваемые снимки состояния кластера кэша при его удалении не сохраняются.
Улучшенное программное ядро
Чем ядро ElastiCache отличается от ядра Valkey или Redis OSS?
Программное ядро, используемое в Elasticache, полностью совместимо с ядром Valkey и OSS Redis, но в нем используются улучшения, которые повышают надежность, производительность и стабильность. Вот некоторые из улучшений.
- Больший объем используемой памяти. Теперь можно смело выделять приложениям больше памяти без риска увеличить использование подкачки во время синхронизации и записи снимков состояния.
- Улучшенная синхронизация. Более надежная синхронизация при высоких нагрузках и при восстановлении после разрывов связи в сети. Кроме того, синхронизация происходит быстрее, так как основной узел и реплики не используют для этой операции дисковые накопители.
- Более эффективная обработка отказов. В случае обработки отказа сегмент восстанавливается быстрее, так как реплики больше не выполняют очистку данных для полной повторной синхронизации с первичным узлом.
Нужно ли менять код приложения для того, чтобы использовать улучшенное ядро для ElastiCache?
Улучшенное ядро полностью совместимо с ядром Valkey или OSS Redis, поэтому можно пользоваться повышенной надежностью и стабильностью без необходимости вносить изменения в код приложения.
Сколько стоит использование улучшенного ядра?
Дополнительная плата за использование улучшенного ядра не взимается.
Шифрование
Как использовать шифрование данных при передаче и хранении, а также Valkey или Redis OSS AUTH?
Шифрование данных при передаче и хранении, Valkey AUTH и управление доступом на основе ролей (RBAC) – это функции, которые можно выбрать при создании кэша ElastiCache. Если вы включили шифрование при передаче, то можете выбрать AUTH или RBAC, чтобы укрепить безопасность и улучшить управление доступом.
Что обеспечивает шифрование данных при хранении в ElastiCache?
Шифрование данных при хранении предоставляет механизмы защиты от несанкционированного доступа к данным. Когда оно включено, производится шифрование следующих объектов.
- Диск во время синхронизации, резервного копирования и замены
- Резервные копии, хранящиеся в Amazon S3
Elasticache обеспечивает шифрование по умолчанию (управляемое сервисом) для данных при хранении, а также возможность использования собственных симметричных, управляемых клиентами ключей AWS KMS в сервисе AWS KMS. Дополнительные сведения см. в разделе о шифровании данных при хранении.
Что обеспечивает шифрование данных при передаче в ElastiCache?
Функция шифрования данных при передаче упрощает шифрование всех данных, передаваемых между клиентами и сервером Elasticache, а также между серверами (первичными узлами и репликами чтения). Подробнее о шифровании данных при передаче в сервисе Elasticache.
Требуются ли какие‑либо действия для возобновления сертификатов TLS?
Нет. Сервис ElastiCache самостоятельно управляет сроком действия сертификации и его обновлением. Для текущего обслуживания сертификатов никакие действия со стороны пользователя не требуются.
Возникают ли дополнительные расходы при использовании шифрования?
Нет. За использование шифрования дополнительная плата не взимается.
Глобальное хранилище данных
Что такое глобальное хранилище данных ElastiCache?
Глобальное хранилище данных – это функция ElastiCache, которая обеспечивает полностью управляемую, быструю, надежную и ориентированную на безопасность репликацию данных между регионами. Глобальное хранилище данных позволяет записывать данные в кэш в одном регионе и считывать их из не более чем двух других межрегиональных кластеров репликации, благодаря чему чтение и аварийное восстановление между регионами осуществляются с низкой задержкой.
Глобальное хранилище данных предназначено для приложений для работы в режиме реального времени в глобальном масштабе. Оно реплицирует данные между регионами, как правило, на уровне долей секунды, что повышает скорость отклика ваших приложений, обеспечивая географически локальное чтение данных для пользователей. В маловероятном случае снижения производительности во всем регионе один из работоспособных кэшей репликации в другом регионе может быть превращен в первичный узел с полными возможностями чтения и записи. Полный перевод обычно происходит менее чем за минуту после инициации, поэтому ваши приложения останутся доступными.
Какие версии ядра поддерживают глобальное хранилище данных?
Глобальное хранилище данных поддерживается в ElastiCache версии 7.2 для Valkey и ElastiCache версии 5.0.6 и более новых для OSS Redis.
В какое количество регионов AWS можно выполнять репликацию?
В рамках глобального хранилища данных вы можете реплицировать данные в два вторичных региона. Кэши во вторичных регионах могут использоваться для обеспечения низкой задержки локальных операций чтения, а также для аварийного восстановления в маловероятном случае снижения производительности в масштабах региона.
Как создать глобальное хранилище данных?
Вы можете настроить глобальное хранилище данных, используя существующий кэш или создав новый, который будет использоваться в качестве основного. Вы можете создать глобальное хранилище данных всего за несколько шагов в консоли управления ElastiCache или загрузив последнюю версию AWS SDK либо AWS CLI. Глобальное хранилище данных поддерживается в AWS CloudFormation.
Обеспечивает ли сервис ElastiCache автоматическое аварийное переключение для глобального хранилища данных, то есть назначение вторичного кластера новым первичным в случае снижения производительности первичного кластера или региона, в котором он расположен?
Нет. Сервис ElastiCache не производит автоматическое назначение вторичного кластера основным в случае ухудшения производительности основного кластера (региона). Вы можете запустить аварийное переключение вручную, назначив вторичный кластер основным. Аварийное переключение и назначение вторичного кластера основным обычно завершаются менее чем за одну минуту.
Какие характеристики по целевой точке восстановления (RPO) и целевому времени восстановления (RTO) можно ожидать от глобального хранилища данных?
Сервис ElastiCache не предоставляет SLA в отношении RPO и RTO. Основным фактором для RPO является задержка репликации между регионами, которая зависит от задержек в сети между регионами и межрегиональной загруженности сети. RPO глобального хранилища данных обычно не превышает секунды, поэтому данные, записанные в первичном регионе, становятся доступны во вторичных регионах в течение одной секунды. RTO глобального хранилища данных составляет обычно менее минуты. Когда инициируется переключение на вторичный кластер, Elasticache обычно переводит вторичный кластер в режим полной поддержки чтения и записи менее чем за минуту.
Сколько стоит использование глобального хранилища данных?
Сервис Elasticache не взимает дополнительную плату за использование глобального хранилища данных. Оплате подлежит использование первичного и вторичного кэшей в глобальном хранилище данных, а также передача данных между регионами.
Функции 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 можно в любой момент. Чтобы отключить возможность Auto Discovery, укажите нужный режим работы при инициализации клиента кластера ElastiCache. Кроме того, благодаря поддержке Memcached сервисом ElastiCache, можно, как и прежде, просто использовать любой клиент, совместимый с протоколом Memcached.
Каковы минимальные требования к аппаратному и программному обеспечению для использования Auto Discovery?
Чтобы воспользоваться всеми возможностями Auto Discovery, для подключения к кластеру ElastiCache необходимо использовать клиент, совместимый с Auto Discovery. ElastiCache в настоящее время обеспечивает работу с клиентами, поддерживающими Auto Discovery, для .Net, Java и PHP. Их можно загрузить в консоли ElastiCache. У вас есть возможность создать клиентов для любого другого языка, взяв за основу доступные популярные клиенты Memcached.
Как добавить поддержку Auto Discovery в собственный клиент Memcached?
Добавить поддержку возможности 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?
Elasticache – это веб‑сервис, упрощающий развертывание и запуск в облаке процесса кэширования, совместимого с протоколом OSS Redis. Сервис обеспечивает управление узлами OSS Redis, их мониторинг и эксплуатацию. Создание, удаление и изменение узлов выполняется с помощью консоли Elasticache, AWS CLI или API данного веб‑сервиса. Elasticache поддерживает конфигурации с высоким уровнем доступности, в том числе включение режима кластера OSS Redis и отключение режима кластера с автоматической обработкой отказа с основного сервера на реплику.
Совместим ли протокол ElastiCache с сервисом Redis OSS?
Да, сервис Elasticache разработан с учетом соответствия протоколов требованиям OSS Redis. Код, приложения, драйверы и инструменты, которые сейчас используются с существующим автономным хранилищем данных OSS Redis, продолжат функционировать с сервисом Elasticache. Если не указано иное, для существующих развертываний OSS Redis при переносе в сервис Elasticache никаких изменений в код вносить не требуется.
Сколько стоит ElastiCache для Redis?
Ознакомьтесь с действующими тарифами на странице цен.
Поддерживает ли ElastiCache работу с несколькими зонами доступности?
Да. С помощью Elasticache можно создавать реплики чтения в других зонах доступности AWS. При использовании бессерверной конфигурации Elasticache данные автоматически сохраняются в нескольких зонах для обеспечения высокой доступности. В случае сбоя узла при разработке собственного кэша Elasticache сервис выделит новый узел. В сценариях, в которых происходит сбой первичного узла, Elasticache автоматически делает существующую реплику для чтения основной. Дополнительные сведения о том, как обрабатывать сбои узлов, см. в разделе Общие сведения о репликации.
Как обновить сервис до новой версии ядра?
Быстро обновить ядро до новой версии можно с помощью API-интерфейсов ElastiCache и указания предпочитаемой версии ядра. В консоли ElastiCache выберите кэш и щелкните Modify (Изменить). Процесс обновления ядра разработан таким образом, чтобы сохранить существующие данные. Дополнительные сведения см. в разделе Стратегии и передовые практики кэширования.
Можно ли выполнить возврат к более ранней версии ядра?
Нет. Возврат к более ранней версии ядра не поддерживается.
Можно ли создавать реплики данных в других регионах при работе с ElastiCache?
Да. Создавать реплики в других регионах можно, используя глобальное хранилище данных ElastiCache. Глобальное хранилище данных обеспечивает полностью управляемую, быструю, надежную и ориентированную на безопасность межрегиональную репликацию данных. Глобальное хранилище данных позволяет записывать данные в кластер Elasticache в одном регионе и считывать их из не более чем двух других межрегиональных кластеров репликации, благодаря чему чтение и аварийное восстановление между регионами осуществляются с низкой задержкой.
Производительность
Каковы преимущества по производительности предоставляет ElastiCache?
Elasticache предоставляет улучшенные потоки ввода-вывода, которые значительно повышают пропускную способность и сокращают задержки при масштабировании за счет мультиплексирования, разгрузки уровня представления и многого другого. Усовершенствованные потоки ввода-вывода повышают производительность за счет использования большего количества ядер для обработки операций и динамической адаптации к рабочей нагрузке. Elasticache повышает пропускную способность кластеров с поддержкой протокола TLS за счет переноса шифрования на те же усовершенствованные потоки ввода-вывода. В Elasticache (OSS Redis) версии 7.0 появилось улучшенное мультиплексирование ввода-вывода, которое объединяет множество клиентских запросов в один канал и повышает эффективность потока.
В ElastiCache для OSS Redis версии 7.1 расширена функциональность усовершенствованных потоков ввода-вывода, чтобы они также обрабатывали логику уровня представления. Они не только считывают входные данные клиента, но и анализируют их в двоичном формате команд, которые затем передаются в основной поток для выполнения, чтобы повысить производительность. С помощью Elasticache версии 7.1 для OSS Redis можно добиться увеличения пропускной способности на 100 % и снижения задержки P99 на 50 % по сравнению с предыдущей версией. На инстансе r7g.4xlarge и выше можно обрабатывать более 1 миллиона запросов в секунду (RPS) на узел.
Как отслеживать загрузку ЦП Redis OSS?
Elasticache предоставляет два разных набора метрик для измерения использования ЦП кэша в зависимости от выбранного варианта развертывания кэша. При использовании бессерверной конфигурации ElastiCache можно отслеживать загрузку ЦП с помощью метрики ElastiCache Processing Units (ECPU). Количество ECPU, используемых вашими запросами, зависит от времени, затраченного виртуальным ЦПУ, и объема переданных данных. Для каждого простого чтения и записи, например команд OSS Redis GET и SET или команд Memcached get и set, требуется 1 ECPU на каждый переданный килобайт (КБ) данных. Некоторые команды OSS Redis, работающие со структурами данных в памяти, могут дольше использовать виртуальное ЦПУ, чем команды GET или SET. ElastiCache вычисляет количество использованных ECPU на основе времени, затраченного на выполнение команды виртуальным процессором, по сравнению с базовым показателем времени его работы, затрачиваемого командой SET или GET. Если выполнение команды занимает дополнительное время использования виртуального процессора и передает больше данных, чем 1 ECPU при базовой производительности, Elasticache рассчитывает необходимое количество процессоров на основе большего из двух параметров.
При проектировании собственного кластера вы можете отслеживать метрики EngineCPUUtilization и CPUUtilization. Метрика CPUUtilization оценивает загрузку ЦП для каждого инстанса (узла), а EngineCPUUtilization – общую загрузку ЦП на уровне процесса ядра. Метрика EngineCPUUtilization введена в дополнение к метрике CPUUtilization, так как основной процесс OSS Redis является однопоточным и использует только одно ядро из всех доступных на инстансе ядер ЦП. Соответственно, метрика CPUUtilization не отражает в полной мере степень загрузки ЦП на уровне процесса ядра. Для того чтобы точно понимать фактическую загрузку ЦП на кластерах OSS Redis, рекомендуется использовать сочетание метрик CPUUtilization и EngineCPUUtilization.
Оба набора метрик доступны во всех регионах AWS, а работать с ними можно с помощью сервиса Amazon CloudWatch или в консоли. Кроме того, мы рекомендуем ознакомиться с документацией, чтобы узнать о полезных метриках для мониторинга производительности.
Реплики чтения
Что значит запустить узел как реплику чтения?
Реплики чтения в OSS Redis служат для:
- обработки сбоев;
- масштабирования при обслуживании запросов чтения.
При запуске кэша как реплики чтения первичный узел обслуживает процессы записи и чтения. Реплика обслуживает исключительно трафик чтения, а также доступна в среде теплого резервирования на случай повреждения первичного узла.
В каких случаях стоит использовать реплики чтения Redis OSS?
В бессерверной конфигурации Elasticache реплики чтения автоматически поддерживаются сервисом. При проектировании собственного кэша развертывание одной и более реплик чтения для данного первичного узла успешно применяется в различных сценариях. Ниже перечислены самые распространенные из них.
- Масштабирование вычислительных ресурсов или ресурсов ввода‑вывода одного первичного узла для выполнения рабочих нагрузок с большим количеством операций чтения. Избыточный трафик чтения можно направить на одну и более реплик чтения.
- Обслуживание трафика чтения в случае недоступности первичного узла. Если первичный узел не принимает запросы ввода‑вывода (например, в связи с приостановкой ввода‑вывода во время выполнения резервного копирования или запланированного обслуживания), трафик операций чтения можно направить на реплики чтения. Следует учесть, что в этом случае данные, которые содержит реплика чтения, могут оказаться устаревшими вследствие недоступности основного инстанса. Реплику чтения также можно использовать для перезапуска отказавшего первичного узла.
- Сценарии защиты данных. В маловероятном случае сбоя первичного узла или зоны доступности, в которой он находится, реплику чтения в другой зоне доступности можно назначить новым первичным узлом.
Как подключиться к репликам чтения?
Вы можете подключиться к реплике чтения так же, как и к первичному узлу кэша. Порядок распределения трафика чтения по множеству реплик чтения определяется приложением. Дополнительные сведения.
- Кластеры OSS Redis (режим кластера отключен) используют отдельные адреса узла для операций чтения (в API и CLI они называются адресами чтения).
- Кластеры OSS Redis (режим кластера включен) используют для всех адресов конфигурации кластера. Кроме того, выполнять операции чтения по-прежнему можно из адресов узлов (в API и CLI они называются адресами чтения).
Сколько реплик чтения можно создать для одного первичного узла?
ElastiCache позволяет создать не более пяти (5) реплик чтения для одного первичного узла кэша.
Что произойдет с репликами чтения при применении механизма отказоустойчивости?
В случае аварийного переброса репликация всех связанных и доступных реплик чтения автоматически возобновится сразу же по завершении переброса (с применением обновлений, которые содержатся в репликах, ставших основными).
Как ElastiCache обновляет реплику чтения на первичном узле?
Обновления первичного узла кэша автоматически реплицируются во все связанные реплики чтения. Однако в связи с применением поддерживаемой OSS Redis асинхронной репликации обновления реплики чтения могут отставать от обновлений соответствующего первичного узла кэша. Ниже перечислены наиболее частые причины такого отставания.
- Объем операций ввода‑вывода при записи в первичный узел кэша превышает скорость применения обновлений к реплике чтения.
- Сетевое разграничение или задержка между первичным узлом кэша и репликой чтения.
Функционирование реплик чтения зависит от характеристик встроенной репликации OSS Redis. Используя реплики чтения, следует учитывать потенциальное время отставания реплики от ее первичного узла кэша (так называемую противоречивость). ElastiCache отправляет значения метрики для анализа несогласованности.
Сколько стоит использование реплик чтения? С какого момента начинается и когда заканчивается начисление платы?
Плата за реплики чтения начисляется по той же схеме и тарифам, что и за стандартные узлы кэша. Как и при использовании стандартных узлов кэша, тариф за узел кэша в час для реплик чтения определяется классом узла кэша реплики чтения. Актуальные цены на ElastiCache см. здесь. За передачу данных при выполнении их репликации между первичным узлом кэша и репликой чтения плата не начисляется. Начисление платы за использование реплики чтения начинается сразу после ее успешного создания (с момента, когда ее состояние отобразится как «активное»). Плата за использование реплики чтения продолжает начисляться по стандартным почасовым тарифам для узлов кэша ElastiCache, пока не будет дана команда удалить ее.
Что происходит во время обработки отказа и сколько времени это занимает?
Сервис ElastiCache поддерживает выполнение инициированной обработки отказа, при этом операции кэширования будут возобновлены в кратчайшие сроки. При выполнении обработки отказа ElastiCache изменяет запись DNS узла кэша таким образом, чтобы она указывала на реплику чтения, которая становится первичным узлом. Рекомендуется выполнить повторную попытку подключения к узлу кэша на уровне приложения. Как правило, выполнение всех пяти шагов занимает не более шести минут.
Это события автоматической обработки отказа, перечисленные в порядке возникновения:
- Сообщение группы репликации: Test Failover API called for node group <node-group-id> (Вызов тестирования API обработки отказа для группы узлов <node-group-id>)
- Сообщение кластера кэша: Failover from primary node <primary-node-id> to replica node <node-id> completed (Обработка отказа с передачей роли первичного узла от <primary-node-id> узлу реплики <node-id> завершена)
- Сообщение группы репликации: Failover from primary node <primary-node-id> to replica node <node-id> completed (Обработка отказа с передачей роли первичного узла от <primary-node-id> узлу реплики <node-id> завершена)
- Сообщение кластера кэша: Recovering cache nodes <node-id> (Восстановление узлов кэша <node-id>)
- Сообщение кластера кэша: Recovering cache nodes <node-id> (Восстановление узлов кэша <node-id> завершено)