AWS CDK 部署 ECR 资源到 ECS Fargate 使用蓝绿部署(Blue/Green Deployment)和 NestJS 微服务

0

【以下的问题经过翻译处理】 我有一个nestjs monorepo微服务,其中包含api-gateway和products。我的api-gateway正在监听5000端口,我的products微服务只是设置为微服务。我设置的方式是使用RabbitMq消息传递到正确的微服务。我正在尝试使用cdk将它部署到aws ecs,但遇到一些困难(这是我第一次使用微服务),所以不知道从哪里开始。如果我理解正确,我需要做以下几件事:

  1. 创建一个ecs集群
  2. 在80端口(非安全)上设置我的vpc和监听器
  3. 设置我的任务定义(我是否需要一个同时拥有两个ecr镜像的任务定义,还是我需要每个微服务各一个任务定义,在我的情况下是2个?)
  4. 创建一个服务(每个任务定义一个)
  5. 如何设置蓝绿部署?
  6. 将其绑定到我的代码部署流水线

想法/建议?

profile picture
专家
已提问 1 年前73 查看次数
1 回答
0

【以下的回答经过翻译处理】 你好,

我猜你所说的 API Gateway 是指你的应用程序内部,而不是使用 AWS API Gateway,对吗?

如果你可以将你的服务放入一个 docker-compose 文件中,这对于本地测试和配置非常有帮助,ECS Compose-X 将负责为你设置一切:它将创建 IaC 模板(CloudFormation),以便将所有内容部署到 AWS(使用类似 ecs-compose-x up 这样简单的命令)。它将为你创建 ECS 集群、VPC、ECS 资源、IAM 角色等等。你还可以让它处理其他事情,比如 DNS、ELB 等等。

另外,你也可以尝试使用 Copilot,但它不使用 docker-compose 语法。

希望这对你有所帮助

profile picture
专家
已回答 1 年前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则