查看spot被回收事件

Spot实例将一直运行,直到因实例中断而将其终止,或者直到用户自行终止该Spot实例。

spot实例终止后,可以使用 AWS CloudTrail 查看 Amazon EC2 是否终止了该实例。如果 CloudTrail 日志包含 BidEvictedEvent,则表示spot实例被回收。相反,如果看到一个 TerminateInstances 事件,则表示用户主动终止了spot实例。

如果想收到 Amazon EC2 将中断spot实例的通知,可以使用 Amazon EventBridge 来响应 EC2 spot实例中断警告事件

在 CloudTrail 中查看 BidEvictedEvent 事件

在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"
  ]
}