我在 AWS 实践中遇到了以下问题,我有不同的看法,并想在此处发布以进行更多讨论,因为它解决了一个非常普遍的需求,谢谢。
您的公司在东京设有总部,在世界各地设有分支机构,并在日本、欧洲和美国的 AWS 上使用多区域部署的物流软件。物流软件采用 3 层架构,目前使用 MySQL 5.6 进行数据持久化。每个地区都部署了自己的数据库。在总部区域,您每小时运行一个批处理,从每个区域读取数据,以计算通过电子邮件发送到所有办事处的跨区域报告,该批处理必须尽快完成,以快速优化物流。您如何构建数据库架构以满足需求?
A. For each regional deployment, use RDS MySQL with a master in the region and a read replica in the HQ region
B. For each regional deployment, use MySQL on EC2 with a master in the region and send hourly EBS snapshots to the HQ region
C. For each regional deployment, use RDS MySQL with a master in the region and send hourly RDS snapshots to the HQ region
D. For each regional deployment, use MySQL on EC2 with a master in the region and use S3 to copy data files hourly to the HQ region
E. Use Direct Connect to connect all regional MySQL deployments to the HQ region and reduce network latency for the batch process
我倾向于E,原因是:
- Direct Connect 提供绕过 ISP 的带宽,并且更私密、更快(如果需要)。
- 这个问题在这里没有考虑成本。
- 与其他选项相比,初始设置时间可能更长,但是,初始设置时间成本不应该是这里的重点,这里要问的是“<strong>必须尽快完成此批处理以快速优化物流。” ,所以这与初始设置无关,而是关于如何实施正确的解决方案以在设置后提供“<strong>尽可能快”的服务
因此,我相信E是满足需求的最佳选择。
如果我的理解有误,欢迎讨论。谢谢你。