Глобальные таблицы Amazon DynamoDB

Почему именно глобальные таблицы Amazon DynamoDB?

Глобальные таблицы Amazon DynamoDB – это полностью управляемая бессерверная многорегиональная и мультиактивная база данных. Глобальные таблицы обеспечивают доступность на уровне 99,999 %, повышенную отказоустойчивость приложений и устойчивость бизнеса. Поскольку глобальные таблицы автоматически реплицируют таблицы Amazon DynamoDB в заданные регионы AWS, вы можете достичь высокой производительности локального чтения и записи.

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

Глобальные таблицы можно настроить в Консоли управления AWS с помощью Интерфейса командной строки AWS (AWS CLI) или AWS CloudFormation. При чтении или записи в глобальную таблицу вносить изменения в приложение не требуется, поскольку в глобальных таблицах используются те же API-интерфейсы DynamoDB, что и в таблицах с одним регионом.

При использовании глобальных таблиц нет предварительных затрат или обязательств. Вы платите только за используемые ресурсы. Подробнее о настройке глобальных таблиц см. в Руководстве для разработчиков по Amazon DynamoDB. Дополнительную информацию о ценообразовании глобальных таблиц см. в разделе вариантов ценообразования Amazon DynamoDB по требованию и по распределению.

Как работает сервис

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

Предположим, что в вашем приложении есть большая клиентская база в трех географических регионах: на Восточном побережье США, в Канаде и в Западной Европе. Без глобальных таблиц вам пришлось бы создавать таблицу в каждом регионе AWS и писать код для репликации изменений данных в каждой таблице в каждом регионе.

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

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

Как работает сервис

Преимущества глобальной таблицы Amazon DynamoDB

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

Любые изменения, внесенные в любой элемент любой таблицы-реплики, реплицируются во всех копиях этой глобальной таблицы. Новый элемент глобальной таблицы обычно копируется во все реплики в течение секунды.  В каждой реплике глобальной таблицы хранится один и тот же набор элементов данных. Amazon DynamoDB не поддерживает частичную репликацию элементов. Если приложения обновляют один и тот же элемент в разных регионах примерно в одно и то же время, могут возникнуть конфликты.

Чтобы разрешить конфликты, в глобальных таблицах DynamoDB используется принцип согласования одновременных обновлений, при котором актуальной считается последняя запись. Amazon DynamoDB делает все возможное для определения автора последней записи. Благодаря этому механизму разрешения конфликтов все реплики согласовывают последнее обновление, поэтому набор данных в них всегда идентичен.

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

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

Глобальные таблицы рассчитаны на доступность на уровне 99,999 %. Если один из регионов становится изолированным или в нем наблюдается снижение производительности, ваше приложение может перенаправлять данные в другой регион и выполнять чтение и запись в другой таблице-реплике. Вы можете настроить собственную логику перенаправления запросов в другие регионы. 

К тому же, Amazon DynamoDB отслеживает все записи, которые были созданы, но еще не были скопированы во все таблицы-реплики. Когда регион восстанавливает свою работу, Amazon DynamoDB переносит все необработанные записи из этого региона в таблицы-реплики в других регионах, и наоборот.

Темы страниц

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

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

Глобальная таблица – это набор из одной или нескольких таблиц-реплик, принадлежащих одному аккаунту AWS. В одной глобальной таблице Amazon DynamoDB может быть только одна таблица-реплика на каждый регион AWS.

Таблица-реплика – это одна таблица DynamoDB. Каждая таблица-реплика хранит один и тот же набор элементов данных, имеет одно и то же название таблицы и одну и ту же схему первичного ключа. Когда какое-то приложение записывает данные в таблицы-реплики в одном регионе, Amazon DynamoDB автоматически переносит эту запись в такие таблицы в других регионах AWS.

С помощью этого пошагового руководства можно создать глобальную таблицу в консоли Amazon DynamoDB, интерфейсе командной строки AWS или AWS CloudFormation.

Как и другие базы данных, Amazon DynamoDB хранит данные в таблицах. Таблица – это набор элементов, а каждый элемент – набор атрибутов. Amazon DynamoDB использует первичные ключи для уникальной идентификации каждого элемента таблицы и имеет вторичные индексы, чтобы обеспечить большую гибкость запросов.

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

  • Zoom

    Когда началась пандемия COVID-19, появился огромный спрос на наши голосовые и видео-сервисы. В начале 2020 года мы увидели беспрецедентный рост показателей с 10 до 300 миллионов ежедневных участников встреч как среди новых, так и существующих пользователей, которым понадобилась виртуальная связь. Мы смогли справиться с этим всплеском со стороны сервера с помощью Amazon DynamoDB для Zoom Meetings. Использование глобальных таблиц DynamoDB в сочетании с режимом по требованию позволило масштабироваться почти неограниченно и не испытывать проблем с производительностью, даже несмотря на внезапный рост числа пользователей.

    Ясин Мохаммед, технический менеджер, облачные процессы в Zoom Video Communications, Inc.
  • Disney

    Disney+ использует Amazon DynamoDB для приема контента, метаданных и миллиардов действий пользователей ежедневно, что позволяет клиентам добавлять контент в свои списки просмотра, начинать просмотр и продолжить его на другом устройстве или давать рекомендации относительно того, что посмотреть дальше.

    Миллиарды закладок ежедневно загружаются через Amazon Kinesis и в Amazon DynamoDB.

    Attilio Giue, директор по поиску контента в Disney+
    Читать пресс‑релиз »
  • Snap Inc.

    Компания Snap Inc. значительно сэкономила на ежегодных затратах на инфраструктуру и создала быструю и надежную инфраструктуру для приложения обмена мультимедийными сообщениями Snapchat с помощью Amazon DynamoDB.

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

    Сарал Джейн, директор по проектированию и руководитель отдела инфраструктуры, Snap Inc.
    Ознакомиться с примером использования »