首页 > 解决方案 > DynamoDB 与 MySQL 与 Amazon Lambda

问题描述

将 DynamoDB 与 Lambda 函数一起使用会更好吗?(如果是,为什么?由于某种原因连接速度更快,也许 Lambda 被设计为与 DynamoDB 比 MySQL 或其他数据库更兼容?)

因为在 Amazon Lambda 官方主页中,它引用了“DynamoDB”而不是“MySQL”或任何其他数据库系统:
https
://aws.amazon.com/lambda/?nc1=h_ls 但我找到了一些教程你从 Lambda 函数连接 MySQL:
https ://aws.amazon.com/blogs/database/query-your-aws-database-from-your-serverless-application/

注意:我不是在询问 DynamoDB 和 MySQL、关系数据库与非关系数据库等之间的区别。这是关于“Lambda 和数据库”的。我需要我的 Lambda 函数在一些数据库中读写,我首先考虑的是 MySQL,但是因为主页上的唯一参考是 DynamoDB,如果出于某种原因(性能、连接速度)我应该选择它,我有点困惑,或其他一些限制)。

标签: aws-lambdaamazon-dynamodb

解决方案


首先,AWS Lambda 几乎可以连接任何数据库系统。

将 Lambda 与 Dynamodb 结合使用有几个好处。

  • 使用 IAM 策略进行细粒度访问控制。
  • 两者都是 AWS 的无服务器产品。
  • 使用 AWS SAM 进行简单的预置
  • Dynamodb 支持带有 Lambda 的流,用于数据驱动的工作流。

另一方面,使用 MySQL 或任何其他数据库将需要将数据库放置在 VPC 内的私有子网中,以实现安全最佳实践。这将需要将 Lambda 函数也放置在对性能有负面影响的 VPC 中,因为在配置时需要将弹性网络接口 (ENI) 附加到每个 Lambda 函数。这增加了 Lambda 的冷启动时间。

它在管理与其他数据库的有状态连接方面也具有挑战性,因为 Lambda 是无状态的,这也会影响性能。


推荐阅读