amazon-web-services - 我应该为所有应用程序创建一个实例,还是应该为每个应用程序使用一个?
问题描述
我对物联网项目和编程非常陌生。我有一个带有简单加速度计的 ESP01,我想将它的数据发送到数据库。现在我已经在我的机器上本地测试了所有这些并且一切正常。
这就是我正在使用的
Esp01 + 加速度计将数据发送到在我的机器上本地运行的 mqtt 代理 mosquitto,这是一个节点红色的应用程序,将这些数据发送到 Influxdb,然后 grafana 显示这些数据。
现在我想在云服务器 AWS 上托管所有内容。我发现我应该创建一个 AWS EC2 实例并在 Ubuntu 机器上安装 Node red 和 MQTT。我最大的问题是
“我应该为 Node red 创建一个实例,为 MQTT 代理创建一个实例,还是我可以只使用一个实例并将它们都安装在上面?”
最后但并非最不重要的问题是我应该对 influxdb 做同样的事情吗?
解决方案
这一切都取决于金钱。如果您严格遵循 AWS 指南,他们会告诉您应该有一个负载均衡器和至少两个 m 型实例,并且每个服务可能应该有自己的一对实例。这样 - 如果一个节点发生故障,将不会有停机时间。该设置可能每月花费您大约 100 美元。
但是对于这种项目(只为你自己),我只会使用一个小的(可能的最小的)实例,然后我会把所有东西都放在上面。很高兴知道在 AWS 中任何实例都可能随时失败。这很少见,但是当您有数千个实例时,它会定期发生。因此 - 最简单的解决方案是使用 Cloudformation 创建您的设置并进行定期备份。可能您可以创建一个仅包含一个实例的自动缩放组。如果失败,它将被自动替换,您可以(自动或手动)从备份中恢复数据。例如,在启动期间,它可以在 s3 中查找最后一个备份并安装它(通过元数据中的脚本)。
这并不完美,但对于一个爱好项目来说肯定是可以接受的。而且很便宜。
推荐阅读
- python - 如何不解压附加到 .msg 的 .msg
- wordpress - SSL 续订后 CloudFront 分配不工作
- python - 通过选择全部来编辑 Google Colab 中的所有多次出现并将其作为单个操作进行编辑?有什么捷径吗?
- php - 特定服务php的清漆
- flutter - 我如何解决由颤振phone_state包引起的错误
- reactjs - 尽管添加了唯一键,但反应还是会发出警告
- android - 将 android gradle 插件从 2.2.2 迁移到 4.1.3 并构建问题
- c# - 使用工厂方法后使用大括号填充属性
- flutter - 如何在 Flutter 中将 dataTable 值复制到剪贴板?
- pytorch - PyTorch 中是否有均值方差归一化层?