我们有一个 EC2 用例,我们想在 EC2 上构建我们的代码,但这些构建并不常见。
鉴于构建可能需要大约 5-60 分钟,而我们每天构建 2-5 次,平衡成本和便利性的最佳方法是什么?
我们是否应该在 Spot 实例和 EBS 中使用更大的实例类型,并尝试让员工在不需要时停止实例?我们是否应该使用 T2 而不是 T3 来使用 Launch 积分?或者我们应该在无限模式下有一个较小的实例,我们继续运行以获得积分,以便在实际构建时烧毁?
是否还有其他应考虑的方法?
我们有一个 EC2 用例,我们想在 EC2 上构建我们的代码,但这些构建并不常见。
鉴于构建可能需要大约 5-60 分钟,而我们每天构建 2-5 次,平衡成本和便利性的最佳方法是什么?
我们是否应该在 Spot 实例和 EBS 中使用更大的实例类型,并尝试让员工在不需要时停止实例?我们是否应该使用 T2 而不是 T3 来使用 Launch 积分?或者我们应该在无限模式下有一个较小的实例,我们继续运行以获得积分,以便在实际构建时烧毁?
是否还有其他应考虑的方法?
您使用什么 CI/CD 工具?詹金斯?GitLab?竹子?光盘?代码管道?还有什么?
大多数 CI/CD 工具都有一些方法来仅在需要时启动构建主机、运行构建、存储构建的工件(例如到 S3)并停止构建主机。所有这些都作为 CI/CD 管道的一部分自动进行。
我肯定会考虑Spot实例——最好是 m5.something 或 c5.something。你通常可以很便宜地在现场买到这些。
不要使用 T2/T3 - 代码构建是一项 CPU 密集型任务,这不是 T2/T3 的用途。
不要依赖开发人员手动启动/停止实例。他们不会。
如果您的构建可以在容器中完成,并且您的 CI/CD 支持它,请尝试在 Fargate 容器中构建 - 无需管理主机,启动和拆卸速度更快,并且还支持现货定价。
当然也可以看看 Amazon CodeBuild - 专为从源代码构建包而设计的托管服务。
有很多选择,但取决于您的 CI/CD 工具可以做什么。
希望有帮助:)