Criando uma instância do EC2 com o Ruby SDK sem armazenamento efêmero

1

Eu uso o Ruby AWS-SDK para criar instâncias do EC2 como esta:

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 }
    }
  ]
})

Ao fazer isso, recebo um volume de raiz de 50 Gb. Mas também recebo um disco efêmero de 360G que não preciso. No console da AWS, você pode removê-lo no assistente ao iniciar uma instância. Mas como fazer isso via SDK?

    
por aurels 26.09.2013 / 13:45

1 resposta

2

link

parece indicar que o seguinte deve funcionar: -

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

O código parece dizer que não parece que importa qual é o valor de: no_devices, contanto que esteja lá ...

Como alternativa, veja se você pode encontrar uma ami que não tenha esses dispositivos em seu mapeamento de bloco padrão. Para isso, consulte o link

 ec2-create-image instance_id --name name -b /dev/sdb=none /dev/sdc=none etc...
    
por 26.09.2013 / 14:06