【问题标题】:AWS cloudformation - how to attach EBS volume to EC2 windows instanceAWS cloudformation - 如何将 EBS 卷附加到 EC2 Windows 实例
【发布时间】:2017-12-05 00:43:43
【问题描述】:

这是一个有效的 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"] }

    }

}   
}

【问题讨论】:

  • 如果人们有兴趣为这些类型的问题创建一个场所,请按照dedicated Cloud Computing site on StackExchange 的提议并投票一些示例问题。
  • 能否请您说明一下您目前拥有什么?它是 Amazon EBS 卷、AMI 还是 Amazon EBS 快照?另外,它是您的启动卷 (C:) 还是辅助卷?
  • 计划在 AWS 上托管服务器。该服务器附加了 2 或 3 个 EBS 卷。我们将每天将这些卷备份到 S3 存储桶。我们还将拥有该服务器的 AMI。如果该服务器由于任何原因出现故障,我们希望使用 Cloudformation 模板将该实例从 AMI 带回,并从 S3 存储桶附加 EBS 卷。到目前为止,我编写了代码以从 AMI 调出 E2instance,如上所示。我正在尝试了解如何将 EBS 卷附加到实例。

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


【解决方案1】:

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

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

我认为您正在寻找类似 @​​987654321@ 块设备映射(临时磁盘或 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 snapshot 命令。

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

有时人们将它放在 linux 机器上的 cron 中,用一点逻辑包装它,然后在整个基础架构上循环它。 AWS 基础设施的好、简单、便宜的备份。如果您需要恢复,可以从快照创建新映像。

【讨论】:

    【解决方案2】:

    备份:您的最佳策略是定期创建 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。

    【讨论】:

    猜你喜欢
    • 2018-12-29
    • 1970-01-01
    • 2019-01-23
    • 2021-11-26
    • 1970-01-01
    • 2014-08-03
    • 1970-01-01
    • 1970-01-01
    • 2015-04-10
    相关资源
    最近更新 更多