Amazon ec2 我如何设置;删除快照";对于通过启动模板创建的AWS EBS卷

Amazon ec2 我如何设置;删除快照";对于通过启动模板创建的AWS EBS卷,amazon-ec2,aws-cdk,aws-ebs,Amazon Ec2,Aws Cdk,Aws Ebs,在AmazonWebServicesCloud(AWS)中,我想创建一个启动模板,用于启动具有根EBS卷和单独EBS数据卷的AMI。删除实例时,我希望删除两个卷,但首先我希望使用快照的删除策略拍摄数据卷的快照,而不是删除或保留。我希望使用Python中的创建此启动模板,但作为最后手段,如果我可以通过任何方式(包括实例启动后运行的脚本)以这种方式配置EBS卷,这将非常有用 目前,我配置了启动模板来创建EBS卷,并在AMI终止时删除它们。到目前为止,一切顺利。我找不到的是让“数据”卷在删除之前进行快

在AmazonWebServicesCloud(AWS)中,我想创建一个启动模板,用于启动具有根EBS卷和单独EBS数据卷的AMI。删除实例时,我希望删除两个卷,但首先我希望使用
快照
删除策略
拍摄数据卷的快照,而不是
删除
保留
。我希望使用Python中的创建此启动模板,但作为最后手段,如果我可以通过任何方式(包括实例启动后运行的脚本)以这种方式配置EBS卷,这将非常有用

目前,我配置了启动模板来创建EBS卷,并在AMI终止时删除它们。到目前为止,一切顺利。我找不到的是让“数据”卷在删除之前进行快照的说法。我能做的最接近的事情是通过启动快照触发脚本来响应实例终止信号,但我担心这是不可靠的

AWS CloudFormation声称您可以在
AWS::EC2::Volume
上设置
快照的
删除策略。对于作为数据卷(而不是根卷或AMI卷)连接到EC2实例的随机EBS卷,我几乎不知道如何使其工作

  • 我在AWS控制台中看不到设置DeletionPolicy的任何位置
  • 我在
    aws
    CLI中找不到任何地方可以阅读删除策略
  • 我看不出有任何地方可以制定这项政策
因此,我可能是以错误的方式来思考这个问题,或者可能文档只是误导。在花了几个小时翻阅文档之后,我相信这不是一个真正的选择,而是一个为RDS集群启用“删除时快照”的黑客行为


我怎样才能让它在一个普通的EC2实例中工作呢?

如果您对使用terraform感到满意,您也可以尝试使用terraform。 例如:

因此,当卷被删除时,快照就会出现,您可以随时从中恢复数据

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

可以在模板中并通过扩展CDK设置删除策略。您想在CDK或控制台中执行此操作吗?在cli中。在堆栈级别,您还可以设置。如果你想设置必要的保护,你想防止什么样的删除。但是,最好的保护是定期备份。这完全没有帮助,因为(a)它不使用CDK或CFT,(b)立即拍摄快照,而不是在删除时拍摄,以及(c)绝不是启动模板的一部分。
    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"
  }
}