使用Ruby SDK创buildEC2实例,而不使用临时存储

我使用Ruby AWS-SDK创build如下的EC2实例:

instance = ec2.instances.create({ :image_id => WORKER_AMI, :instance_type => instance_type, :key_name => 'cloud', :security_groups => 'worker', :user_data => user_data_script, :count => 1, :block_device_mappings => [ { :device_name => "/dev/sda1", :ebs => { :volume_size => 50, :delete_on_termination => true } } ] }) 

这样做,我得到一个50 Gb根卷。 但我也得到了一个我不需要的360G临时磁盘。 在AWS控制台中,您可以在启动实例时在向导中将其删除。 但是如何通过SDK来做到这一点?

http://docs.aws.amazon.com/AWSRubySDK/latest/AWS/EC2/Client.html#run_instances-instance_method

似乎表明以下应该工作: –

 :block_device_mappings => [ {ebs device}, {:deviceName => '/dev/sdb', :virtual_name => :ephemeral0, :no_device => ""} ] 

代码似乎说,它看起来并不重要:no_devices是什么价值,只要它在那里…

另外,看看你是否可以find一个没有这些设备的默认块映射的ami。 要做到这一点,请参阅http://docs.aws.amazon.com/AWSEC2/latest/CommandLineReference/ApiReference-cmd-CreateImage.html

  ec2-create-image instance_id --name name -b /dev/sdb=none /dev/sdc=none etc...