是否可以创建 EBS 卷的快照,获取该快照并将其转换回 EBS 卷并通过 Terraform 将其附加到 EC2?
我目前正在考虑在 AWS 中自动化我们的生产和测试环境,因此它们是相同的,我发现使用 Terraform 非常有用,但我找不到任何关于如何实现这一点的文档。
是否可以创建 EBS 卷的快照,获取该快照并将其转换回 EBS 卷并通过 Terraform 将其附加到 EC2?
我目前正在考虑在 AWS 中自动化我们的生产和测试环境,因此它们是相同的,我发现使用 Terraform 非常有用,但我找不到任何关于如何实现这一点的文档。
您可以从快照创建 EBS 卷并将其附加到实例,而无需太多困难使用aws_ebs_volume
和aws_volume_attachment
资源。
您还可以使用资源创建快照或使用数据源aws_ebs_snapshot
动态获取快照 ID 。aws_ebs_snapshot
一个简单的例子可能是这样的:
data "aws_ebs_volume" "production_volume" {
most_recent = true
filter {
name = "volume-type"
values = ["gp2"]
}
filter {
name = "tag:Name"
values = ["Production"]
}
}
resource "aws_ebs_snapshot" "production_snapshot" {
volume_id = "${data.aws_ebs_volume.prod_volume.id}"
tags {
Name = "Production"
}
}
resource "aws_ebs_volume" "from_production_snapshot" {
availability_zone = "us-west-2a"
snapshot_id = "${aws_ebs_snapshot.production_snapshot.id}"
size = 40
tags {
Name = "Non-Production"
}
}
resource "aws_instance" "non_production" {
ami = "ami-21f78e11"
availability_zone = "us-west-2a"
instance_type = "t2.micro"
tags {
Name = "Non-Production"
}
}
resource "aws_volume_attachment" "non_production" {
device_name = "/dev/xvdf"
volume_id = "${aws_ebs_volume.from_production_snapshot.id}"
instance_id = "${aws_instance.non_production.id}"
}