大家好。目前,我正在寻找一种托管 MERN Stack 应用程序的好方法,并发现通过 AWS 进行云托管是一个很好的解决方案。在继续之前,我想澄清一些关于理解云托管如何工作的问题。
我的理解是,云托管基于在 AWS 系统某处运行的实例。如果我想提高托管应用程序的性能,我可以添加另一个实例,这样我的应用程序就会有两个实例在运行。
当用户打开我的网站时,流量如何在两个实例之间分配?通常我的域名会链接到一个实例的 IP 地址,但另一个实例是否无法访问?
我的数据库会在每个实例上单独运行,对吗?我怎样才能让一个数据库被所有其他实例使用?
提前致谢!我很感激任何帮助
答案1
根据您的问题,我认为您不应该设置任何 AWS 服务。AWS 和其他云服务都是企业级系统,功能非常强大,但也非常复杂。AWS 专业人员通常已经研究 AWS 数百小时,并在该领域工作多年,以精通它。如果您将东西放在 AWS、Azure、Google 中,您将在启动、扩展和保护方面遇到问题。
我建议您使用服务提供商,或者至少雇人为您做这件事,否则您会发现现在或将来会出现问题。
不过,要回答你的问题:
- 您的软件在 EC2 实例(虚拟机)上运行。您可以指定它们的数量、大小以及运行位置。最简单的选择是购买一台更大的机器,但更好的选择是使用负载平衡器并进行扩展,这意味着如果系统不繁忙,实例将被删除,您无需为它们付费。
- 像 ALB 这样的负载均衡器会在实例之间分配流量。我认为这是在“最少连接”上完成的,但其中有一些灵活性,我认为您可以根据响应时间进行负载平衡。我有一段时间没有看过这方面的细节了。
- 您可以使用 AWS 关系数据库服务,可以拥有专用于运行数据库的主机,或者一个 VM 可以运行数据库,而其他实例可以连接到它。在许多情况下,RDS 是最佳选择。