Перейти к главному контенту

Функции Amazon MemoryDB

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

Открыть все

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.

Векторный поиск

Открыть все

По состоянию на 26 июня 2024 г. MemoryDB обеспечивает самую высокую производительность векторного поиска при самых высоких показателях полноты результатов среди популярных векторных баз данных на AWS. Векторный поиск для MemoryDB позволяет хранить миллионы векторных вложений, выполнять векторный поиск за считаные миллисекунды и обновлять задержки с достоверностью более 99 % при максимальной пропускной способности.

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

Векторный поиск для 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. Таким образом, скидка на зарезервированные узлы будет автоматически применена к использованию узлов всех размеров из одного семейства. Гибкость размера сокращает время, затрачиваемое на управление зарезервированными узлами, а отсутствие привязки к определенному размеру узла базы данных обеспечивает максимальную выгоду от скидки, даже если база данных нуждается в обновлении.