Возможности Amazon MemoryDB

Преимущества MemoryDB

Amazon MemoryDB – это совместимый с OSS Redis и Valkey надежный сервис базы данных в памяти, который обеспечивает сверхбыструю производительность. Он разработан специально для современных приложений с архитектурой микросервисов.

Сервис MemoryDB совместим с OSS Redis и Valkey и позволяет клиентам быстро создавать приложения, используя те же гибкие и удобные структуры данных, API и команды OSS Redis и Valkey, с которыми они уже знакомы. С MemoryDB все ваши данные хранятся в памяти, что позволяет достичь микросекундной задержки чтения, задержки записи в считаные миллисекунды и высокой пропускной способности. MemoryDB также надежно хранит данные в нескольких зонах доступности и использует распределенный журнал транзакций, чтобы обеспечить быстрые механизмы отказоустойчивости, восстановления базы данных и перезапуск узла. MemoryDB обеспечивает высокую производительность благодаря работе в памяти и высокую надежность за счет нескольких зон доступности. Ее можно использовать в качестве высокопроизводительной первичной базы данных для приложений на основе микросервисов, избавляясь от необходимости раздельно управлять кэшем и базой данных для долгосрочного хранения. MemoryDB Multi-Region — это многорегиональная база данных, которая работает в режиме «активный/активный» и позволяет создавать приложения с уровнем доступности до 99,999%, с задержками чтения в несколько микросекунд и задержками записи в несколько миллисекунд.

Совместимость с Valkey и OSS Redis

OSS Redis и Valkey – быстрые хранилища в памяти с открытым исходным кодом для данных «ключ-значение». Разработчики используют OSS Redis и Valkey, чтобы добиться времени отклика менее миллисекунды и позволить приложениям, работающим в режиме реального времени, выполнять миллионы запросов в секунду. Такие приложения востребованы в сферах игр, рекламных технологий, финансовых сервисов, здравоохранения и Интернета вещей. 

OSS Redis и Valkey предлагают гибкие API, команды и структуры данных, такие как потоки, наборы и списки, для создания гибких и универсальных приложений. MemoryDB поддерживает совместимость с OSS Redis и Valkey и уже привычный для вас набор типов данных, параметров и команд OSS Redis и Valkey. Это означает, что весь код, приложения, драйверы и инструменты, которые вы используете сегодня в OSS Redis и Valkey, будут работать и с MemoryDB, а значит вы сможете быстро создавать приложения.

Сверхбыстрая работа

MemoryDB хранит весь набор данных в памяти, обеспечивая задержку чтения в несколько микросекунд, задержку записи менее десяти миллисекунд и высокую пропускную способность. Эти задержки и пропускная способность также поддерживаются в MemoryDB. MemoryDB может обрабатывать более 13 триллионов запросов в день и выдерживает пиковые нагрузки более 160 миллионов запросов в секунду. Разработчикам, которые используют архитектуру микросервисов, требуется сверхвысокая производительность, поскольку такие приложения могут взаимодействовать со множеством сервисов для обработки одного взаимодействия с пользователем или одного вызова API. Благодаря MemoryDB вы получите чрезвычайно низкую задержку, предоставляя конечным пользователям возможность работать в режиме реального времени.

MemoryDB включает улучшенное мультиплексирование ввода-вывода, что значительно повышает пропускную способность и снижает задержку при больших масштабах. Улучшенное мультиплексирование ввода-вывода идеально подходит для рабочих нагрузок с высокой пропускной способностью и несколькими клиентскими соединениями, а его преимущества повышаются при росте параллелизма рабочих нагрузок. Например, при использовании узла r6g.4xlarge и одновременной работе 5200 клиентов можно добиться увеличения пропускной способности (операций чтения и записи в секунду) до 46 % и снижения задержки P99 до 21 % по сравнению с MemoryDB версии 6, совместимой с Redis OSS. Для таких типов рабочих нагрузок сетевая обработка ввода-вывода узла может стать ограничивающим фактором в возможности масштабирования.

Благодаря усовершенствованному мультиплексированию ввода-вывода каждый выделенный сетевой поток ввода-вывода передает команды от нескольких клиентов в ядра OSS Redis и Valkey, используя готовность OSS Redis и Valkey эффективно обрабатывать команды в пакетном режиме.

Надежность в нескольких зонах

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

Масштабируемость

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

MemoryDB Multi-Region — это полностью управляемая, активно-активная многорегиональная база данных, позволяющая клиентам создавать приложения с доступностью до 99,999% и задержками чтения и записи в несколько микросекунд и миллисекунд соответственно. Это повышает отказоустойчивость ваших многорегиональных приложений и должно рассматриваться как часть стратегии обеспечения непрерывности вашего бизнеса.

MemoryDB Multi-Region поддерживает репликацию типа «активная – активная», позволяя обслуживать операции чтения и записи локально из ближайших к клиентам регионов с задержками чтения и записи в несколько микросекунд и миллисекунд соответственно. Она асинхронно реплицирует данные между регионами, и обычно данные распространяются в течение секунды. MemoryDB Multi-Region автоматически устраняет конфликты обновлений и проблемы расхождения данных, позволяя вам сосредоточиться на своем приложении.

MemoryDB Multi-Region работает с существующими функциями MemoryDB, исключая многоуровневое распределение данных и векторный поиск. Дополнительные сведения см. в документации по MemoryDB Multi-Region.

Полное управление

Начать работу с MemoryDB очень просто. Просто запустите новый кластер MemoryDB с помощью Консоли управления AWS, интерфейса командной строки AWS или SDK. Для инстансов базы данных MemoryDB предварительно задан набор параметров и значений, соответствующих выбранному типу узла. Можно запустить кластер и подключить приложение. Процесс занимает несколько минут и не требует дополнительной настройки.

