Блог Amazon Web Services

Знакомимся с Amazon DocumentDB (MongoDB-совместимой)

Оригинал статьи: ссылка (Joseph Idziorek, Principal Product Manager и Sameer Kumar, Senior Specialist Technical Account Manager).

Amazon DocumentDB (совместимая с MongoDB)  – это быстрый, масштабируемый, высоко-доступный сервис документо-ориентированной базы данных, который поддерживает решения на основе MongoDB. Будучи документо-ориентированной базой данных, Amazon DocumentDB позволяет довольно просто сохранять, запрашивать и индексировать JSON данные. Amazon DocumentDB совместима с драйверами и утилитами для MongoDB 3.6. Подавляющее большинство приложений, драйверов и инструментов, которые вы уже используете сегодня для работы MongoDB, могут быть использованы и с Amazon DocumentDB с минимальными изменениями, или вообще без изменений.

В этом посте, я расскажу об информационных ресурсах, которые позволяют ответить на наиболее частые вопросы, задаваемые при работе с Amazon DocumentDB:

  • Что такое Amazon DocumentDB?
  • Как начать работу с Amazon DocumentDB?
  • Как разрабатывать приложения и масштабироваться с Amazon DocumentDB?
  • Как мигрировать на Amazon DocumentDB?
  • Кто использует Amazon DocumentDB?
  • Как быть в курсе новостей про Amazon DocumentDB?

Что такое Amazon DocumentDB?

Чтобы разобраться в чем уникальность Amazon DocumentDB, и как ее архитектура, разработанная специально для облачных решений с разделением хранилищ данных и вычислительных мощностей, позволяет быстро масштабировать приложения, ознакомьтесь со следующими ресурсами:

  • Amazon DocumentDB Deep Dive (from re:Invent 2019)
    В этом видео, Joseph Idziorek (Principal Product Manager, AWS) рассказывает о наиболее частых кейсах применения Amazon DocumentDB, о том почему разработчики выбирают документо-ориентированные хранилища данных. Приводит примеры, когда стоит рассмотреть альтернативные хранилища данных, и показывает как Amazon DocumentDB решает конкретные проблемы клиентов связанные с управлением и масштабируемостью документных баз данных. Одним из знаковых кейсов, описанных в рамках сессии, является кейс Fulfillment by Amazon (FBA), который уменьшил количество необходимых серверов для поддержки предыдущего решения с 96 серверов до всего лишь двух инстансов Amazon DocumentDB. Миграция на Amazon DocumentDB позволила одновременно увеличить производительность на 66% и уменьшить стоимость на 45%. Пример FBA демонстрирует результаты применения подхода использования правильной базы данных для нужд конкретного приложения. Также кейс FBA затрагивает аспекты правильного масштабирования операций чтения и записи, и применения стратегий индексирования в рамках Amazon DocumentDB. В рамках сессии показаны три демонстрации: создание snapshot backup для 1.5ТБ кластера менее чем за минуту; добавление нового инстанса за 5 минут, запрос данных из Amazon DocumentDB посредством SQL, а также используя новый подход с применением  распределенных запросов в Amazon Athena.
  • Функциональность сервиса
    Как полностью управляемый (managed) сервис баз данных, Amazon DocumentDB предоставляет набор возможностей и функциональность, позволяющий создавать масштабируемые, производительные, безопасные и высокодоступные приложения на AWS.
  • FAQs
    Узнайте ответы на наиболее часто задаваемые вопросы об Amazon DocumentDB, такие как: «Что значит MongoDB-совместимая”?», «Какой SLA предоставляет Amazon DocumentDB, «Как работает посекундная тарификация сервиса?», и другие.

Как начать работу с Amazon DocumentDB?

  • Руководство по началу работы
    Узнайте, как создать Amazon DocumentDB кластер с помощью AWS Management Console или AWS CLI, подключиться к базе данных и запросить данные с использованием mongo shell.
  • Подключение из AWS Cloud9
    Для разработки, тестирования и управления кластером Amazon DocumentDB, вы можете использовать AWS Cloud9. AWS Cloud9 – это облачная среда разработки (IDE), которая позволяет писать и отлаживать код, а также запускать приложения напрямую из браузера. Такие приложения, в том числе, могут подключаться к Amazon DocumentDB кластерам. AWS Cloud9 предоставляет web-терминал (поддерживается Amazon Linux или Ubuntu), в котором можно установить mongo shell или MongoDB SDK для подключения к Amazon DocumentDB.
  • Подключение извне VPC
    Кластера Amazon DocumentDB создаются внутри Amazon Virtual Private Cloud (Amazon VPC). Доступ к кластеру можно получить напрямую из Amazon EC2 или других AWS сервисов, которые были развернуты в той же Amazon VPC. Также, можно настроить доступ в кластер из EC2 инстансов или других AWS сервисов в других VPC в том же регионе, или из других регионов, настроив VPC peering.

