可扩展服务器托管

时间:2019-04-10 21:41:18

标签: amazon-web-services server cloud web-hosting

我现在有一个简单的服务器(某些xeon cpu托管在某个地方),运行apache / php / mysql(没有docker,但有可能),而我期望一些流量,所以我需要我的服务器来处理。

当前服务器可以同时处理约100个用户,我需要它可能处理成千上万的用户。

将我的应用程序移至某些可扩展托管的最简单,最快的解决方案是什么?

我没有AWS经验或类似经验。

我正在阅读有关AWS和类似产品的信息,但是我大多感到困惑,不确定我应该选择什么。

1 个答案:

答案 0 :(得分:0)

基本选择是:

    使用更大的计算机
  • 垂直缩放。但是,您最终将达到极限,并且将出现单点故障(一台服务器!),
  • 通过添加更多服务器并在服务器之间分布流量,
  • 水平扩展。这具有处理故障的额外优势,因为如果一台服务器出现故障,其他服务器可以继续为流量提供服务。

在云中进行水平扩展的好处是能够根据工作负载添加/删除服务器。繁忙时,添加更多服务器。安静时,请卸下服务器。这还使您可以在安静的环境中降低成本(如果您拥有自己的设备,这在本地是不可能的)。

该架构涉及将多个服务器置于负载均衡器的后面:

Load Balancing

  • 流量进入了负载均衡器
  • 负载均衡器将请求发送到服务器(通常基于某种程度的度量,即每个服务器的“繁忙”程度)
  • 服务器处理请求并发送响应回到负载均衡器
  • 负载均衡器将响应发送给原始请求者

AWS有几个可用的负载均衡器,具体取决于需求。如果您只是将流量发送到安装在所有服务器上的单个应用程序,则 Network Load Balancer 就足够了。如果应用程序的不同部分位于不同的服务器上(例如,移动界面与Web界面),则可以使用 Application Load Balancer

AWS还通过提供 Amazon EC2 Auto Scaling 服务来协助水平扩展。这样,您可以指定要启动的服务器的详细信息(磁盘映像,实例类型,网络设置),然后Auto Scaling可以在需要时自动启动新服务器,并终止不需要。 (请注意,它们会启动和终止,而不是启动和停止。)

您可以进一步定义扩展策略,通过测量诸如CPU使用率之类的指标,告诉Auto Scaling 何时启动/终止实例。这样,服务器的数量可以大致匹配流量。

应该提到的是,如果您有一个数据库,则应将其单独存储到应用程序服务器中,以免被终止。您可以使用Amazon Relational Database Service(RDS)为您运行数据库,也可以在单独的Amazon EC2实例上运行数据库。

如果您想了解有关上述任何技术的更多信息,YouTube上有很多讲座或博客文章可以解释和演示其使用。