Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 选择正确的AWS服务和软件工具_Amazon Web Services_Docker_Amazon Ec2_Amazon Elastic Beanstalk - Fatal编程技术网

Amazon web services 选择正确的AWS服务和软件工具

Amazon web services 选择正确的AWS服务和软件工具,amazon-web-services,docker,amazon-ec2,amazon-elastic-beanstalk,Amazon Web Services,Docker,Amazon Ec2,Amazon Elastic Beanstalk,我正在开发一个IoT原型应用程序,它可以实现以下功能 接收/存储来自传感器的数据 具有基于Web的IDE的Web应用程序,用户可以部署在Docker容器中执行的简单JavaScript/Python脚本 来自传感器的数据流传输到这些容器 用户程序可以使用这些数据进行分析、监控等 这些程序的日志将在webapp上输出给用户 当前架构和服务 使用一个AWSEC2实例。我选择EC2是因为我试图弄清楚架构 堆栈是Node.js、RabbitMQ、Express、MySQl、MongoDB和Docker

我正在开发一个IoT原型应用程序,它可以实现以下功能

  • 接收/存储来自传感器的数据
  • 具有基于Web的IDE的Web应用程序,用户可以部署在Docker容器中执行的简单JavaScript/Python脚本
  • 来自传感器的数据流传输到这些容器
  • 用户程序可以使用这些数据进行分析、监控等
  • 这些程序的日志将在webapp上输出给用户
  • 当前架构和服务

  • 使用一个AWSEC2实例。我选择EC2是因为我试图弄清楚架构
  • 堆栈是Node.js、RabbitMQ、Express、MySQl、MongoDB和Docker
  • 我对使用AWS物联网服务(如AWS物联网和绿草)不感兴趣
  • 我已经排除了Heroku,因为我正在使用其他AWS服务
  • 问题和顾虑

    我的目标是为50名用户开发测试版原型 (希望其他人能够帮助/处理生产版本)

  • 尽可能地,我不想花太多时间在服务之间迁移,因为开发产品是关键。我应该坚持EC2还是转向Beanstalk
  • 如果我坚持使用EC2,处理中小流量的最佳方法是什么?使用一台大型EC2机器或多个小型微型实例
  • 管理容器的好方法是什么?是否值得使用swarm并进行集装箱管理?如果我必须使用多个实例怎么办?
  • 我还有一些小脚本,其中包含web应用程序和其他服务所需的传感器状态信息。如果移动到多个实例,如何使这些脚本可用于多台计算机
  • 上述问题也适用于服务器、消息总线、数据库等
  • 我的目标当然不是发布产品。我想完成产品,展示我有感兴趣的用户,当然,展示产品的工作原理


    在此方面的任何帮助都将不胜感激

    如果您想在AWS中以最少的麻烦管理docker容器,可以使用Amazon ECS服务部署容器,或者使用Beanstalk。此外,您不需要在AWS中使用Swarm,ECS将为您服务

    使用中小型EC2实例,向外扩展而不是向上扩展总是更好的。然而,您将面临的挑战是管理和扩展底层EC2以及docker容器。这导致您使用大型EC2实例来保持EC2的伸缩性,并将重点放在docker伸缩上(这将为您增加额外的成本)


    Web应用程序部分可以使用的另一种替代方法是使用AWS Lambda和API网关堆栈,它需要最少的操作开销,并且随DevOps工具一起提供

    您可以将web应用程序保留在Heroku上,并在AWS EC2或AWS Lambda中运行物联网服务器。Heroku本身在AWS上,因此此拆分设置不会影响性能。您可以通过编写一个脚本来解决“坐在两把椅子上”带来的不便,该脚本提供EC2实例和Heroku应用程序,并将它们绑定在一起

    或者,您可以使用附加组件在Docker容器中与Heroku应用程序一起运行IoT服务器


    ps:我是Dockhero维护人员

    你想过使用ECS吗?由于您使用的是docker容器,这会给您带来很多麻烦,我已经排除了Heroku,因为我使用的是其他AWS服务。Heroku是在AWS内部托管的,所以如果你真的想使用它,它仍然与其他东西非常接近。我不确定AWS Lambda/Beanstalk是否是一种方式,尤其是当产品还没有准备好的时候。我想看看我是否可以放大到4和5,并使用库伯内特斯来放大到3。我也可以使用ECS,但它不太吸引人,因为它会导致供应商锁定。我可能会使用一个中型或大型实例,然后运行Kubernetes/ECS,其中有1-2个较小的实例。我觉得你的答案不完整,有点抽象。你能详细介绍一下我的观点吗?或者你能提供更多的想法吗?今天晚些时候我会更新细节。顺便问一下,供应商锁定AWS云是否是您的体系结构的一个问题?与管理费用和成本相比。是的。至少在产品原型阶段。一旦一切都解决了,生产版本/团队可以考虑成本等问题。我只想让产品尽快与一小部分beta用户合作,而不需要锁定。此时,我正在考虑使用kubernetes来扩展容器,并使用一个大型实例来扩展其他服务。