如何将 AWS Aurora RDS 与 Android 集成

How to integrate AWS Aurora RDS with Android

我在整个互联网上搜索过,但找不到答案。我想使用 aurora,因为它比 AWS 的 DynamoDB 更便宜也更好,所以有什么方法可以使用 android sdk 连接 aurora rds 或简单的 MySql rds 与移动应用程序。谢谢!

编辑:

注意:我不想直接将数据库与移动应用程序连接,只是想知道如何使用 Android 或 IOS 版本的 AWS 的 RDS [=13] 的过程=]

我所说的更便宜是指我从博客上读到的内容, https://abhishek-tiwari.com/dynamodb-or-aurora/

它说:

With a 50/50 read/write ratio, we expect 130,000 throughput per second. That will be 65,000 read or write per second just for 3340$ per month using the largest Aurora instance. Now to achieve the same kind of throughput with strong consistency, Amazon DynamoDB will cost you about 39,995$ per month. That means DynamoDB throughput is 11 times more costly than Aurora. In a nutshell, Aurora throughput is super cost effective.

还好你没有找到答案。

tl;dr:不要试图让您的应用程序直接连接到您的数据库服务器。

这是一个非常糟糕的想法的原因有很多,但简而言之,它会不必要地公开您的数据库,它会为客户端(永远无法信任)提供某种形式的数据库凭据,并且它将无法扩展,因为客户端连接必须是持久的(每个连接都消耗一定数量的有限服务器资源,即使在空闲时也是如此)或者必须重复创建和销毁(非常低效)。

要从应用程序使用 Aurora、其他 RDS 变体或任何类似的数据库,您需要创建并公开一个 Web 服务 API,以允许应用程序对您的数据库执行授权操作。

从历史上看,这是通过应用程序服务器完成的,但是如何执行此操作的一个示例 "serverless" 是创建一个或多个 Lambda 函数来解释来自应用程序的 JSON 请求,封装适当的逻辑,连接到数据库,并呈现 JSON 响应供应用程序使用...并使用 API 网关将 Lambda 函数公开到 Internet 以供应用程序进行经过身份验证的访问。

根据对 OP 的修改更新答案。

Note : I don't want to connect database directly with the mobile application, just want to know the procedure of how to use RDS by AWS with Android or IOS version

使用您选择的编程语言开发一些 AWS Lambda 函数并连接到 RDS 实例。

使用 Amazons Serverless Application Model (SAM) 将 API 网关端点公开给您的移动应用程序。使用上述 Lambda 函数支持所有端点。

您可以调整超时、内存设置、缓存等以满足您的要求并使用不同的方式保护资源 Authorizers or user pools

与其仅仅从评论中窃取,我认为正确回答是公平的:

  1. 定义您的用例。你要存储什么样的数据?是结构化数据还是非结构化数据?是流数据吗?这指定并指导您使用正确的数据存储。在 AWS 的特定情况下,这分别意味着 Aurora(或其他 RDS 引擎)、DynamoDB 甚至 Kinesis。后者甚至不是数据存储引擎,但它表明您的数据决定了您应该使用什么。

  2. 其他人已经指出你不应该直接公开你的数据库。无论您是使用具有 "usual" 陷阱的中间实例前端,例如 ELB、EC2、自动缩放,还是您只想要一个 API 前端,它将引导您走向 API网关.

  3. 听起来贵公司要把你扔到深水区,希望你学会在汹涌的洋流中游泳。我强烈建议接受一些培训,包括动手操作。这是否会让您走上认证之路取决于您,但您需要掌握足够的基础知识,甚至了解 AWS 中过多的活动部件。它可以完全令人困惑!

可悲的是,这个答案几乎与问题中的实际主题没有任何直接关系!我还是给了它,因为我认为重要的是你回到实际基础知识,以便您可以更好地重新表述问题和问题。