EC2和EBS怎么以及有什么区别?

EC2 and EBS how and what are the differences?

我有一台 AWS EC2 机器,我想附加存储,但在它关闭后不会被删除。管理应该使用 Cloudformation 完成。

到目前为止,我使用以下 snippet:

"BlockDeviceMappings": [
    {
        "DeviceName": "/dev/sda",
        "Ebs": {
            "DeleteOnTermination": "false",
            "VolumeSize": "10",
            "VolumeType": "gp2"
        }
    }
],

也在阅读有关 AWS:EC2:Volume and AWS:EC2:VolumeAttachment 的内容,有人可以解释其中的区别吗?使用一种方式比另一种方式有什么好处和坏处?如何将其他方法与 EC2 实例一起使用?

AWS:EC2:Volume 刚刚创建了一个新的 EBS 卷。无法使用

AWS:EC2:VolumeAttachment 允许您将新卷附加到 运行 EC2 实例,在那里它将作为块(存储)设备公开。

所以,你需要先做AWS:EC2:Volume才能知道VolumeId,然后再提供给AWS:EC2:VolumeAttachment

{
"Type":"AWS::EC2::VolumeAttachment",
"Properties" : {
   "Device" : String,
   "InstanceId" : String,
   "VolumeId" : String
}
}

您在创建 AMI 或启动 new EC2 实例时使用 BlockDeviceMappings

将 EBS 卷附加到 运行 EC2 实例时使用 AWS::EC2::VolumeAttachment。您可以附加多个额外的 EBS 卷。

您还可以按照此处所述附加和分离根设备

If an EBS volume is the root device of an instance, you must stop the instance before you can detach the volume. http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-detaching-volume.html