【问题标题】:Capacity planning on AWSAWS 上的容量规划
【发布时间】:2019-02-09 02:58:37
【问题描述】:

我需要了解如何为 AWS 进行容量规划以及使用什么样的基础设施组件。我以下面的例子为例。

我需要设置一个基于 nodejs 的服务器,它使用 kafka、redis、mongodb。将有 250 台设备连接到服务器并每 10 秒发送一次数据。每个数据包的大小约为 10kb。我将使用 64 位 ubuntu 映像

我需要估计什么,

  • MongoDB 需要至少 3 台服务器以实现冗余。如何估计所需的 VM 和 EBS 卷的大小,例如应该是 m4.large、m4.xlarge 还是其他?默认 EBS 卷大小为 30GB。
  • 运行其他应用程序组件(包括 nodejs、kafka 和 redis 的 3-4 个进程)的 VM 的大小应该是多少?例如应该是 m4.large、m4.xlarge 还是其他?
  • 我是否可以在自动缩放组中只保留一个应用程序服务器,并随着负载的增加而增加,或者我应该至少使用 2 个

我想大致了解,考虑到设备数量、数据包大小和数据频率,我们如何去估计要考虑的虚拟机和要考虑的存储量以及可能还有其他考虑因素

【问题讨论】:

    标签: amazon-web-services amazon-ec2 capacity-planning


    【解决方案1】:

    没有人可以为您回答这个问题。这完全取决于您的应用程序和使用模式。

    正确回答此问题的唯一方法是部署一些基础架构并模拟标准使用情况,同时测量系统的性能(吞吐量、延迟、磁盘访问、内存、CPU 负载等)。

    然后,修改基础架构(添加/删除实例、更改实例类型等)并再次测量。

    您当然应该根据您的要求运行最少的部署(例如,在不同的可用区中的实例以实现高可用性),并且您可以在需要时使用 Auto Scaling 来增加额外的容量,但还需要进行模拟测试来确定应该添加更多容量的正确触发点。例如,最好的指标可能是内存、CPU 或延迟。这完全取决于应用程序以及它在负载下的行为方式。

    【讨论】:

    • 是的,我明白这一点,但即使在理论上,也必须有某种方法来估计这一点。如果客户要求为此类需求提供预算估算,实际制作应用程序、设置服务器、进行负载测试然后提供估算是不可行的。
    猜你喜欢
    • 2018-07-07
    • 2012-07-16
    • 1970-01-01
    • 2018-08-28
    • 2018-06-04
    • 1970-01-01
    • 2011-01-04
    • 2012-10-17
    • 2015-01-02
    相关资源
    最近更新 更多