如何将多个服务部署到 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?的主要内容,如果未能解决你的问题,请参考以下文章

将多个 docker 容器部署到 AWS ECS

AWS-ECS 部署得到 404 NOT FOUND

AWS ECS - 部署全栈项目的最佳方式(任务定义、集群和服务)

在网络负载均衡器 + 目标组后面运行 SSH 的 AWS ECS 服务使用 CodeDeploy 部署缓慢

aws ecs 使用copilot快速创建ecs集群环境并部署服务

Terraform + AWS ECS,持续部署流程?