![频繁短期运行的 EC2 实例的最佳配置,例如构建服务器](https://linux22.com/image/750122/%E9%A2%91%E7%B9%81%E7%9F%AD%E6%9C%9F%E8%BF%90%E8%A1%8C%E7%9A%84%20EC2%20%E5%AE%9E%E4%BE%8B%E7%9A%84%E6%9C%80%E4%BD%B3%E9%85%8D%E7%BD%AE%EF%BC%8C%E4%BE%8B%E5%A6%82%E6%9E%84%E5%BB%BA%E6%9C%8D%E5%8A%A1%E5%99%A8.png)
我们有一个 EC2 用例,我们想在 EC2 上构建我们的代码,但这些构建并不频繁。
考虑到构建可能需要大约 5-60 分钟,并且我们每天构建 2-5 次,平衡成本和便利性的最佳方法是什么?
我们是否应该使用带有竞价实例和 EBS 的更大实例类型,并尝试让员工在不需要时停止实例?我们是否应该使用 T2 而不是 T3 来利用启动积分?或者我们是否应该在无限模式下使用较小的实例,并持续运行以积累积分,以便在实际构建时消耗掉这些积分?
还有其他方法可以考虑吗?
答案1
您使用什么 CI/CD 工具?Jenkins?GitLab?Bamboo?GoCD?CodePipeline?其他的?
大多数 CI/CD 工具都有某种方式仅在需要时启动构建主机、运行构建、存储构建的工件(例如存储到 S3)并停止构建主机。所有这些都是作为 CI/CD 管道的一部分自动完成的。
我肯定会考虑点实例 - 理想情况下是 m5.something 或 c5.something。通常您可以非常便宜地现场获得这些。
不要使用 T2/T3 - 代码构建是一项 CPU 密集型任务,这不是 T2/T3 的用途。
不要依赖开发人员手动启动/停止实例。他们不会这么做。
如果您的构建可以在容器中完成,并且您的 CI/CD 支持它,请尝试在 Fargate 容器中构建 - 无需管理主机,启动和拆卸速度更快,并且还支持现货定价。
当然,看看 亚马逊 CodeBuild- 专为从源代码构建包而设计的托管服务。
有很多选择,但取决于您的 CI/CD 工具可以做什么。
希望有帮助:)