我正在开发一个物联网应用程序原型(prototype),该应用程序可以执行以下操作

  • 从传感器接收/存储数据。
  • Web应用程序和基于Web的IDE,供用户部署在Docker容器中执行的简单JavaScript / Python脚本。
  • 来自传感器的数据将流式传输到这些容器。
  • 用户程序可以使用此数据进行分析,监视等。
  • 这些程序的日志在Webapp上输出给用户

  • amazon-web-services - 选择正确的AWS服务和软件工具-LMLPHP

    当前体系结构和服务
  • 使用一个AWS EC2实例。我之所以选择EC2,是因为我试图弄清楚该体系结构。
  • Stack是Node.js,RabbitMQ,Express,MySQl,MongoDB和Docker
  • 我对使用诸如AWS IoT和Greengrass的AWS IoT服务不感兴趣
  • 因为我正在使用其他AWS服务,所以已经排除了Heroku。

  • 问题和疑虑

    我的目标是为50个用户提供Beta版的原型(prototype)开发
    (希望其他人会帮助/工作于生产版本)
  • 因为开发产品是关键,所以我不想花太多时间在服务之间迁移。我应该坚持使用EC2还是迁移到Beanstalk?
  • 如果我坚持使用EC2,那么处理中小型流量的最佳方法是什么?使用一台大型EC2机器还是许多小型微型实例?
  • 什么是管理容器的好方法?使用群体并进行容器管理值得吗?如果必须使用多个实例怎么办?
  • 我也有一些小的脚本,这些脚本具有Web应用程序和其他服务所需的传感器信息状态。如果我移到多个实例,如何使这些脚本可用于多台计算机?
  • 上面的问题也适用于服务器,消息总线,数据库等。

  • 我的目标当然不是​​生产发布。我想完成产品,表明我有感兴趣的用户,当然,表明产品有效!

    在这方面的任何帮助将不胜感激!

    最佳答案

    如果要管理在AWS中麻烦最少的Docker容器,则可以使用Amazon ECS服务来部署您的容器,或者与Beanstalk一起使用。另外,您无需在AWS中使用Swarm,ECS将为您工作。

    使用中小型EC2实例总是可以进行横向扩展而不是纵向扩展。但是,您将在这里面临的挑战是管理和扩展基础EC2以及您的Docker容器。这会导致您使用大型EC2实例来搁置EC2扩展并专注于docker扩展(这将为您增加额外的费用)

    您可以在Web应用程序部分中使用的另一种替代方法是使用带有Serverless Framework的AWS Lambda和API网关堆栈,该堆栈需要最少的操作开销,并带有DevOps工具。

    关于amazon-web-services - 选择正确的AWS服务和软件工具,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44336816/

    10-16 12:41