分离 ec2 实例的根卷

Detach root volume of ec2 instance

我正在使用 Spot 实例来完成一些工作并保留数据,我正在重新安装以前存在的卷作为我当前实例的根卷。所以实例启动的根卷不再使用,我想删除它以节省成本。

我已经卸载了以前的根卷,并尝试使用和不使用 --force 参数将其从 cli 中分离出来,但都以失败告终并出现此错误:

An error occurred (IncorrectState) when calling the DetachVolume operation: Unable to detach root volume 

我意识到这是因为 aws 在 xv/s da1 中安装了初始根并且 aws 阻止我分离它。

是否可以执行任何步骤来分离已卸载的根卷?

不,没有。分离根卷需要停止实例,无法停止 Spot 实例。

to preserve the data, I am remounting a previously existing volume as the root volume of my current instance.

这不是正确的做法。 Spot 实例本质上是短暂的,重用根卷不是预期的操作。

使用弹性文件系统(如果您所在的地区可用)是实现此目的的理想选择。 EFS 文件系统可以在您需要的任何地方挂载到您的层次结构中,例如 /srv/data 之类的地方,并且这些文件系统也可以同时挂载到多个实例。

也可以使用 S3,尽管您在编写代码时必须考虑到这一点。

或者,如果您想四处移动卷,请将您的工作保存在不是根卷的 EBS 卷上。