0

这个问题与应用程序开发并不完全相关,但从体系结构的角度来看并非如此。假设一个应用程序必须在AWS上托管,这将需要来自多个外部第三方持有数据库的通信(不是必须在AWS上,可能是他们自己的数据中心或托管) - 也许一个客户端将使用MySQL,另一个客户端一个MSSQL或Oracle等。AWS上托管的应用程序访问多个外部数据库

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

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

+0

您可以连接VPC和远程数据中心之间的连接,也可以使用Direct Connect服务实现更好的连接。 –

+0

如果您可以提供更多关于您的用例的信息以提供更好的答案,那将是非常好的。那么你指的是什么样的应用程序?了解您在这些外部数据库中所拥有的大致数据量也很重要。你需要同步所有的数据还是部分?您需要多久才能将新数据提供给其他数据库? – Ashan

+0

@Ashan:这可能是一个将被公众使用的移动应用程序(android/ios)。我无法找到外部数据库的确切大小。由于从我需要检索数据的位置将会有多个位置/客户端数据库,因此我认为至少有一个TB数据在那里。所以,如果没有同步数据的解决方案,我没关系 - 只是我的移动应用程序应该与许多客户端的许多DB进行通信并实时获取所需的信息。 我希望这会给你一个更大的图片。 – serverstackqns

回答

2

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

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

安全风险

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

性能

  • 与数据库可能会导致相对于在那里,如果你有一个后端服务,它可以优化发送和基于不同来源的合并后接收数据的批量数据传输性能问题直接沟通在查询。
  • 也可以通过API或后端服务来获得服务器端缓存的好处。

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

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

Serverless Architecture Solution

几点突出

  • 您可以根据您的业务逻辑的复杂性具有单一的λ或多个lambda函数决定。
  • 建议将所有Lambda放入VPC,然后与您的远程数据中心建立VPN连接,以便数据库访问不需要公开公开。
+0

That's awesome ..但你的意思是: 1.创建不同数据库的API,当请求进入特定点时,重定向到那里.. 或 2.创建一个将与多个DB层。如果是这种情况,我应该如何存储多个连接字符串和凭证以及如何访问它。 – serverstackqns

+0

我指的是选项2创建一个API并与多个数据库通信。您有多个选项来存储数据库密钥。最安全的方法是将它们存储在AWS KMS中,并允许从Lambda访问它们。否则,您可以将它们保留在Lambda环境变量中。 除了上述建议的解决方案之外,您还可以设置Web服务器来执行此操作(但由于节省成本和开发速度,我建议使用无服务器) – Ashan

2

从那里开始:

所以基本上你需要建立一个移动应用程序,这需要 检索距离不同 数据中心不同的数据库都用于读取和写入数据

最便宜的方法是允许应用程序直接连接到这些数据库,因此根本不需要额外的基础架构。缺点:安全性(您必须将数据库凭据存储在mob.client上)并且不可能实现集中式缓存。

选项2:修改您的应用程序以使用位于AWS的中介,并依次连接到缓存和原始数据库。也许API网关可能派上用场。如果你需要中间人真的很快,我建议使用不是lambda,而是使用ec2自动缩放。需要一些钱和时间。

选项2.5:除了选项2之外,还可以将DB从站作为只读副本添加到AWS账户。更快但更昂贵。

选项3:将数据库移动到AWS并将旧副本留在旧位置。从业务角度来看可能是不可能的。

选项4:在ec2上的原始数据库和数据库之间设置master-master复制(RDS不允许master-master afaik)。缺点:我不确定稳定性。

不要忘记在传输过程中加密您的数据库流量,默认情况下不会使用SSL进行安全保护。

相关问题