我需要了解如何为 AWS 进行容量规划以及使用哪种基础设施组件。我以下面的例子为例。
我需要设置一个基于 nodejs 的服务器,它使用 kafka、redis、mongodb。将有 250 台设备连接到服务器,每 10 秒发送一次数据。每个数据包的大小约为 10kb。我将使用 64 位 ubuntu 映像
我需要估计的,
- MongoDB至少需要3台服务器来实现冗余。如何估计所需的虚拟机和 EBS 卷的大小,例如应该是 m4.large、m4.xlarge 或其他?默认 EBS 卷大小为 30GB。
- 运行其他应用程序组件(包括 nodejs、kafka 和 redis 的 3-4 个进程(的 VM 大小应该是多少?例如,应该是 m4.large、m4.xlarge 或其他什么?
- 我可以在自动缩放组中只保留一个应用程序服务器并随着负载的增加而增加,还是应该至少保留 2 个
我想大致了解,考虑到设备数量,数据包大小和数据频率,我们如何估计要考虑哪个VM,要考虑多少存储,也许还有任何其他考虑因素
。没有人能为你回答这个问题。这完全取决于您的应用程序和使用模式。
正确回答此问题的唯一方法是部署一些基础结构并模拟标准使用情况,同时测量系统的性能(吞吐量、延迟、磁盘访问、内存、CPU 负载等(。
然后,修改基础设施(添加/删除实例、更改实例类型等(并再次测量。
您当然应该根据您的要求运行最小部署(例如,高可用性的单独可用区中的实例(,并且您可以在需要时使用Auto Scaling添加额外容量,但还需要模拟测试来确定应添加更多容量的正确触发点。例如,最佳指标可能是内存、CPU 或延迟。这完全取决于应用程序及其在负载下的行为。