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

Почему мы выбрали DynamoDB?

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

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

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

Чтобы узнать о новых функциях и возможностях, ознакомьтесь с объявлениями DynamoDB: что нового.

Бессерверная производительность с неограниченной масштабируемостью

DynamoDB поддерживает пары «ключ-значение» и документные модели данных. Являясь базой данных NoSQL, DynamoDB имеет гибкую схему, поэтому в каждом элементе может быть множество различных атрибутов. Благодаря гибкой схеме вы можете легко адаптироваться по мере изменения бизнес-требований без необходимости повторного определения схемы таблицы, как это происходит в реляционных базах данных.

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

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

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

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

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

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

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

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

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

Безопасность и надежность

DynamoDB использует Управление идентификацией и доступом AWS (IAM) для аутентификации и авторизации доступа к ресурсам. Можно указывать политики IAM, политики на основе ресурсов, определять управление доступом на основе атрибутов (ABAC) с помощью тегов в политиках и задавать условия, обеспечивающие детализированный процесс доступа, тем самым ограничивая доступ на чтение или запись к определенным элементам и атрибутам таблицы на основе идентификаторов.

DynamoDB по умолчанию шифрует все хранимые клиентские данные. Шифрование хранимых данных повышает уровень их безопасности благодаря использованию ключей шифрования, которые хранятся в Сервисе управления ключами AWS (AWS KMS). С помощью SDK шифрования баз данных AWS можно выполнять шифрование на уровне атрибутов для дальнейшего усиления контроля доступа к информации в таблице. DynamoDB помогает разрабатывать приложения с высоким уровнем безопасности, соответствующие жестким нормативным и законодательным требованиям в области шифрования.

Ключи шифрования предоставляют дополнительный уровень защиты данных, поскольку гарантируют их защиту от несанкционированного доступа к базовому хранилищу. Вы можете указать, следует ли DynamoDB использовать для шифрования пользовательских данных собственный ключ AWS (с типом шифрования по умолчанию), управляемый ключ AWS или ключ, управляемый клиентом. Шифрование по умолчанию с использованием ключей AWS KMS доступно без дополнительной платы.

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

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

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

DynamoDB поддерживает адреса шлюза виртуального частного облака (VPC) и адреса VPC для подключений через VPC или из локальных центров обработки данных. Можно настроить подключение локальных приложений к DynamoDB в частной сети через адреса VPC с поддержкой AWS PrivateLink. Это позволяет клиентам упростить частное подключение к DynamoDB и обеспечить соответствие требованиям.

Экономичность

В DynamoDB доступны режимы предоставления ресурсов для каждой таблицы: по требованию и с распределением.

  • Режим предоставления ресурсов по требованию подходит для менее предсказуемых рабочих нагрузок, когда вы не знаете, потребуется ли вам много ресурсов. В этом случае система автоматически регулирует выделяемые ресурсы, а вы платите только за то, что потребляете.
  • Если в таблице используется режим предоставления ресурсов с распределением, вам необходимо указать объем ресурсов для операций чтения и записи. Этот режим целесообразен, когда вы уверены, что все или почти все заявленные вами ресурсы будут использованы. 

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

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

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

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

Интеграция с сервисами AWS

Массовый импорт и экспорт данных из Amazon Simple Storage Service (Amazon S3) позволяет извлечь максимальную пользу из данных, устраняя необходимость писать код для перемещения, преобразования и копирования таблиц DynamoDB из одного приложения, аккаунта или региона в другой. Эта функция не использует емкость чтения или записи таблицы, поэтому вам не нужно планировать либо выделять дополнительные ресурсы. Процессом массового импорта и экспорта данных полностью управляет DynamoDB.

Массовый импорт данных из Amazon S3 позволяет импортировать информацию в любом масштабе, от мегабайтов до терабайт, используя поддерживаемые форматы, например CSV, DynamoDB JSON и Amazon Ion. Благодаря массовому импорту данных из Amazon S3 заказчики могут сэкономить до 66 % по сравнению с клиентской записью, использующей выделенную емкость.

С помощью пакетного экспорта в Amazon S3 можно экспортировать данные из таблиц PITR в любой момент времени за последние 35 дней с точностью до секунды. После экспорта данных из DynamoDB в Amazon S3 есть возможность использовать другие сервисы AWS, например Amazon Athena и Amazon SageMaker, для анализа данных и извлечения полезной информации.

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

С помощью Потоков данных Kinesis можно также использовать Данные Amazon Kinesis Firehose для автоматической доставки данных DynamoDB в другие сервисы AWS, такие как Amazon S3, Сервис Amazon OpenSearch и Amazon Redshift.

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

Аналитика участников Amazon CloudWatch помогает быстро определить, кто или что влияет на работу баз данных и приложений. Эта функция позволяет легче и быстрее выявлять, диагностировать и устранять проблемы во время эксплуатационных мероприятий.

Вопросы и ответы

Уникальные преимущества DynamoDB включают в себя проверенную, полностью управляемую бессерверную базу данных с масштабированием до нуля, которая обеспечивает производительность в несколько миллисекунд и доступность до 99,999 %. Благодаря стабильной производительности в условиях масштабирования DynamoDB также предлагает встроенные средства безопасности, долговечности и надежности, необходимые для глобальных приложений с самыми высокими требованиями.

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

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