Создание экземпляра EC2 с Ruby SDK без эфемерного хранилища
Я использую 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?
1 ответ
http://docs.aws.amazon.com/AWSRubySDK/latest/AWS/EC2/Client.html
кажется, указывает на следующее должно работать:-
:block_device_mappings =>
[
{ebs device},
{:deviceName => '/dev/sdb', :virtual_name => :ephemeral0, :no_device => ""}
]
Кажется, код говорит, что не похоже, что это имеет значение, каково значение: no_devices, пока оно там...
В качестве альтернативы, посмотрите, можете ли вы найти ами, у которых нет этих устройств в блоке отображения по умолчанию. Для этого см. 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...