如何使用Boto3在正在运行的实例上更改EBS卷类型?

时间:2017-08-10 18:20:02

标签: amazon-web-services amazon-ec2 aws-sdk boto3

AWS支持通过控制台和CLI(docs)修改已安装的EBS卷类型(磁盘,SSD等)。但是Boto3中的volume class似乎不支持除了AutoEnableIO和DryRun之外的modifies volume attributes动作。

有没有办法用Boto3更改EBS卷类型,我没有看到或从文档中拼凑出来?

2 个答案:

答案 0 :(得分:2)

使用modify_volume()方法:

READ

即使在正在运行的启动卷上也能正常工作。

答案 1 :(得分:-1)

您解决此问题的最佳方案是:

  1. 拍摄音量快照
  2. 使用该快照创建新卷
  3. 创建新卷时更改所需类型
  4. 分离原始驱动器,然后附加新创建的驱动器
  5. 但缺点是您必须重新启动VM,无法重新启动VM而无法执行整个过程。

    new_volume_id=$(aws ec2 create-volume \
      --region "$region" \
      --availability-zone "$zone" \
      --size "$size" \
      --snapshot "$snapshot_id" \
      --output text \
      --volume-type <value>
      --query 'VolumeId')
    

    创建新卷后,您可以附加新卷。但在此之前你必须停止你的实例:

        aws ec2 attach-volume \
      --region "$region" \
      --instance "$instance_id" \
      --device "$root_device" \
      --volume-id "$new_volume_id"
    

    在这种情况下,我不确定这个答案对你有帮助。

    希望它在某种程度上有所帮助!