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 基础设施的良好、简单、廉价的备份。如果您需要恢复,您可以从快照创建新图像。
这是一个有效的 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 基础设施的良好、简单、廉价的备份。如果您需要恢复,您可以从快照创建新图像。