

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 管理保留的实例
<a name="manage-retained-instances"></a>

 监控和控制已进入保留状态的 Amazon EC2 实例。使用 CloudWatch 指标来跟踪保留的实例，然后在完成自定义操作后手动终止保留的实例。

 保留的实例不计入您的 Amazon EC2 Auto Scaling 组的所需容量。当实例进入保留状态时，Auto Scaling 会启动替换实例以保持所需的容量。例如，假设您的 Auto Scaling 组的所需容量为 10。当实例进入`Terminating:Retained`状态时，Auto Scaling 会启动一个替换实例以保持所需的容量 10。现在，您总共有 11 个正在运行的实例：您的活动组中有 10 个实例，再加上 1 个保留的实例。在您手动终止保留的实例之前，将对所有 11 个实例收取标准 Amazon EC2 费用。

## 保留实例的实例生命周期状态
<a name="instance-lifecyle-states-of-retained-instances"></a>

 了解在使用实例生命周期策略时，实例是如何通过生命周期状态过渡的。实例遵循从正常终止到保留再到最终终止的特定路径。

*触发保留后，实例会进入以下状态：*

1. `Terminating`-正常终止开始

1. `Terminating:Wait`-生命周期挂钩执行

1. `Terminating:Proceed`-生命周期操作总结（无论成功还是失败）

1. `Terminating:Retained`-挂钩失败，实例保留以供手动干预

根据场景，温池实例采用不同的生命周期状态路径：

*向温池缩减的实例：*

1. `Warmed:Pending`-正常的温池过渡开始

1. `Warmed:Pending:Wait`-生命周期挂钩执行

1. `Warmed:Pending:Proceed`-生命周期操作总结（无论成功还是失败）

1. `Warmed:Pending:Retained`-挂钩失败，实例保留以供手动干预

*正在从温池中终止的实例：*

1. `Warmed:Terminating`-正常终止开始

1. `Warmed:Terminating:Wait`-生命周期挂钩执行

1. `Warmed:Terminating:Proceed`-生命周期操作总结（无论成功还是失败）

1. `Warmed:Terminating:Retained`-挂钩失败，实例保留以供手动干预

## 监控保留的实例
<a name="monitor-retained-instances"></a>

 由于保留的 Amazon EC2 实例会产生成本并需要手动干预，因此必须对其进行监控。Amazon EC2 Auto Scaling 提供了多种 CloudWatch 指标来跟踪保留的实例。

启用群组指标以跟踪保留的实例：

```
aws autoscaling enable-metrics-collection \
--auto-scaling-group-name {{my-asg}} \
--metrics {{GroupTerminatingRetainedInstances}}
```

可用指标有：
+  `GroupTerminatingRetainedInstances`显示处于该`Terminating:Retained`状态的实例数量。
+  `GroupTerminatingRetainedCapacity`显示`Terminating:Retained`状态下的实例所代表的容量单位。
+  `WarmPoolTerminatingRetainedCapacity`跟踪从温池中终止的保留实例。
+  `WarmPoolPendingRetainedCapacity`跟踪返回到温池的保留实例。

 您还可以查看您的 Amazon EC2 Auto Scaling 组的扩展活动，以了解保留实例的原因。查找带有`StatusCode: Cancelled`指示生命周期挂钩失败的状态原因消息的终止活动：

```
aws autoscaling describe-scaling-activities \
--auto-scaling-group-name {{my-asg}}
```

 我们建议根据这些指标创建 CloudWatch 警报，以便在实例进入保留状态时提醒您。这可以帮助您跟踪成本影响，并确保您不会忘记清理需要手动干预的实例。

## 终止保留的实例
<a name="terminate-retained-instances"></a>

完成自定义操作后，通过调用 [ TerminateInstanceInAutoScalingGroup](https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_TerminateInstanceInAutoScalingGroup.html)API 终止您保留的实例：

```
aws autoscaling terminate-instance-in-auto-scaling-group \
--instance-id {{i-1234567890abcdef0}} \
--no-should-decrement-desired-capacity
```