Глобальные таблицы Amazon DynamoDB
Что такое глобальные таблицы?
Глобальные таблицы Amazon DynamoDB – это полностью управляемая бессерверная многорегиональная и мультиактивная база данных. Глобальные таблицы обеспечивают доступность на уровне до 99,999 %, повышенную отказоустойчивость приложений и устойчивость бизнеса. Поскольку глобальные таблицы автоматически реплицируются в заданных вами регионах AWS, вы можете обеспечить высокую производительность локального чтения и записи.
Если обработка приложения прервана в одном регионе, нет необходимости в резервном переключении базы данных, поскольку мультиактивная архитектура глобальных таблиц позволяет клиентам читать и записывать данные в любую таблицу-реплику. Глобальные таблицы также устраняют сложную работу по урегулированию конфликтов обновлений для многорегиональных рабочих нагрузок.
Кроме того, они поддерживают как строгую, так и конечную согласованности между регионами. Многорегиональная строгая согласованность предоставляет исключительно высокий уровень отказоустойчивости приложений. Благодаря этому приложения клиентов всегда доступны и считывают последние данные из любого региона. Теперь можно создавать приложения с целевым показателем точки восстановления, равным нулю. Благодаря многорегиональной конечной согласованности можно создавать реплики в одном или нескольких аккаунтах AWS.
Как это работает
Глобальная таблица DynamoDB состоит из нескольких таблиц-реплик. Каждая таблица-реплика находится в отдельном регионе, но все реплики используют одну и ту же схему первичного ключа. При записи данных DynamoDB автоматически реплицирует эти данные во все остальные реплики в глобальной таблице.
Предположим, что в вашем приложении есть большая клиентская база в трех географических регионах: на Восточном побережье США, в Канаде и в Западной Европе. Без глобальных таблиц вам пришлось бы создавать таблицу в каждом регионе AWS и писать код для репликации изменений данных в каждой таблице в конкретном регионе.
Функция глобальных таблиц дает возможность создать глобальную таблицу с репликой в трех регионах, ближайших к каждой географической области. DynamoDB автоматически реплицирует изменения из любой реплики в другие регионы.
Благодаря глобальным таблицам пользователи приложения получают доступ к данным с низкой задержкой независимо от того, где они находятся. Если обработка заявки прервана в одном регионе, ваши клиенты по-прежнему могут использовать таблицы-реплики в других.
При создании глобальной таблицы можно выбрать либо строгую, либо конечную согласованность. Глобальная таблица, настроенная на обеспечение многорегиональной строгой согласованности, позволяет выполнять строго последовательное чтение данных в нескольких регионах. По умолчанию выбрана многорегиональная конечная согласованность.
Для глобальных таблиц, настроенных с использованием многорегиональной конечной согласованности, можно создавать реплики как в одном, так и нескольких аккаунтах AWS. Глобальные таблицы для нескольких аккаунтов автоматически реплицируют таблицы между учетными записями и регионами, обеспечивая повышенную отказоустойчивость, безопасность и управляемость. Они идеально подойдут клиентам, которые внедряют стратегии работы на основе множества аккаунтов или используют Организации AWS, обеспечив улучшенную изоляцию и защиту, строгие ограничения периметра данных, внедрение аварийного восстановления или разделение рабочих нагрузок по бизнес-единицам.
Начать работу с глобальными таблицами очень просто, поскольку в них используются те же API-интерфейсы DynamoDB, что и в таблицах с одним регионом. Предварительных затрат или обязательств по использованию глобальных таблиц не требуется. Вы платите только за используемые ресурсы. Глобальные таблицы можно настроить в Консоли управления AWS с помощью AWS CLI или AWS CloudFormation. Кроме того, преобразовать таблицу одного региона в глобальные таблицы довольно просто.
Преимущества глобальных таблиц
Глобальные таблицы рассчитаны на доступность на уровне 99,999 %. Если один из регионов становится изолированным или в нем наблюдается снижение производительности, ваше приложение может перемещать трафик в другой регион и выполнять чтение и запись в иной таблице-реплике. Вы можете настроить собственную логику перенаправления запросов в другие регионы. Кроме того, благодаря многорегиональной строгой согласованности ваше приложение всегда будет считывать последние данные из любого региона.
Глобальные таблицы устраняют трудности и операционные нагрузки, связанные с развертыванием мультиактивной многорегиональной репликации в DynamoDB и управлением ею. Выберите регионы, в которых нужны данные, а DynamoDB возьмет на себя все остальное. Для репликации между таблицами-репликами в разных регионах можно выбрать либо конечную, либо строгую согласованность. Благодаря многорегиональной строгой согласованности вам не придется думать о согласованности или восстановлении данных во время резервного переключения.
Кроме того, можно создавать реплики в одном или нескольких аккаунтах AWS. Используя глобальные таблицы с поддержкой нескольких аккаунтов, вы можете создавать приложения, охватывающие несколько учетных записей, что обеспечивает более строгую изоляцию, повышенную безопасность и улучшенное управление, а также повышенную отказоустойчивость, что соответствует принципам платформы AWS Well-Architected. Приложения получают доступ к глобальным таблицам через существующие API и адреса DynamoDB.
Глобальные таблицы теперь можно настраивать как для обеспечения строгой, так и конечной согласованностей. Строгая согласованность гарантирует, что при строго последовательном чтении будут отображаться самые последние записи, тогда как при конечной – может пройти некоторое время, прежде чем все реплики отразят последнее обновление, что компенсируется меньшей задержкой при локальном чтении и записи.
В рамках многорегиональной строгой согласованности DynamoDB обеспечит, чтобы запись, подтвержденная на любой реплике в любом регионе, сразу же стала доступна для чтения с другой реплики. Если операция записи приведет к изменению элемента, который уже редактируется в другом регионе, эта операция завершится ошибкой с возможностью повторной попытки.
В рамках многорегиональной конечной согласованности DynamoDB реплицирует запись в любую реплику в любом регионе на все остальные реплики, обычно в течение одной-двух секунд. При одновременном изменении одного и того же элемента в нескольких регионах DynamoDB разрешает конфликт по принципу «последняя запись побеждает».
Глобальные таблицы позволяют считывать и записывать данные локально, обеспечивая глобальному распределенному приложению задержку в несколько миллисекунд при любом масштабе. Это может повысить производительность масштабированных глобальных приложений.