如何将多个服务部署到 AWS ECS?
Posted
技术标签:
【中文标题】如何将多个服务部署到 AWS ECS?【英文标题】:How to deploy multiple services to AWS ECS? 【发布时间】:2020-12-13 05:14:18 【问题描述】:我有一个 docker-compose 设置,其中包含 2 个以上用于本地开发的容器。我正在尝试将以下内容部署到 AWS ECS 并成功部署了第一个服务,但我正在努力部署更多服务。好像我在配置中遗漏了一些东西。
要将第一个服务部署到 ECS,我按照以下步骤操作:
-
将 docker 映像部署到 ECR
创建 ECS 集群
创建了一个我将 ECR 图像附加到的任务
配置了 VPC
配置的 ELB
在我的 ECS 容器中成功启动了一个新实例
为了部署第二个服务,我尝试按照步骤 1,3 和 6 进行操作,看起来它已成功部署。但是,当我尝试从第二个服务访问任何端点时,它会在第一个服务中导致 /404。
据我了解,我当前的 ELB 配置设置为将所有流量路由到第一个实例,所以我的问题是 - 在部署第二个服务时我还应该重用哪些步骤?它应该有一个单独的 ELB 和安全组吗?
我尝试用谷歌搜索它,但所有文章都是关于部署一个我没有问题的实例。
【问题讨论】:
【参考方案1】:您不需要为第二个服务创建集群。您需要使用第二个服务的新映像创建另一个任务定义(部署到 ECR)。下一步是在集群中创建服务并在配置网络步骤中设置服务发现。
Documentation
【讨论】:
【参考方案2】:您可能需要考虑:https://docs.docker.com/engine/context/ecs-integration/。它仍处于测试阶段,但它可以为您将您的撰写文件直接部署到 ECS。
【讨论】:
我已经用这种方法部署了我的项目,我可以说它比 ECS CLI 方式更简单,但到目前为止它只支持 fargate 并且在文档中他们也没有提到任何关于EC2。以上是关于如何将多个服务部署到 AWS ECS?的主要内容,如果未能解决你的问题,请参考以下文章
AWS ECS - 部署全栈项目的最佳方式(任务定义、集群和服务)
在网络负载均衡器 + 目标组后面运行 SSH 的 AWS ECS 服务使用 CodeDeploy 部署缓慢