2017-06-07 59 views
0

我创建iOS应用程序,将查询我的数据库没有做任何对象操作或计算,我可以通过几种方式做到这一点:查询使用DynamoDB VS AWS LAMBDA

  1. 查询直接使用DynamoDB的iOS SDK

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

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

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

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

谢谢。

回答

0

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

此外,您将收取data transfer(两种方法)。

然而,它不建议存储访问键& IOS应用程序的秘密,你需要考虑使用temporary security credentials可能与AWS Cognito

1

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

0

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

VPC - 虚拟私有云