首页 > 解决方案 > 尝试使用 Github、Docker、ECR 和 EC2 在 AWS 上设置 CI/CD

问题描述

所以标题就说明了一切。我正在尝试提出一个解决方案来创建 CI/CD 工作流。我试图创建的工作流程大致如下;Github 存储我们的代码和 Dockerfile,每次推送到 master 时,ECR 都会拉入我们构建的镜像。然后,ECR 将基于(最新)标记的新构建的映像推送到 EC2,然后我将该实例路由到 DNS 并创建我们的 Web 服务器。

我已经为所有存储库构建了 Docker 映像,然后构建得非常好。Github 操作也已设置,并在进行推送时将带有标签(最新)的新图像推送到 ECR。这一切都很好。我的盲点是……我该如何处理 ECR 图像?如何托管它们并将它们公开指向 DNS?我知道 ECS,但我更喜欢 EC2,我只是在任何地方都找不到任何答案。谢谢大家的帮助!

标签: amazon-web-servicescontinuous-integrationaws-ecr

解决方案


您已正确地将 ECS 标识为适合此用例的服务。使用 ECS,您仍然可以选择在 EC2 上托管容器。您可能会因为多种原因而选择这样做,例如您是否想要访问主机、已有预留实例、需要 GPU 实例等。在此处阅读更多相关信息。

通过使用 ECS,您可以将管理容器的开销转移到 AWS,例如将日志路由到 CloudWatch、在单个更大的主机上托管多个容器以及自动平衡负载等。

要将域名指向您的服务,您可以使用 Application Load Balancer (ALB) 后面的 ECS。在此处阅读更多相关信息。

最后,就 CICD 管道而言,探索AWS Codepipeline与 ECS 搭配使用时,您可以轻松配置蓝/绿部署、自动回滚等部署策略。在此处了解更多信息。


推荐阅读