Как программно указать начальный размер диска для экземпляра AWS EC2 - PullRequest
1 голос
/ 25 июня 2019

Я использовал логику для указания размера диска при запуске новых экземпляров.Однако проблема в том, что для этого требуется знание DeviceName, которое зависит от типа экземпляра.Обычно это /dev/sda1, но в экземплярах p3dn.24xlarge диск по умолчанию подходит для устройства /dev/xvda, поэтому мой экземпляр заканчивается двумя томами:

 /dev/xvda          8        gp2          vol-06402d0bcb07d3b96 
 /dev/sda1        500        gp2          vol-0e2593027d73fbc52 

Я мог бы использовать p3dn как особый случай, но неуверены, что это может сломаться в будущем, какие-либо предложения о лучшем способе сделать это?

Код

      assert disk_size > 0
      ebs = {
        'VolumeSize': disk_size,
        'VolumeType': 'gp2',
      }

      args['BlockDeviceMappings'] = [{
        'DeviceName': '/dev/sda1',
        'Ebs': ebs
      }]

      instances = ec2.create_instances(**args)

1 Ответ

0 голосов
/ 26 июня 2019
  image = list(ec2.images.filter(ImageIds=['my-image-id']))[0]
  args['BlockDeviceMappings'] = [{
    'DeviceName': image.root_device_name,
    'Ebs': ebs
  }]
...