terraform 是不是支持 AWS BACKUP 还原功能?

Posted

技术标签:

【中文标题】terraform 是不是支持 AWS BACKUP 还原功能?【英文标题】:Does terraform support AWS BACKUP restore feature?terraform 是否支持 AWS BACKUP 还原功能? 【发布时间】:2020-08-04 14:16:57 【问题描述】:

terraform 是否支持 aws 备份功能以从保管库 (https://www.terraform.io/docs/providers/aws/r/backup_plan.html) 恢复映像?

当我阅读该文档时,我可以看到它确实支持创建备份计划、分配资源和策略、创建保管库但不支持恢复映像或 ebs 卷

How do i add the restore block in my terraform template

【问题讨论】:

【参考方案1】:

Terraform 的执行模型旨在将预期状态的声明性描述转换为命令式操作以自动达到该状态,因此它的模型并不真正支持“异常”过程,例如恢复备份。

但是,您可以开发一个流程来恢复备份 Terraform 一起使用 AWS 控制台、AWS CLI 或 API 在您自己的自动化中完成主要的恢复操作,然后在之后通知 Terraform它应该通过状态操作命令使用恢复的对象。

例如,如果您有一个由 Terraform 使用 aws_ebs_volume 资源管理的 EBS 卷,您还可以使用 Terraform 为该卷配置 AWS 备份计划,然后将根据您的计划自动创建备份。

在您现有卷丢失或损坏并且您想要恢复备份的特殊情况下,响应事件的人员可以遵循以下过程:

使用 AWS 控制台、AWS CLI 或您自己设计的某些软件使用 AWS Backup API 创建 AWS Backup 恢复作业。 备份作业完成后,请咨询CreatedResourceARN 以查找通过恢复备份创建的新对象的 ID。对于 EBS 卷,这将是 :volume/ 分隔符之后的最后一部分。

告诉 Terraform “忘记”现在已被破坏或损坏的现有 EBS 卷对象:

terraform state rm aws_ebs_volume.example

告诉 Terraform 将通过恢复备份创建的对象导入为与 Terraform 资源关联的新远程对象:

terraform import aws_ebs_volume.example vol-049df61146c4d7901

如果您的旧 EBS 卷仍然存在但已损坏或以其他方式损坏,最后一步是找到并手动销毁它的剩余部分,因为 Terraform 不再管理它,因此它会留在永远的地方。

此过程完成后,Terraform 将认为新对象是由该资源管理的对象,并且您可以正常使用 Terraform,该资源继续前进。相同的原则适用于 AWS Backup 支持的任何对象类型,只要它们在 AWS 提供程序中具有支持 terraform import 的资源类型。

【讨论】:

以上是关于terraform 是不是支持 AWS BACKUP 还原功能?的主要内容,如果未能解决你的问题,请参考以下文章

Terraform - 具有编程访问权限的 AWS IAM 用户

Terraform AWS 提供商数据源 aws_iam_role 所需的参数“名称”是不是需要角色的路径?

Terraform elasticbeanstalk部署

通过 Terraform 添加 AWS 安全组时出现问题

在Terraform中为价格配置AWS自动扩展组?

在 Terraform 的 aws_ecs_task_definition 资源中设置 ulimit 堆栈大小