使用DynamoDB和AWS Lambda

时间:2017-06-07 23:27:13

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

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

  1. 使用DynamoDB iOS SDK直接查询

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

  3. 我的问题是,这更具执行时间和成本效益?

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

    我知道我对DynamoDB查询负责,而且我知道我对lambda函数的执行时间负责。但是,我不确定是否会因使用DynamoDB SDK方法或其他原因而被收费,或者我是否会忘记另一项可能的费用或我未考虑的事项。

    谢谢。

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

此外,您需要支付data transfer费用(两种方法)。

但是,建议不要存储访问密钥和密钥。 IOS应用程序中的秘密,您需要考虑temporary security credentials使用AWS Cognito

答案 2 :(得分:0)

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

VPC - 虚拟私有云