【发布时间】:2019-09-12 02:22:40
【问题描述】:
我正在尝试创建某种网络基础设施,并且一直在研究 Amazon ECS 和 Kubernetes。但是,我不太确定这些系统是否能满足我的实际需求,或者我是否将它们扭曲成其他东西。如果我可以描述我手头的任务,有人可以验证一下 Amazon ECS 或 Kubernetes 是否真的会帮助我完成这项工作,这是正确的思考方式吗?
我正在尝试在 AWS 实例上进行按需单任务处理。我的意思是,我有一个资源密集型应用程序,我想在云中运行它并处理用户提交的大量数据。我想提交此数据以在应用程序上进行处理,启动 EC2 实例,处理数据,将结果上传到 S3,然后关闭 EC2 实例。
我已经为此使用简单队列服务、EC2 和 Lambda 组合了一个有效的解决方案。但我想知道 ECS 或 Kubernetes 会让这更简单吗?我一直在浏览 ECS 文档,它似乎不太关心启动和关闭实例。似乎它想要一个持续运行的实例,然后将 docker 图像作为要运行的任务提供给它。 Amazon ECS 是否可以配置为在没有任务运行时自动关闭所有实例?
另外,我不明白我将如何提交要处理的特定数据块。看起来 Amazon ECS 中定义的“任务”确实对应于单个 Docker 容器,而不是 Docker 容器将处理什么样的数据。那是对的吗?那么我是否还需要通过简单的队列服务或其他方式将要处理的数据提供给实例?然后使用 Lambda 轮询这些队列,看看它们是否应该向 ECS 提交任务?
这是我目前对此的幼稚理解,如果有人可以帮助我更好地理解我所描述的事情,或者指出我更好的思考方式,将不胜感激。
【问题讨论】:
-
恕我直言,问题似乎有点宽泛。确切的问题是什么?它读起来有点像“做 x 的最佳方法是什么?”类型问题,这会导致主要基于意见的答案。你能把它缩小或分解一下吗?例如 ECS 任务定义..etc 您当前的解决方案似乎是合理的顺便说一句。
标签: amazon-web-services docker amazon-ec2 kubernetes amazon-ecs