gpt4 book ai didi

mysql - 托管在 AWS 上以访问多个外部数据库的应用程序

转载 作者:太空宇宙 更新时间:2023-11-03 10:37:28 24 4
gpt4 key购买 nike

这个问题并不仅仅与应用程序开发有关,而是从架构的角度来看。假设一个应用程序必须托管在 AWS 上,这将需要来自多个外部第 3 方持有的数据库的通信(不一定要在 AWS 上,可以是他们自己的数据中心或主机托管)——也许一个客户会使用 MySQL,另一个一个 MSSQL,或 Oracle 等。

因此,这些外部数据库中保存的数据可能会经常更改,并且应用程序应始终检索更新后的数据。我能想到的一种方法是使用另一个 RDBMS 数据库(从我们这边)专门存储来自外部数据库的所有这些数据,并使我们的数据库始终保持同步。但我不确定这是否是实现此目标的好方法。

或者我是否需要使用Redshift之类的数据仓库工具来存储所有实时同步的数据,然后在我们的应用程序中使用DW数据?根据这里的架构师的说法,什么是实现这一目标的好解决方案,主要是通过多个外部数据库连接和同步?

最佳答案

对于您的用例,我建议创建一个 REST API,它将用作移动应用程序的后端服务。

有几个原因,您不应该使用您的移动应用程序直接连接到后端数据库。

安全风险

  • 需要公开访问数据库,这是一个很高的安全风险。
  • 在移动应用程序中存储数据库访问凭据存在另一个安全风险。

性能

  • 如果您有后端服务,则直接与数据库通信可能会导致数据传输方面的性能问题,该后端服务可以在根据查询从不同来源合并数据后以最佳方式发送和接收批量数据。
  • 还可以通过 API 或后端服务获得服务器端缓存的好处。

通过您的 API 获得数据的通用 View ,您可以连接到多个数据库并相应地检索数据,还可以在您的 API 中处理身份验证和授权。

下图说明了在 AWS 中使用无服务器技术堆栈(API 网关和 Lambda)构建可以连接到多个后端数据库的 API 的架构。

Serverless Architecture Solution

要强调的几点

  • 您可以根据业务逻辑的复杂性决定使用单个 Lambda 函数还是多个 Lambda 函数。
  • 建议将所有 Lambda 放在一个 VPC 中,然后通过 VPN 连接到您的远程数据中心,这样就不需要公开访问数据库。

关于mysql - 托管在 AWS 上以访问多个外部数据库的应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45438178/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com