DynamoDB против MySQL с Amazon Lambda

Лучше использовать DynamoDB с лямбда-функциями? (и если да, то почему? соединение по какой-то причине быстрее, может быть, Lambda спроектирована так, чтобы быть более совместимой с DynamoDB, чем MySQL или другие базы данных?)

Потому что на официальной главной странице Amazon Lambda имеется ссылка на DynamoDB, но не на MySQL или любую другую систему БД:
https://aws.amazon.com/lambda/?nc1=h_ls
Но я нашел несколько руководств по подключению MySQL из функций Lambda:
https://aws.amazon.com/blogs/database/query-your-aws-database-from-your-serverless-application/

ПРИМЕЧАНИЕ. Я не спрашиваю о разнице между DynamoDB и MySQL, реляционной и нереляционной БД и т. д. Речь идет о «Лямбде и базах данных». Мне нужна моя лямбда-функция для чтения и записи в некоторой БД, я сначала думал о MySQL, но поскольку единственная ссылка на главной странице - это DynamoDB, я немного запутался, если я должен выбрать это по какой-то причине (производительность, скорость соединения , или некоторые другие ограничения).

Доступ AWS Java Lambda к экземпляру AWS RDS MySQL с помощью CDK
Доступ AWS Java Lambda к экземпляру AWS RDS MySQL с помощью CDK
В этой статье мы рассмотрим, как включить доступ Java Lambda к экземпляру AWS RDS MySQL.
1
0
1 602
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

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

Использование Lambda с Dynamodb дает несколько преимуществ.

  • Использование политик IAM для детального контроля доступа.
  • Оба являются бессерверными предложениями от AWS.
  • Простота инициализации с помощью AWS SAM
  • Dynamodb поддерживает потоки с Lambda для рабочих процессов, управляемых данными.

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

Также сложно управлять соединениями с отслеживанием состояния с другими базами данных, поскольку Lambda не имеет состояния, что также влияет на производительность.

Может быть также проблема с параллелизмом? потому что я нашел эту презентацию, но не смог ее понять: es.slideshare.net/AmazonWebServices/…

Enrique 10.07.2018 21:16

Да, одновременно - это еще одно преимущество, которое вы получаете с NoSQL, который может поддерживать большее количество операций чтения или записи в секунду.

Ashan 11.07.2018 03:01

@Ashan. Есть ли у вас какие-либо предложения для MySQL, как мы можем выполнять постобработку данных, как мы делаем с триггером Lambda + потоками DynamoDB?

Anatolii B 24.07.2019 20:06
  • AWS Dynamodb - это полный управляемый сервис, в котором нет минимальной платы за использование DynamoDB. Вы платите только за ресурсы, которые вы предоставляете. AWS позаботится о задержке в миллисекундах в любом масштабе.

  • Когда дело доходит до RDS, MYSQL позволяет настраивать, эксплуатировать и масштабировать базу данных на AWS. Поэтому вам нужно выбрать развертывание Multi A-Z или одно A-Z, экземпляр класса Db (микро, маленький, большой, xlarge), хранилище и т. д.

  • Dynamodb - это распределенное решение nosql, разработанное для очень большого хранилища данных / приложения nosql с чрезвычайно высокой пропускной способностью, в то время как RDS отличается более гибкой традиционной СУБД меньшего масштаба для гораздо большей гибкости запросов и проектирования.

  • Для простого приложения и небольшого набора данных вы можете использовать Dynamodb. Для больших и сложных приложений выберите Dynamodb, если вы ищете высокую пропускную способность, или вы можете выбрать RDS, если ищете более дешевый вариант.

Другие вопросы по теме