Я использую AutoscalingGroup со смешанной политикой, где OnDemandBaseCapacity и OnDemandPercentageAboveBaseCapacity равны 0, поэтому он не будет запускать любой экземпляр по требованию, но всегда будет пытаться запрашивать и запускать точечный экземпляр при необходимости. Моя облачная информация Spe c для группы автоматического масштабирования:
AutoScalingGroupForApiServers:
Type: AWS::AutoScaling::AutoScalingGroup
Properties:
VPCZoneIdentifier: !Ref VpcSubnetsForApiLoadBalancer
MinSize: !Ref ASGMinSizeForApiServers
MaxSize: !Ref ASGMaxSizeForApiServers
HealthCheckType: !Ref HealthCheckTypeForApiServers
HealthCheckGracePeriod: !FindInMap [ Constants, '-', AutoScalingGroupDefaultHealthCheckGracePeriod ]
MixedInstancesPolicy:
InstancesDistribution:
OnDemandBaseCapacity: 0
OnDemandPercentageAboveBaseCapacity: 0
SpotAllocationStrategy: lowest-price
SpotInstancePools: 2
LaunchTemplate:
LaunchTemplateSpecification:
LaunchTemplateId: !Ref AutoScalingLaunchTemplateForApiServers
Version: !GetAtt AutoScalingLaunchTemplateForApiServers.LatestVersionNumber
LoadBalancerNames:
- !Ref ElasticLoadBalancerForApiServers
У меня есть два вопроса:
1) Если один точечный экземпляр завершается и другого доступного экземпляра нет, он запустит экземпляр On-Demand и затем уменьшите его до 0?
2) После получения 2-минутного уведомления о прекращении он автоматически выбрасывает экземпляр из ссылочных балансировщиков нагрузки / целевых групп или я вручную обработал его с помощью CloudWatch / SNS / Lambda?