Как разрабатывать приложения и масштабироваться с Amazon DocumentDB?

Приведенные далее ресурсы помогут вам начать разрабатывать приложения и масштабироваться на Amazon DocumentDB:

  • Лучшие практики
    Здесь можно ознакомиться с постоянно пополняемым и обновляемым списком лучших практик по работе с Amazon DocumentDB.
  • Мониторинг
    Amazon DocumentDB предоставляет Amazon CloudWatch метрики для вашего кластера и инстансов базы данных. В рамках AWS Management Console есть возможность отслеживать более 20 ключевых операционных метрик кластера, таких как – память, объем хранилища, количество запущенных запросов, количество активных подключений, и другие. В дополнение, вы можете использовать Amazon DocumentDB профайлер для логирования времени выполнения запросов и деталей операций, выполняемых на кластере. Профайлер полезен для мониторинга медленных запросов с целью последующей оптимизации времени их выполнения.
  • Масштабирование операций чтения
    В отличие от традиционной монолитной архитектуры баз данных, Amazon DocumentDB разделяет вычислительные мощности и хранилище данных. Поэтому, масштабирование операций чтения рекомендуется осуществлять путём добавления новых инстанстов Amazon DocumentDB. Операции чтения, осуществляемые с реплик, не блокируют операции записи, т.к. данные реплицируются из основного инстанса. Вы можете добавить до 15 read-реплик в кластер, что позволит масштабировать операции чтения до миллионов операций в секунду.
  • Резервное копирование и восстановление базы данных
    Благодаря возможностям резервного копирования, Amazon DocumentDB позволяет делать «восстановление-на-момент-времени» для вашего кластера, что означает возможность восстановления с посекундной гранулярностью в рамках срока хранения резервной копии, но не позже, чем 5 минут от текущего времени. Автоматическое резервное копирование может быть настроено в рамках интервала, не превышающего 35 дней.  Автоматические резервные копии хранятся на Amazon S3, который обеспечивает надежность 99,999999999 % (11 девяток). Amazon DocumentDB делает резервные копии автоматически, инкрементально, не оказывая влияния на производительность кластера.
  • Безопасность
    Amazon DocumentDB позволяет шифровать базы данных с использованием ключей, которые создаются и управляются через AWS Key Management Service (KMS). На кластере Amazon DocumentDB с включенным шифрованием, будет зашифровано следующее: данные, хранимые на дисках, используемых Amazon DocumentDB (encryption at rest); автоматические резервные копии, снэпшоты и реплики в рамках того же кластера. По-умолчанию, все соединения между клиентским приложением и Amazon DocumentDB зашифрованы с помощью TLS (encrypted-in-transit)
  • Стоимость и калькулятор стоимости
    При использовании Amazon DocumentDB нет необходимости что-то платить заранее, вы платите за сервис только в рамках объема потребленных мощностей кластера, который используете. Цена за Amazon DocumentDB состоит из следующих четырех составляющих: размер инстансов в кластере, объем хранилища баз данных, IOPS, и объем хранения резервных копий.
  • Отказоустойчивость и репликация
    Вы повышаете отказоустойчивость кластера Amazon DocumentDB и достигаете масштабируемости операций чтения посредством использования реплик. Ваш кластер Amazon DocumentDB и его инстансы постоянно мониторятся, и в случае отказа одного из инстансов, Amazon DocumentDB автоматически переключится на реплику. Восстановление Amazon DocumentDB не требует потенциально долгой процедуры накатывания логов транзакций базы данных, поэтому время на перезагрузку инстанса обычно меньше 30 сек. Также кэш базы данных изолируется от процесса базы данных, поэтому при перезагрузке инстанса реплики, кэш сохраняется и может быть сразу использован.

Как мигрировать на Amazon DocumentDB?

Большинство разработчиков стараются избежать необходимости инвестировать ресурсы в поддержку и управление базами данных. AWS предоставляет возможность миграции ваших MongoDB баз данных из локальных дата-центров или из MongoDB  инстансов, размещенных на Amazon EC2, на Amazon DocumentDB бесплатно (до 6 месяцев на каждый инстанс базы данных) и практически без простоев с использованием AWS Database Migration Service (DMS). С помощью DMS вы можете мигрировать на Amazon DocumentDB как базы данных, использующие MongoDB replica set, так и базы данных MongoDB в режиме sharded cluster.

В представленном далее 3х-минутном видео показано, как произвести «живую» миграцию базы данных MongoDB на DocumentDB используя AWS DMS. В рамках видео были созданы два одинаковых приложения: первое использует MongoDB (исходная база), второе – Amazon DocumentDB (конечная база); создан DMS task для «живой» миграции данных; сделаны изменения в исходной базе, и осуществлена проверка этих изменений в конечной базе Amazon DocumentDB.

 

