从同一个实例创建 EBS 卷并附加到同一个实例?

从同一个实例创建 EBS 卷并附加到同一个实例?

是否可以创建 EBS 卷并将其附加到同一个实例?boto 会有所帮助吗?

答案1

是的。将您的凭据设置为环境变量(AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY),安装boto并启动 Python:

 >>> import boto
 >>> ec2 = boto.connect_ec2()
 >>> reservations = ec2.get_all_instances()
 >>> ins = reservations.instances[0]        # say ins is *this* instance
 >>> vol = ec2.create_volume(10, ins.placement)
 >>> vol.attach(inst.id, '/dev/sdh')
 u'attaching'

以上内容假设您只启动了一个实例。如果您知道您的实例 ID(您应该知道!),那么您可以简单地在所有实例上匹配所有预订的实例 ID。

最后,您可以简单地格式化您的卷并安装它:

 # mkfs -t ext3 /dev/sdh
 # mkdir /volume
 # mount -t ext3 /dev/sdh /volume

答案2

我认为动态获取实例 ID 是更好的选择。您可以使用对实例中的以下 URL 发出 GET 请求来改进上述脚本。

http://169.254.169.254/2009-04-04/meta-data/instance-id

然后,您可以编写一个适用于所有实例的脚本。即使您一次只有一个实例,您也可以将此脚本包含在自定义 AMI 中,以便每个新实例都可以在需要时为自己提供新卷。

相关内容