【发布时间】:2017-11-04 07:56:09
【问题描述】:
我正在开发一个原型 IoT 应用程序,它执行以下操作
- 接收/存储来自传感器的数据。
- 具有基于 Web 的 IDE 的 Web 应用程序,供用户部署在 Docker 容器中执行的简单 JavaScript/Python 脚本。
- 来自传感器的数据流式传输到这些容器。
- 用户程序可以使用这些数据进行分析、监控等。
- 这些程序的日志在webapp上输出给用户
当前架构和服务
- 使用一个 AWS EC2 实例。我选择 EC2 是因为我试图弄清楚架构。
- 堆栈是 Node.js、RabbitMQ、Express、MySQl、MongoDB 和 Docker
- 我对使用 AWS IoT 服务(如 AWS IoT 和 Greengrass)不感兴趣
- 我已经排除了 Heroku,因为我正在使用其他 AWS 服务。
问题和疑虑
我的目标是为 50 位用户开发 Beta 版原型 (希望其他人会帮助/处理生产版本)
- 我不想花太多时间在服务之间迁移,因为开发产品是关键。我应该坚持使用 EC2 还是迁移到 Beanstalk?
- 如果我坚持使用 EC2,处理中小型流量的最佳方式是什么?使用一台大型 EC2 机器还是使用许多小型微型实例?
- 管理容器的好方法是什么?使用 swarm 并进行容器管理是否值得?如果我必须使用多个实例怎么办?
- 我还有一些小脚本,其中包含 Web 应用程序和其他服务所需的传感器信息状态。如果我移动到多个实例,如何使这些脚本可用于多台机器?
- 上述问题也适用于服务器、消息总线、数据库等。
我的目标当然不是产品发布。我想完成产品,表明我有感兴趣的用户,当然,表明产品有效!
非常感谢您在这方面的任何帮助!
【问题讨论】:
-
你有没有想过使用ECS?因为您使用的是 docker 容器,所以 3 号将解决您的大部分问题
-
我已经排除了 Heroku,因为我正在使用其他 AWS 服务。 Heroku 托管在 AWS 内,所以它仍然就在靠近其他一切的地方,如果你真的很想用它。
标签: amazon-web-services docker amazon-ec2 amazon-elastic-beanstalk