MemoryDB предоставляет метрики Amazon CloudWatch для инстансов баз данных. В консоли доступны для просмотра более 35 основных рабочих метрик кластера, включая использование вычислительных ресурсов, памяти и хранилища, пропускную способность запросов и активные соединения и т. д.

MemoryDB автоматически применяет текущие обновления к кластерам, а при выходе новых версий OSS Redis и Valkey вы сможете легко распространить их на свои кластеры.

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

MemoryDB работает в Amazon Virtual Private Cloud (Amazon VPC), что позволяет изолировать базу данных в своей собственной виртуальной сети и подключиться к локальной ИТ-инфраструктуре с использованием IPsec VPN со стандартным шифрованием. Кроме того, конфигурация VPC в MemoryDB позволяет настроить параметры брандмауэра и управлять доступом из сети к инстансам базы данных.

При использовании MemoryDB данные в местах хранения шифруются с помощью ключей, которые вы создаете и контролируете с помощью Сервиса управления ключами AWS (AWS KMS). Для кластеров, созданных с использованием типов узлов AWS Graviton2, предоставляется постоянное 256-битное шифрование DRAM. MemoryDB поддерживает шифрование при передаче с использованием протокола TLS (безопасность транспортного уровня).

С помощью функций сервиса «Управление идентификацией и доступом AWS» (IAM), интегрированного с MemoryDB, можно управлять разрешениями для пользователей и групп IAM на выполнение операций с конкретными ресурсами MemoryDB. Например, можно настроить свои правила IAM, чтобы обеспечить определенным пользователям доступ только на чтение, в то время как администратор получит возможность создавать, изменять и удалять ресурсы. Дополнительные сведения о разрешениях на уровне API см. в разделе Использование политик AWS IAM для MemoryDB.

MemoryDB использует списки контроля доступа Redis OSS для управления аутентификацией и авторизацией в кластере. ACL позволяют определять разные разрешения для разных пользователей в одном кластере.

Интеграция с Kubernetes

Контроллеры AWS для Kubernetes (ACK) для MemoryDB позволяют определять и использовать ресурсы MemoryDB непосредственно из кластера Kubernetes. Это позволяет применять MemoryDB для поддержки приложений Kubernetes без необходимости определять ресурсы MemoryDB за пределами кластера или запускать в кластере базу данных в памяти и управлять ею. Образ контейнера MemoryDB ACK можно загрузить из Эластичного реестра контейнеров Amazon (Amazon ECR), а ознакомиться с инструкциями по установке – в этой документации. Вы также можете изучить блог, чтобы найти более подробную информацию.

Примечание. ACK для MemoryDB теперь общедоступны. Отправьте нам свой отзыв на странице GitHub.

 

Поддержка JSON

MemoryDB по умолчанию обеспечивает поддержку текстового формата обмена данными, основанного на языке JavaScript (JSON), а также структур данных, включенных в Redis OSS, без дополнительной платы. Вы можете упростить разработку приложений с помощью встроенных команд, разработанных и оптимизированных для документов JSON. MemoryDB поддерживает частичное обновление документов JSON и эффективные возможности поиска и миграции с помощью языка запросов JSONPath. Поддержка JSON доступна при использовании OSS Redis и Valkey версии 6.2 и более новых. Дополнительную информацию см. в документации по MemoryDB.

Оптимизация затрат

MemoryDB предлагает многоуровневое хранение данных в качестве недорогого способа для масштабирования кластеров до сотен терабайтов емкости. Многоуровневое хранение данных меняет соотношение цены и производительности MemoryDB за счет использования более дешевых твердотельных накопителей (SSD) в каждом узле кластера в дополнение к хранению данных в памяти. Это идеальный вариант для рабочих нагрузок, которым регулярно требуется доступ к 20 % от всего набора данных, а также приложений, для которых не важна дополнительная задержка при обращении к данным на SSD.

При использовании кластеров с многоуровневым хранением данных MemoryDB автоматически и прозрачно перемещает элементы, которые дольше всего не использовались, на локально подключенные твердотельные накопители (SSD) NVMe, когда заканчивается доступный объем памяти. Когда вы обращаетесь к элементу, который хранится на SSD, MemoryDB перемещает его обратно в память перед обработкой запроса. Многоуровневое хранение данных в MemoryDB доступно на узлах R6gd на базе Graviton2. Общая емкость узлов R6gd (память и SSD) почти в 5 раз выше, что позволяет сэкономить более 60 % средств на хранение при работе с максимальной загрузкой по сравнению с узлами R6g (только память). При обработке запросов для строковых значений длиной по 500 байтов дополнительная задержка на чтение данных с твердотельного накопителя обычно составляет 450 мкс по сравнению с чтением из памяти.

MemoryDB предлагает зарезервированные узлы, которые позволяют сэкономить до 55 % по сравнению с ценами на узлы по запросу в обмен на обязательство использовать их в течение одного года или трех лет. Зарезервированные узлы дополняют узлы MemoryDB по требованию и предоставляют компаниям возможность гибко снижать затраты. Для зарезервированного узла MemoryDB предлагается три варианта оплаты: без предоплаты, с частичной предоплатой и с полной предоплатой. Выбрав подходящий план, можно добиться оптимального соотношения между авансовыми платежами и почасовой оплатой.

Зарезервированные узлы MemoryDB обеспечивают гибкость размера в пределах семейства узлов и региона AWS. Таким образом, скидка на зарезервированные узлы будет автоматически применена к использованию узлов всех размеров из одного семейства. Гибкость размера сокращает время, затрачиваемое на управление зарезервированными узлами, а отсутствие привязки к определенному размеру узла базы данных обеспечивает максимальную выгоду от скидки, даже если база данных нуждается в обновлении.