【问题标题】:How do I set "snapshot on delete" for an AWS EBS Volume created via a LaunchTemplate如何为通过 LaunchTemplate 创建的 AWS EBS 卷设置“删除时快照”
【发布时间】:2020-10-29 06:54:40
【问题描述】:

在 Amazon Web Services 云 (AWS) 中,我想创建一个启动模板,用于启动具有根 EBS 卷和单独 EBS 数据卷的 AMI。删除实例时,我希望删除两个卷,但首先我希望数据卷拍摄快照,使用 DeletionPolicySnapshot 而不是 @ 987654330@ 或Retain。我想在 Python 中使用 AWS CDK 创建这个启动模板,但作为最后的手段,如果我可以通过任何方式配置 EBS 卷,包括在实例启动后运行的脚本,这将很有帮助。

目前,我已将启动模板配置为创建 EBS 卷并在 AMI 终止时将其删除。到目前为止,一切都很好。我找不到让“数据”卷在删除之前拍摄快照的说法。我能做到的最接近的方法是通过启动快照来触发脚本以响应实例终止信号,但我担心这是不可靠的。

AWS CloudFormation documentation 声称您可以在 AWS::EC2::Volume 上设置 SnapshotDeletionPolicy。我大多不知道如何让它作为数据卷(不是根或 AMI 卷)附加到 EC2 实例的随机 EBS 卷工作。

  • 我在 AWS 控制台中看不到任何设置 DeletionPolicy 的地方
  • 我在aws CLI 中没有看到任何地方可以读取DeletionPolicy
  • 查看LaunchTemplate,我没有看到任何设置此政策的地方

因此,我可能以错误的方式思考这个问题,或者文档可能只是误导。在翻阅文档几个小时后,我相信这不是一个真正的选择,而是为 RDS 集群启用“删除时快照”的 hack。

我怎样才能让它适用于普通的 EC2 实例?

【问题讨论】:

  • 删除策略可以在CloudFormation模板和扩展CDK中设置。您想在 CDK 或控制台中执行此操作吗? DeleteOnTermination 在 cli 中。在堆栈级别,您也可以设置DeletionPolicy。您试图防止哪种删除,可能是意外删除?
  • 如果你想prevent deletion设置必要的保护。但是最好的保护是定期备份。

标签: amazon-ec2 aws-cdk aws-ebs


【解决方案1】:

如果您愿意的话,您也可以尝试使用 terraform。 示例:

    resource "aws_ebs_volume" "example" {
  availability_zone = "us-west-2a"
  size              = 40

  tags = {
    Name = "HelloWorld"
  }
}

resource "aws_ebs_snapshot" "example_snapshot" {
  volume_id = "${aws_ebs_volume.example.id}"

  tags = {
    Name = "HelloWorld_snap"
  }
}

因此,当卷被删除时,快照将在那里,您可以随时从中恢复数据。

您可以将参数DeleteOnTermination 设置为true 或false。 当实例终止时,Amazon Elastic Compute Cloud (Amazon EC2) 使用每个附加 EBS 卷的 DeleteOnTermination 属性值来确定在实例终止时是保留还是删除该卷。默认情况下,实例根卷的 DeleteOnTermination 属性设置为 true,但对于所有其他卷类型,该属性设置为 false。

【讨论】:

  • 这完全没有帮助,因为 (a) 它不使用 CDK 或 CFT,(b) 立即拍摄快照而不是在删除时,并且 (c) 绝不是启动模板的一部分.
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-04-07
  • 1970-01-01
  • 2016-07-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-06
相关资源
最近更新 更多