Обычно AWS DMS используется для онлайн, гибридных или офлайн миграций. Чтобы узнать больше о миграциях, ознакомьтесь с ресурсами ниже:

  • Руководство по миграции
    Руководство по миграции Amazon DocumentDB описывает все фазы миграции – первичный анализ, планирование, тестирование, переключение (failover) – которые вы должны иметь в виду при осуществлении миграций. Также, руководство обсуждает различные подходы к миграции (онлайн, гибридная, офлайн) и инструменты, такие как DMS, которые в том числе позволяют мигрировать на Amazon DocumentDB.
  • Обзор способов миграции (re:Invent 2019)
    Jeff Duffy (Senior Specialist Solutions Architect, AWS) работающий с Amazon DocumentDB, даёт обзор стратегий клиентов и важных аспектов миграции на Amazon DocumentDB. Сессия включает обсуждения реляционных и не реляционных источников данных, фазы миграции, описание того, как выбрать правильный размер кластера и утилиты миграции.
  • Руководство по миграции
    Чтобы лучше понять процесс миграции с MongoDB на Amazon DocumentDB с использованием AWS DMS, воспользуйтесь руководством по миграции Amazon DocumentDB.
  • Семинар по миграции: миграция MongoDB базы данных на Amazon DocumentDB
    В рамках семинара вы узнаете, как мигрировать MongoDB базу данных на Amazon DocumentDB используя различные стратегии миграции.

Кто использует Amazon DocumentDB?

Такие компании как Capital One, OnDeck, Freshop, Woot!, Amazon и многие другие используют Amazon DocumentDB, при разработке и для масштабирования своих приложений в AWS.

  • Как Fulfillment by Amazon (FBA) используют Amazon DocumentDB
    В этом видео показано, как Fulfillment by Amazon (FBA) уменьшили количество необходимых серверов для поддержки предыдущего решения с 96 серверов до всего лишь двух инстансов Amazon DocumentDB. Миграция на Amazon DocumentDB позволила одновременно увеличить производительность на 66% и уменьшить стоимость на 45%. Пример FBA демонстрирует результаты применения подхода выбора правильной базы данных для нужд конкретного приложения.
  • FINRA мигрировала с Oracle на Amazon DocumentDB
    Узнайте, как FINRA мигрировала с реляционной базы данных с использованием XML на Amazon DocumentDB. С помощью Amazon DocumentDB FINRA может развивать свои приложения быстрее, используя формат JSON в базе данных, без необходимости промежуточного преобразования форматов в приложении. FINRA рассказывает как Amazon DocumentDB выдерживает высокий SLA и соответствует их требованиям безопасности.
  • Deutsche Fußball Liga GmbH (DFL) использует Amazon DocumentDB для новостной платформы
    “Мы, Deutsche Fußball Liga GmbH (DFL) используем AWS для нашей новостной платформы, публикуя последние новости нашей лиги для миллионов фанатов по всему миру. По мере роста количества наших пользователей и объема контента, основной задачей было поддержание производительности нашей реляционной базы данных. Мы мигрировали на Amazon DocumentDB (с MongoDB совместимостью) из-за возможности использования гибкой схемы данных, нативной поддержки формата JSON, которая позволяет нашим разработчикам развертывать новые приложения быстрее, и из-за архитектуры, позволяющей масштабировать операции чтения за минуты. Мы прототипировали приложение локально, используя MongoDB Community Edition, и затем быстро развернули его в производственную среду Amazon DocumentDB. Все заработало так, как мы и ожидали, и мы успешно смогли масштабировать производительность нашей базы данных.” Andreas Heyden, CEO DFL Digital Sports, EVP Digital Innovations – DFL Group

Как быть в курсе новостей про Amazon DocumentDB?

  • Amazon DocumentDB launches, blogs, and videos
    Здесь можно найти блоги, вебинары и новости об Amazon DocumentDB.
  • Amazon DocumentDB Documentation
    Мы постоянно обновляем техническую документацию и лучшие практики по работе с Amazon DocumentDB на основе обратной связи от наших клиентов.
  • Совместимость с MongoDB API и функциональные отличияПо ссылкам вы можете найти наиболее актуальный список совместимых MongoDB API, а также функциональные отличия. Мы постоянно взаимодействуем с нашими клиентами и, основываясь на их пожеланиях, разрабатываем возможности, которые будут наиболее востребованы.
  • Задавайте вопросы на Amazon DocumentDB форуме
    Используйте Amazon DocumentDB AWS Forums, чтобы обмениваться опытом и получать ответы от коммьюнити и команды разработки Amazon DocumentDB.