我之前构建过 EC2 托管解决方案,但我现在构建的应用程序更高级,我想了解一些情况,看看我是否走在正确的轨道上。该系统托管一个移动应用程序 API,流量可能来自北美各地。我们仍在缩小预期水平,但预计流量会很大。主要操作是数据库读取,但也包括按比例的小写入。
这是我预期的布局。是否存在严重问题,或者我可以做些什么来改进它?
- 大型 RDS 实例存储所有内容(实际大小取决于研究的流量)
- 弹性负载均衡器将流量引导至
- 在不同区域和地区部署较小的实例,以在地理上分散负载
我们的 API 不包含任何静态内容(如图像),因此每个 EC2 实例都可以指向核心 RDS 卷,并且负载均衡器可以在两者之间循环。这样做是否明智,还是我需要进入数据库主/从配置?尽管预计流量会相当高,但我认为不会那高的。
答案1
根据给出的信息,坚持使用单个区域:us-east-1 或 us-west-2。北美到这些区域的延迟应该是合理的。
- 使用分布在多个可用区域的多个 EC2 实例。
- 使用 ELB 将流量分配到您的 EC2 实例。
- 使用 RDS 实例作为数据库。充分利用多可用区。它为您的数据层增加了高可用性,并且在您的 RDS 实例需要升级或不可用时,它还可以在维护时提供帮助。
稍后您可以扩展到另一个区域:
- 使用 Route 53 基于延迟的路由,以便用户前往最近的区域
- 在第二个区域中使用 RDS 只读副本,以便读取速度更快。