amazon-web-services - 尝试使用 Github、Docker、ECR 和 EC2 在 AWS 上设置 CI/CD
问题描述
所以标题就说明了一切。我正在尝试提出一个解决方案来创建 CI/CD 工作流。我试图创建的工作流程大致如下;Github 存储我们的代码和 Dockerfile,每次推送到 master 时,ECR 都会拉入我们构建的镜像。然后,ECR 将基于(最新)标记的新构建的映像推送到 EC2,然后我将该实例路由到 DNS 并创建我们的 Web 服务器。
我已经为所有存储库构建了 Docker 映像,然后构建得非常好。Github 操作也已设置,并在进行推送时将带有标签(最新)的新图像推送到 ECR。这一切都很好。我的盲点是……我该如何处理 ECR 图像?如何托管它们并将它们公开指向 DNS?我知道 ECS,但我更喜欢 EC2,我只是在任何地方都找不到任何答案。谢谢大家的帮助!
解决方案
您已正确地将 ECS 标识为适合此用例的服务。使用 ECS,您仍然可以选择在 EC2 上托管容器。您可能会因为多种原因而选择这样做,例如您是否想要访问主机、已有预留实例、需要 GPU 实例等。在此处阅读更多相关信息。
通过使用 ECS,您可以将管理容器的开销转移到 AWS,例如将日志路由到 CloudWatch、在单个更大的主机上托管多个容器以及自动平衡负载等。
要将域名指向您的服务,您可以使用 Application Load Balancer (ALB) 后面的 ECS。在此处阅读更多相关信息。
最后,就 CICD 管道而言,探索AWS Codepipeline。与 ECS 搭配使用时,您可以轻松配置蓝/绿部署、自动回滚等部署策略。在此处了解更多信息。
推荐阅读
- swift - 更改枚举 Swift 的关联值
- javascript - 无法弄清楚如何在 JavaScript 中使用“for ... in”
- jquery - jQuery HTML 包括停止 JQuery 工作
- python - 如何在表示 Python 中的十六进制符号的字节对象中设置位
- android - 获取 onStop() 的原因
- mongodb - 无法连接到服务器 127.0.0.1:27017 连接尝试失败 MongoDB
- angular - Angular 6 @angular/pwa - sw 没有成功地服务于清单的 start_url
- postfix-mta - Postfix smtpd - 在 /var/log/mail.log 中不断连接和断开连接
- javascript - 在 Angular 6 中调用函数并将其传递给 *ngIf
- android - WifiPermissionsUtil 在 React Native 上被拒绝