哪些AWS EC2实例类型适合聊天应用程序?

时间:2017-10-07 04:49:52

标签: amazon-web-services amazon-ec2 ami

目前我正在构建基于NodeJ的聊天应用程序 所以我考虑选择哪个是我们服务器的最佳实例类型? 因为AWS有很多选择:通用,计算优化,内存优化.... 你能不能给我建议:(

3 个答案:

答案 0 :(得分:3)

您可以阅读此内容 - https://aws.amazon.com/blogs/aws/choosing-the-right-ec2-instance-type-for-your-application/

实际上,您选择的主机-AWS,MS Azure,Google Compute Engine等并不重要......

如果您希望尽可能多地从服务器和基础架构中获取,则需要解决当前的任务。

首先确定在最接近的3-6个月内您将获得多少活跃用户。 如果每秒活动用户(连接)少于1000k - 我认为你可以从最小的实例类型开始。您应该检查如何增加实例的CPU / RAM / HDD(或SSD)。 因此,当您获得更多用户时,您将有一个计划如何加速您的服务器。

当您收到越来越多的用户时,请密切关注您的服务器分析 - CPU / RAM / IO利用率。

如果您需要通过一些与安全限制相关的认证,还有其他问题......

答案 1 :(得分:1)

由于您不确定从哪里开始,我建议从 M 类别(M3或M4)开始生产通用EC2实例。您可以从较小的实例类型开始,例如m3.medium。

注意:如果它是一个流量较低的内部聊天应用程序,您甚至可以考虑 T 系列EC2实例。

这里的重要部分不是试图预测容量需求。相反,您可以从通用EC2实例开始,然后查看EC2实例的资源消耗,您可以进行适当的容量规划。由于您可以横向和纵向缩放实例,因此在选择EC2实例的缩放单位之前,还需要交易实例类型,同时考虑成本和及时的负载要求。

我正在遵循的方法之一如下

  1. 从通用实例开始(除非我确信有特殊需求,例如网络,IO和等等)。
  2. 通过更改用户数量并找出限制(单个EC2实例可以处理的用户数量),对应用程序执行负载测试(不对单个EC2实例进行自动调节)。
  3. 分析了内存,CPU& IO利用率,您也可以考虑转移到不同的EC2类别或坚持使用相同的类型。 (可以说CPU达到极限但内存很少使用,你可以考虑使用 C 系列实例)。
  4. 通过移动到下一个大小(例如m3.medium到m3.large)垂直缩放EC2实例并执行负载测试以找出其限制。
  5. 重复步骤3和4后,您可以找到成本和性能之间的最佳平衡。
    • 让我们将3个实例类型的成本作为X选择为最低(因为在一个单位中增加EC2大小,使成本翻倍)
      • m3.medium - 可以为100位用户提供服务,费用为X
      • m3.large - 可以为220位用户提供服务,费用为2X
      • m3.xlarge - 可以为300个用户提供服务。费用3倍
    • 选择m3.large作为EC2实例大小是一个简单的选择,因为它可以每X成本服务110个。
    • 但是,对于某些需要根据平均预期负载来决定实例类型的应用程序,它并不简单。
  6. 设置自动扩展和负载均衡以水平扩展EC2实例以处理高于平均水平的负载。
  7. 有关详细信息,请参阅Architecting for the Cloud: Best Practices白皮书。

答案 2 :(得分:0)

我建议从T2.micro Linux实例开始。观察CloudWatch中的CPU使用情况。一旦CPU使用率开始超过50%到75%,或者空闲内存变低,或者磁盘I / O饱和,切换到下一个更大的实例。

T2.micro Linux实例(大部分)是免费的。阅读细则。 T2.micro实例是burstable,这意味着您可以从一个小实例获得良好的性能。

除非您的聊天应用程序拥有庞大的客户/交易基础,否则您(可能)不会需要其他实例类型。