我计划使用 36 vCPU EC2 实例在 Windows(7、10 或 Server)上编译大型 C++ 项目。由于成本高昂,此实例仅在我们需要时运行,并且持续 1-2 小时。有时我们需要对 C 盘进行维护,例如下载和安装软件、删除文件等。这可能需要时间,而且如果我们为此运行 36 个 vCPU,成本会很高。实际上 1 个 vCPU 就足够了。
是否可以将同一磁盘用作多台 EC2 机器的 C 盘?这样我就可以使用 1 个 vCPU 实例进行维护。机器不会同时运行。唯一的区别是 vCPU 的数量。
答案1
EBS 卷无法在正在运行的 EC2 实例之间共享。任何给定时间,一个 EBS 卷只能由一个 EC2 实例使用。
您可以停止您的 EC2 实例,分离卷,然后将其附加到另一个 EC2 实例。
但是,对于您的用例,有一个更简单的解决方案:EC2 实例可以更改实例类型(例如,从 m4.xlarge 到 t2.small,然后再返回)。
当您想要进行维护时,您可以:
- 停止强大的 EC2 实例(如果它正在运行)
- 将 EC2 实例类型更改为较小的类型(通过 AWS 管理控制台中的“操作”菜单完成)
- 启动您的 EC2 实例。
- 通过 RDP 进入实例并执行维护。
- 维护完成后,停止 EC2 实例。
- 将 EC2 实例类型恢复为强大的实例类型。
请注意,根据 EC2 实例类型,您可能还需要调整 EC2 实例上的“EBS 优化”标志。
例如,M4 实例支持 EBS 优化,但 T2 实例不支持。因此,如果您在这两种类型之间切换,您还需要调整 EBS 优化标志。
以上是降低 EC2 实例成本的一个非常有效的用例。
答案2
建议的实例切换可能是最佳解决方案。您还可以编写脚本,以便进一步简化流程。