如何从快照恢复EBS

时间:2019-04-27 22:49:10

标签: amazon-web-services amazon-ec2 amazon-cloudformation

给出一个包含EC2实例的cloudformation模板,该实例使用如下定义的EBS卷:

  DefaultVolume:
    Type: AWS::EC2::Volume
    DeletionPolicy: Snapshot
    Properties:
      AvailabilityZone: eu-west-1a
      Size: 8
      Tags:
        -
          Key: Name
          Value: Jenkins
      VolumeType: gp2

如何设置cloudformation模板,以便在重新创建堆栈(在删除并创建ebs快照之后)时,ebs从快照中恢复数据,而不是创建全新的卷?

1 个答案:

答案 0 :(得分:0)

我不确定是否有办法引用已删除堆栈的快照。与此有关的一个问题是,如果从同一模板创建多个堆栈,它将如何知道要拍摄哪个快照?

您可以做的是为模板的快照ID添加一个参数,并在指定后与SnapshotId一起使用。

Parameters:
  OldSnapshot:
    Type: String
    Default: ""
Conditions:
  OldSnapshotAvailable:
    !Not [!Equals [!Ref OldSnapshot, ""]]
Resources:
  DefaultVolume:
    Type: AWS::EC2::Volume
    DeletionPolicy: Snapshot
    Properties:
      AvailabilityZone: eu-west-1a
      Size: 8
      Tags:
        -
          Key: Name
          Value: Jenkins
      VolumeType: gp2
      SnapshotId: !If [OldSnapshotAvailable, !Ref OldSnapshot, !Ref AWS::NoValue]