Сочетание экземпляров спот и по требованию ec2 в группе автоматического масштабирования - PullRequest
0 голосов
/ 17 марта 2020

У меня есть скрипт, написанный на boto3, который создаст группу автоматического масштабирования с 50% экземпляров по требованию и 50% экземпляров спот. Если по какой-либо причине экземпляр спот не запускается, может быть, он не загружен или цена слишком высока, каков наилучший способ обеспечить запуск экземпляра по требованию в месте спот?

Например, если у меня есть эта настройка:

  1. asg с именем test-env-date
  2. требуемая емкость 2, мин 2, max 2
  3. 50% по требованию, что означает, что 1 экземпляр будет по требованию, а другой будет спот
  4. , спот не может быть найден из-за отсутствия доступности в моем az

Теперь, как убедиться, что моя группа автоматического масштабирования действительно запускает 2 экземпляра по требованию, так как место недоступно?

РЕДАКТИРОВАТЬ : вот мой звонок. Передача шаблона запуска, который я создал ранее. Как вы можете видеть в создании группы автоматического масштабирования, я могу указать тип экземпляра пятна и общий размер для группы автоматического масштабирования. Так как это смешанная группа автоматического масштабирования, я указываю% по требованию с помощью 'OnDemandPercentageAboveBaseCapacity': on_demand_percentage Если не хватает спотовой емкости, и это значение установлено на 50, это будет означать, что мой asg останется на 1 даже если мой желаемый объем составляет 2?

response = client.create_auto_scaling_group(
        AutoScalingGroupName=auto_scaling_group_name,
        MixedInstancesPolicy={
            'LaunchTemplate':{
                'LaunchTemplateSpecification': {
                    'LaunchTemplateName': auto_scaling_group_name
                },
                'Overrides':[
                    {
                        'InstanceType': spot_instance_type_1
                    },
                    {
                        'InstanceType': spot_instance_type_2
                    },
                    {
                        'InstanceType': spot_instance_type_3
                    }
                ],
            },
            'InstancesDistribution': {
                'OnDemandAllocationStrategy': 'prioritized',
                'OnDemandBaseCapacity': 0,
                'OnDemandPercentageAboveBaseCapacity': on_demand_percentage,
                'SpotAllocationStrategy': 'lowest-price',
            }
        },
        MinSize=min_size,
        MaxSize=max_size,
        DesiredCapacity=desired_capacity,
...