我正在研究使用 Packer 来生成一些虚拟机,并且我一直在研究这个示例这里。当我尝试运行该packer build
命令时出现以下错误:
==> amazon-ebs:启动源实例时出错:指定的实例类型只能在 VPC 中使用。执行请求需要子网 ID 或网络接口 ID。(VPCResourceNotSpecified)
我解决了这个问题(见编辑),但我在挖掘时发现这一页说明我也可以使用亚马逊实例,但它建议使用 amazon-ebs 构建。
我的问题是,与 amazon-ebs 相比,使用 amazon-instance 有什么缺点吗?反之亦然?似乎 ebs 更容易启动和维护。是这样吗?使用其中一个会有什么损失吗?
编辑我遇到的问题与权限无关,而是用instance_type
of"t2.micro"
代替"m3.medium"
。不过,我仍然想知道 ebs 与 instance 的缺点。
答案1
EBS 使用网络存储作为 EC2 实例的根设备,使用 EBS 可以轻松启动实例并创建 AMI,因为卷已在实例外部可用。EBS 还允许使用更大的根设备 - 大于 8GB。
实例存储(或临时)根设备更具弹性,因为它们不依赖于网络连接,但它们更难创建 AMI:您必须将密钥加载到打包器启动的机器上,捆绑根设备,将其上传到 S3,然后使用 S3 存储桶创建 AMI。实例存储根设备通常约为 8GB,这也是一个缺点。
作为个人偏好,我喜欢坚持使用实例存储 EC2 实例 —— 有传闻称,我遇到 EC2 宕机的情况大多是由于 EBS 问题造成的。