Amazon web services 选择正确的AWS服务和软件工具
我正在开发一个IoT原型应用程序,它可以实现以下功能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
在此方面的任何帮助都将不胜感激 如果您想在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来扩展容器,并使用一个大型实例来扩展其他服务。