频繁短期运行的 EC2 实例的最佳配置,例如构建服务器

频繁短期运行的 EC2 实例的最佳配置,例如构建服务器

我们有一个 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 工具可以做什么。

希望有帮助:)

相关内容