Поиск по сайту:

Лучшие решения для запуска базы данных на AWS


У AWS есть целая категория для своих сервисов управляемых баз данных, которые упрощают создание и запуск базы данных на платформе AWS. Что они предлагают, и лучше ли это, чем запускать его самостоятельно на EC2?

Вы всегда можете использовать EC2

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

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

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

AWS RDS размещает большинство реляционных баз данных

AWS RDS — это управляемая служба базы данных общего назначения. Он работает на EC2, но создание, реплики чтения и добавочные резервные копии полностью управляются за вас. Вы просто платите за базовый экземпляр EC2 (с небольшой надбавкой) плюс стоимость хранилища EBS.

Создать базу данных просто; в консоли RDS нажмите «Создать базу данных» и укажите нужный тип экземпляра. Вы заплатите за этот экземпляр плюс предоставленное хранилище. В общем, RDS немного дороже, чем простое использование базового экземпляра EC2 и настройка всего самостоятельно. Но, несмотря на все преимущества базы данных как услуги, RDS все же будет полезен для некоторых людей.

АМС Аврора

Aurora — это собственная реляционная база данных AWS. Он совместим с MySQL или PostgreSQL, но использует другой базовый движок. Его можно выбрать в качестве опции при настройке базы данных в RDS.

AWS утверждает, что Aurora в три раза быстрее, чем PostgreSQL и MySQL, что является значительным улучшением, но не таким ярким, как может показаться. Это быстрее только при высоком выделенном IOPS (скорость диска) на огромных экземплярах базы данных и намного дороже, если вы действительно стремитесь к скорости.

В качестве общей базы данных Aurora работает хорошо, но она немного дороже, чем другие предложения RDS, такие как MySQL. Тем не менее, для Aurora существует бессерверный вариант, который, кажется, немного сокращает расходы и позволяет вашей базе данных автоматически масштабироваться вверх и вниз.

AWS DocumentDB: совместимость с MongoDB

DocumentDB — это замена AWS для Mongo. Под капотом на самом деле это не Mongo, но он действует как таковой и полностью совместим с существующими драйверами Mongo. Его легко запустить из консоли DocumentDB, и он может масштабироваться до миллионов запросов в секунду с использованием до 15 реплик чтения.

DocumentDB работает аналогично RDS в том смысле, что вы платите за базовый инстанс EC2, хотя следует отметить, что выбор инстансов ограничен инстансами R5, оптимизированными для памяти, которые стоят недешево. Самый дешевый экземпляр R5 — это экземпляр db.r5.large, который стоит 0,277 доллара США в час или около 200 долларов США в месяц. Это также небольшое увеличение стоимости по сравнению с MySQL на RDS, поэтому оно определенно стоит дороже по сравнению с традиционной MongoDB на EC2.

AWS DynamoDB: бессерверная база данных NoSQL

DynamoDB отличается тем, что это единственная база данных в этом списке, которая полностью бессерверна. Он предлагается как услуга, такая как S3, и вам не нужно управлять экземплярами. Все вычисления выполняются AWS.

DynamoDB — это база данных «ключ-значение» и документов, похожая на MongoDB. Это немного отличается, но AWS предлагает инструменты миграции для перехода на DynamoDB с MongoDB и MySQL.

Вы платите на основе запросов и хранилища, хотя список налогов немного длинный:

  • 1,25 доллара США за миллион записей
  • 1,875 доллара США за миллион операций записи, реплицированных в глобальную таблицу
  • 0,25 доллара США за миллион прочтений
  • 0,25 долл. США за ГБ после 25 ГБ
  • 0,09 доллара США за каждый ГБ переданных данных
  • При необходимости 0,20 доллара США за ГБ резервных данных и 0,15 доллара США за ГБ, если вам нужно восстановить таблицу.

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

ElastiCache: хранилище в памяти

Если вы хотите использовать Redis или Memcached как сервис, AWS также предлагает это с ElastiCache.

Redis и Memcached — чрезвычайно быстрые базы данных, которые полностью работают в памяти. Они обычно используются для хранения коротких битов данных, таких как строки и байты, к которым нужно обращаться очень быстро и с очень малой задержкой.

Redis обычно запускается на том же сервере вместе с другими приложениями, чтобы минимизировать задержку (в этом случае вы не будете использовать ElastiCache), но его также можно использовать как отдельный сервис для больших баз данных, где ElastiCache начинает работать. стать полезным. По сравнению с EC2 ElastiCache по-прежнему лучше, хотя и не слишком сильно. Вы, вероятно, захотите использовать инстансы AWS с оптимизацией памяти, если у вас особенно большая база данных.

Нептун: графическая база данных

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

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

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

Neptune — это собственная графическая база данных AWS. Цены аналогичны RDS — платите за экземпляр EC2 и хранилище. Однако вы не можете запустить Neptune самостоятельно, так как он не с открытым исходным кодом. Вы всегда можете запустить другую графовую базу данных, например neo4j, если не хотите использовать управляемый сервис.