请求过期时终止竞价实例

lio*_*rko 3 amazon-web-services boto3

我正在使用 boto3 来部署 Spot 实例。我的请求在一段时间后过期(如我所定义)。当请求到期时,我期望机器将终止。为了创建现场请求,我使用了这个脚本:

client = boto3.client('ec2', region_name=regions[idx][:-1])    
client.request_spot_instances(
                        DryRun=False,
                        SpotPrice=price_bids,
                        InstanceCount=number_of_instances_to_deploy,
                        LaunchSpecification=
                        {
                            'ImageId': amis_id[idx],
                            'KeyName': 'MyKey',
                            'SecurityGroups': ['SG'],
                            'InstanceType': machine_type,
                            'Placement':
                                {
                                    'AvailabilityZone': regions[idx],
                                },
                        },
                        ValidUntil=new_date,
                )
Run Code Online (Sandbox Code Playgroud)

当请求不再有效时,如何终止 Spot 实例?

Mat*_*ser 5

在 Spot 实例请求中,ValidUntil唯一确定请求处于活动状态的时间长度。在该ValidUntil时间之后,请求将过期并且不会被满足。

但是,如果您的请求在请求过期之前得到满足,则启动的 EC2 实例将运行,直到发生以下情况之一:

  • 当前现货价格超过最高现货价格而您被出价,或
  • 您终止 EC2 实例。

如果您希望 EC2 实例在超出出价之前终止,那么您需要自行终止它们。