我们有一个EC2用例,我们希望在EC2上构建代码,但是这些构建并不常见。
考虑到构建可能需要5-60分钟,而我们每天构建2-5次,那么平衡成本和竞争力的最佳方法是什么?
我们是否应该在Spot实例和EBS中使用更大的实例类型,并试图在不需要时让工作人员停止该实例?我们是否应该使用T2而不是T3来使用发布学分?或者我们应该有一个更小的例子,在无限模式下,我们应该继续运行以获取信用,在实际的建筑中燃烧?
是否还有其他应考虑的办法?
发布于 2020-03-26 11:27:18
你使用什么CI/CD工具?詹金斯?GitLab?竹子?GoCD?CodePipeline?还有别的吗?
大多数CI/CD工具只有在需要时才能旋转构建主机,运行构建,存储构建的工件(例如S3)并停止构建主机。所有自动作为CI/CD管道的一部分。
我肯定会考虑Spot实例--理想的是m5.s或c5。你通常可以非常便宜地在现场得到这些。
不要使用T2/T3 -代码构建是cpu密集型任务,这不是T2/T3的目的。
不要依赖于devs手动启动/停止实例。他们不会的。
如果您的构建可以在一个容器中完成,如果您的CI/CD支持它,那么尝试在一个Fargate容器中构建--没有主机可以管理,更快地拆分和拆卸,以及支持现货定价。
当然,请看一看专门为从源代码构建包而设计的亚马逊CodeBuild托管服务。
有很多选择,但取决于您的CI/CD工具可以做什么。
希望有帮助:)
https://serverfault.com/questions/1008474
复制相似问题