【问题标题】:Querying using DynamoDB vs AWS Lambda使用 DynamoDB 与 AWS Lambda 进行查询
【发布时间】:2017-06-20 06:25:04
【问题描述】:

我正在创建一个 iOS 应用程序,它将在不进行任何对象操作或计算的情况下查询我的数据库,我可以通过多种方式做到这一点:

  1. 直接使用 DynamoDB iOS SDK 查询

  2. 使用 AWS Lambda iOS SDK 进行查询,然后执行直接查询 DynamoDB 的 lambda 函数。

我的问题是,哪个执行时间和成本效率更高?

我的想法是选项 1 是最好的,因为它不需要函数或任何执行时间。

我知道我需要为 DynamoDB 查询付费,并且我知道我需要为 lambda 函数的执行时间付费。但是,我不确定是否会因为使用 DynamoDB SDK 方法或其他方式而被收费,或者我是否可能会忘记其他可能的成本或我没有考虑到的事情。

谢谢。

【问题讨论】:

    标签: amazon-web-services amazon-dynamodb aws-lambda aws-sdk


    【解决方案1】:

    使用 DynamoDB 更便宜,但它有严重的(在我看来)缺点:
    - 安全。您需要弄清楚如何管理访问您的 DynamoDB 的应用程序用户,可能是使用 Cognito。
    - 复杂性。这与安全有关。您必须提出可能很难的安全策略。
    - 供应商锁定。您正在将您的应用程序绑定到 DynamoDB 专有 SDK。如果明天您决定切换到 SQL 数据库或其他 NoSQL 服务,您将很难过。
    将 lambda 与 API 网关一起用作 DynamoDB 的中间件可以解决大部分问题,并使您能够使用自己的授权机制(不一定是 AWS 策略)。

    【讨论】:

      【解决方案2】:

      您的想法是正确的,使用 DynamoDB IOS SDK 执行查询在执行时间和成本上更好。

      另外,您需要为data transfer(两种方法)付费。

      但不建议将访问密钥和秘密存储在 IOS 应用程序中,您需要考虑在其中使用 temporary security credentials 可能与 AWS Cognito。

      【讨论】:

        【解决方案3】:

        DynamoDB 存在安全问题 - Dynamo DB 还没有 VPC 终端节点。因此,如果您有 VPC 端点限制,最好使用 redis 弹性缓存。

        VPC - 虚拟私有云

        【讨论】:

          猜你喜欢
          • 2021-01-11
          • 1970-01-01
          • 2016-05-20
          • 1970-01-01
          • 1970-01-01
          • 2018-11-22
          • 1970-01-01
          • 2018-09-20
          • 1970-01-01
          相关资源
          最近更新 更多