【问题标题】:EC2 volume: how do I set it so that it WILL delete on termination?EC2 卷:如何设置它以使其在终止时删除?
【发布时间】:2011-11-15 15:09:18
【问题描述】:

我有一个 EC2 实例,我想对其进行快照,以用作未来 Spot 实例的 AMI。 由于我为此实例创建卷的方式,它当前设置为在终止时删除。
我希望它在终止时 删除,这样我就可以将它用于现场实例,而不会有需要手动删除的剩余卷。

我已经梳理了 AWS 手册、堆栈交换、谷歌等,我只能找到对“终止时删除”标志的引用,但没有解释如何使用它。

【问题讨论】:

  • 我得到了答案,但是 stackoverflow 暂时不会让我提交它,因为我太新手了。诀窍是在 ec2-request-spot-instances 之后使用参数 -b "/dev/sda1=::true"
  • 可以在 ec2-modify-instance-attributes 上使用相同的 -b 选项来配置已经投入使用的实例。

标签: amazon-web-services amazon-ec2 volume termination


【解决方案1】:

采用@akshar 所写的内容,您可以将所有内容放在同一行中,而无需额外的 json 文件:

 aws ec2 modify-instance-attribute --instance-id i-123abc45 --block-device-mappings "[{\"DeviceName\": \"/dev/sdf\",\"Ebs\":{\"DeleteOnTermination\":true}}]"

/dev/sdf 是实例中的挂载点

【讨论】:

  • 优秀的答案。在谷歌上搜索这个问题,发现关于如何确定或修改这个标志的文档非常少。
  • 这太棒了。我是通过标记过滤器获取附加卷来做到这一点的。
【解决方案2】:
【解决方案3】:

按照其他人所说的,一行并且没有 JSON 编码和丑陋的转义:

modify-instance-attribute --instance-id $ID --block-device-mappings 'DeviceName=/dev/sdf,Ebs={DeleteOnTermination=true}'

【讨论】:

    【解决方案4】:

    您可以使用 AWS-CLI 执行此操作:

    最简单的方法是使用aws ec2命令提供的modify-instance-attribute子命令。

    aws ec2 modify-instance-attribute --instance-id i-123ab12f --block-device-mappings file://~/some.json 
    

    文件some.json的内容应该是:

    [
        {
        "DeviceName": "/dev/sda1",
        "Ebs": {
          "DeleteOnTermination": true
          }
        }
    ]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多