我应该为我的所有应用程序创建一个实例还是应该为每个应用程序使用一个实例?

时间:2021-01-26 09:29:34

标签: amazon-web-services mqtt node-red

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

这是我正在使用的

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

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

“我应该为 Node red 创建一个实例,为 MQTT 代理创建一个实例,还是我可以只使用一个实例并在其上安装这两个实例?”

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

3 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:1)

这取决于多种因素,包括风险状况。如果只是为了实验和开发,一个实例拥有一切可能很好。如果您将其作为服务提供给(付费)客户,那么最好将它们分布在多个实例中以提供弹性。

答案 2 :(得分:1)

Mosquitto 和 Node-RED 都可以在单个实例上愉快地运行。即使是一个 nano 实例也可能足以满足业余爱好者的使用需求,一个 Lightsail 实例甚至可能绰绰有余。

作为旁注,在将 Node-RED 放置在面向互联网的机器上之前,您确实需要确保为 Node-RED 启用管理员 authentication

相关问题