AWS cloudformation - 如何将 EBS 卷附加到 EC2 windows 实例

AWS cloudformation - how to attach EBS volume to EC2 windows instance

这是一个有效的 Amazon CloudFormation JSON 模板,用于创建 Amazon EC2 Windows 2016 实例。

我想附加一个在 S3 存储桶上备份的 EBS 卷。我怎样才能做到这一点?有什么指点吗?

  {
"Parameters" :{
    "KeyName" : {
        "Description" : "Name of the existing EC2 KeyPair",
     "Type" : "String"
    }
 },
 "Mappings" : {
"RegionMap" : {
   "us-east-1" : {
    "AMI" : "ami-48b4bf31"
   },
   "us-west-1": {
    "AMI" : "ami-48b4bf31"
    },
       "us-west-2":{
            "AMI" : "ami-48b4bf31"
       }        
}
 },
 "Resources" :  {
  "Ec2Instance" : {
          "Type" : "AWS::EC2::Instance",
      "Properties": {
            "KeyName" : {"Ref" : "KeyName"},
        "ImageId" : { "Fn::FindInMap" : [ "RegionMap", { "Ref" : "AWS::Region" }, "AMI" ]}

          }         
   }    
  },
  "Outputs" : {
  "AvailablityZone" : {
        "Description" : "Availability Zone of the newly created EC2 instance",
        "Value" : { "Fn::GetAtt" : [ "Ec2Instance", "AvailabilityZone" ] }
      },
  "PublicIp" :{
    "Description" : "Public IP is",
    "Value": {"Fn::GetAtt": ["Ec2Instance", "PublicIp"] }

    }

}   
}

备份:您最好的策略是定期创建 AMI。 AMI 是附加到 Amazon EC2 实例的卷的快照——是的,它可以包括 ALL 附加到实例的磁盘。 AMI 实际上只是 EBS 快照的集合,加上一些元数据。

恢复: 从该 AMI 启动一个新的 Amazon EC2 实例。它将包含创建 AMI 时存在的所有磁盘上的所有数据。 (它会创建新的 EBS 卷,但它们将包含与创建 AMI 时相同的数据。)

每次您创建一个新的 AMI,它都会收到一个新的 AMI-ID。因此,我建议您的 CloudFormation 模板接受 AMI-ID 作为可以在创建堆栈时输入的 参数 。您只需粘贴最新 AMI 的 AMI-ID,实例就会使用该 AMI。

另请注意,AMI 仅在一个区域中创建。您可以将 AMI 复制到不同的区域,但它将在新区域收到不同的 AMI-ID。

坦率地说,您的 CloudFormation 模板似乎只是启动 EC2 实例,您无需使用 CloudFormation 即可在控制台中同样轻松地执行此操作。

这个问题大概分为两部分:

  • 1) 如何在 cloudformation
  • 中指定有关我的 windows 主机的 ebs 卷的详细信息

我认为您正在寻找类似 this 块设备映射(临时磁盘或 ebs)或卷(仅限 EBS)的东西

 "BlockDeviceMappings" : [
                 {
                     "DeviceName" : "/dev/sdc",
                     "Ebs" : { "VolumeSize" : "50" }
                 },
                 {
                     "DeviceName" : "/dev/sdd",
                     "Ebs" : { "VolumeSize" : "100" }
                 }
             ]

或数量

"Volumes" : [
{ "VolumeId" : 
      { "Ref" : "NewVolume" }, "Device" : "/dev/sdk" }

]

其次

  • 2) 如何备份我的 windows 主机。

最简单的方法可能是使用 aws cli 快照命令。

aws ec2 create-snapshot --volume-id vol-1234567890abcdef0 --description "Backup of my windows server"

有时人们将它放在 linux 盒子上的 cron 中,用一些逻辑包装它并在整个基础设施上循环。 AWS 基础设施的良好、简单、廉价的备份。如果您需要恢复,您可以从快照创建新图像。