我对 AWS 了解不多,但并不全面。如果有人能填补我的空白就好了。
假设我有 Web 应用程序 A,使用 Amazon RDS B。我在数据库中有一个队列,以便所有传入请求都会在队列中添加行,然后由挑选作业的后台进程挑选。
对于一台服务器来说,这没问题。我想知道如何构建该应用程序,以便它可以使用负载平衡器和自动缩放组进行扩展
我的疑问是:
我知道自动缩放组可以在高负载的情况下创建新的 A 实例。但是 RDS 呢?假设我有 4 个 Ec2 实例,但 RDS 只有 1 个。如果是,那么 RDS 如何管理来自 4 个实例的负载
另一件事是,我有后台进程从队列表中挑选任务。它们如何随实例扩展。有什么想法可以让我更好地了解这一点吗
答案1
SF 实际上并不是提供建筑建议,但我可以给你一些一般性的想法:
- 使用实际的排队系统 (SQS) 而不是数据库会更可靠。如果您继续使用 RDS,那么可能没问题,只需在检索“队列”中的下一个作业之前锁定表即可。
- 根据队列大小设置自动扩展。阅读文档了解如何操作。您还可以根据实例的 CPU 使用率进行扩展。
- 使用弹性负载均衡器扩展您的 Web 应用程序