首页 > 解决方案 > 我应该为所有应用程序创建一个实例,还是应该为每个应用程序使用一个?

问题描述

我对物联网项目和编程非常陌生。我有一个带有简单加速度计的 ESP01,我想将它的数据发送到数据库。现在我已经在我的机器上本地测试了所有这些并且一切正常。

这就是我正在使用的

Esp01 + 加速度计将数据发送到在我的机器上本地运行的 mqtt 代理 mosquitto,这是一个节点红色的应用程序,将这些数据发送到 Influxdb,然后 grafana 显示这些数据。

现在我想在云服务器 AWS 上托管所有内容。我发现我应该创建一个 AWS EC2 实例并在 Ubuntu 机器上安装 Node red 和 MQTT。我最大的问题是

“我应该为 Node red 创建一个实例,为 MQTT 代理创建一个实例,还是我可以只使用一个实例并将它们都安装在上面?”

最后但并非最不重要的问题是我应该对 influxdb 做同样的事情吗?

标签: amazon-web-servicesmqttnode-red

解决方案


这一切都取决于金钱。如果您严格遵循 AWS 指南,他们会告诉您应该有一个负载均衡器和至少两个 m 型实例,并且每个服务可能应该有自己的一对实例。这样 - 如果一个节点发生故障,将不会有停机时间。该设置可能每月花费您大约 100 美元。

但是对于这种项目(只为你自己),我只会使用一个小的(可能的最小的)实例,然后我会把所有东西都放在上面。很高兴知道在 AWS 中任何实例都可能随时失败。这很少见,但是当您有数千个实例时,它会定期发生。因此 - 最简单的解决方案是使用 Cloudformation 创建您的设置并进行定期备份。可能您可以创建一个仅包含一个实例的自动缩放组。如果失败,它将被自动替换,您可以(自动或手动)从备份中恢复数据。例如,在启动期间,它可以在 s3 中查找最后一个备份并安装它(通过元数据中的脚本)。

这并不完美,但对于一个爱好项目来说肯定是可以接受的。而且很便宜。


推荐阅读