Я использую Ruby AWS-SDK для создания таких экземпляров 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 Гб. Но я также получаю эфемерный диск 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 имеет значение, если оно есть ...
В качестве альтернативы посмотрите, сможете ли вы найти 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...