我正在创建一个iOS应用程序,它将在不进行任何对象操作或计算的情况下查询我的数据库,我可以通过多种方式执行此操作:
使用DynamoDB iOS SDK直接查询
使用AWS Lambda iOS SDK进行查询,然后执行直接查询DynamoDB的lambda函数。
我的问题是,这更具执行时间和成本效益?
我的想法是选项1是最好的,因为它不需要函数或任何执行时间。
我知道我对DynamoDB查询负责,而且我知道我对lambda函数的执行时间负责。但是,我不确定是否会因使用DynamoDB SDK方法或其他原因而被收费,或者我是否会忘记另一项可能的费用或我未考虑的事项。
谢谢。
答案 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 - 虚拟私有云