在Amazon Web Services云(AWS)中,我想创建一个启动模板,该模板启动具有根EBS卷和单独的EBS数据卷的AMI。删除实例后,我要删除两个卷,但是首先我要使用DeletionPolicy
中的Snapshot
对数据卷进行快照 },而不是Delete
或Retain
。我想使用Python中的AWS CDK创建此启动模板,但作为最后的手段,如果我可以通过这种方式配置EBS卷(包括在实例启动后运行的脚本)进行配置,将很有帮助。 / p>
当前,我已将启动模板配置为创建EBS卷,并在AMI终止时将其删除。到现在为止还挺好。我找不到说要让“数据”卷在删除前拍摄快照的说法。我最接近的方法是通过启动快照来触发脚本以响应实例终止信号,但是我担心那是不可靠的。
AWS CloudFormation documentation声称您可以在DeletionPolicy
上设置Snapshot
中的AWS::EC2::Volume
。我大多无法弄清楚如何使它作为数据卷(而不是根卷或AMI卷)连接到EC2实例的随机EBS卷上工作。
aws
CLI中看不到任何地方可以读取DeletionPolicy 所以我可能在想这是错误的方式,或者文档只是误导。在将文档倾注了几个小时之后,我相信这不是一个真正的选择,而是为RDS群集启用“删除时快照”的黑客。
如何使它适用于普通EC2实例?
答案 0 :(得分:-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。