Spot实例将一直运行,直到因实例中断而将其终止,或者直到用户自行终止该Spot实例。
spot实例终止后,可以使用 AWS CloudTrail 查看 Amazon EC2 是否终止了该实例。如果 CloudTrail 日志包含 BidEvictedEvent
,则表示spot实例被回收。相反,如果看到一个 TerminateInstances
事件,则表示用户主动终止了spot实例。
如果想收到 Amazon EC2 将中断spot实例的通知,可以使用 Amazon EventBridge 来响应 EC2 spot实例中断警告事件 。
在cloudtrail的事件中输入 BidEvictedEvent
。
以下是事件记录的示例。
{
"eventVersion": "1.05",
"userIdentity": {
"accountId": "123456789012",
"invokedBy": "ec2.amazonaws.com"
},
"eventTime": "2016-08-16T22:30:00Z",
"eventSource": "ec2.amazonaws.com",
"userAgent": "ec2.amazonaws.com",
"sourceIPAddress": "ec2.amazonaws.com",
"eventName": "BidEvictedEvent",
"awsRegion": "us-east-2",
"eventID": "d27a6096-807b-4bd0-8c20-a33a83375054",
"eventType": "AwsServiceEvent",
"recipientAccountId": "123456789012",
"RequestParameters": null,
"ResponseElements": null,
"serviceEventDetails": {
"instanceIdSet": [
"i-1eb2ac8eEXAMPLE"
]
}
}
serviceEventDetails有可能包含多个实例id,例如:
{
"instanceIdSet": [
"i-06e6cff8baaEXAMPLE",
"i-07212552ab8EXAMPLE",
"i-07008f10aa5EXAMPLE"
]
}