最近有人向我介绍了 AWS,我真的很喜欢它。但是,我问自己一些关于多区域架构的问题(这可能很愚蠢)。
假设一个应用程序被欧洲人和亚洲人使用。我的第一个想法是在欧洲添加 EC2 实例,以及用于保存静态数据的 S3 存储桶以及在欧洲添加 SQS 队列和 ElastiCache。这对欧洲人来说会非常快,但对亚洲人来说会慢一些。
为了解决这个问题,我会为静态数据添加 CloudFront,以便为亚洲人快速提供图像。但是,对服务器的请求(Ajax 请求...)仍然会有一些延迟,因此解决方案是在新加坡/东京地区也添加一个 EC2 实例。
但是,出现了新问题:如果将请求分派到东京 EC2 实例,那么它是否需要从存储在欧洲的 SQS 接收消息或访问 ElastiCache 数据 => 再次延迟 + 区域间传输的成本。所以我们也需要在亚洲添加 SQS 和 ElastiCache 吗?
也许我错过了一些东西,跨区域的 AWS 请求非常快,但据我了解,如果我们想要多区域的快速体验,我们基本上需要在每个区域复制所有服务(可能除了 S3,因为我们可以为此使用 CloudFront,如果亚洲的 SQS 作业需要访问欧洲的 S3 资源,我想我们可以忍受延迟)。
无论如何,我理解正确吗?您是否有任何有关如何构建面向多区域的应用程序的资源?
谢谢 :)