

# Amazon ECS 托管实例修补
<a name="managed-instances-patching"></a>

在 Amazon ECS 托管实例中，修补是一个关键的维护过程，Amazon 会自动管理和更新托管容器实例上的软件，以确保安全性和合规性，同时通过受控的可配置流程保持工作负载可用性。

## 实例生命周期
<a name="managed-instances-lifecycle"></a>

默认情况下，Amazon ECS 托管容器实例在标准化的 14-21 天生命周期内运行。Amazon ECS 在实例启动后的第 14 天发起正常工作负载耗尽，最终终止不迟于第 21 天。在特定情况下，Amazon ECS 支持提前耗尽：
+ 检测软件上的安全漏洞
+ 硬件运行状况恶化
+ 为了遵循客户配置的事件窗口

这种方法既能保持系统合规性，又能遵循客户定义的维护要求。

## 事件窗口和维护计划
<a name="managed-instances-event-windows"></a>

Amazon 通过自动后台进程来管理托管容器实例的生命周期，这些进程会监控节点的创建时间戳和维护计划。实例启动后，Amazon 会设置默认 14 天耗尽计划，并评估任何客户配置的事件窗口。

您可以通过配置事件窗口来安排 Amazon ECS 托管实例的维护活动。您可以使用实例 ID 或实例标签将一个或多个 Amazon ECS 托管实例与事件窗口关联起来。当事件窗口标记有特定值时，Amazon ECS 会将这些标签映射到相应集群的相应 Amazon ECS 托管实例，并尽最大努力在定义的时间段内安排实例维护。

有关事件窗口的更多信息，请参阅《Amazon EC2 用户指南》**中的[为会影响 Amazon EC2 实例的计划事件创建自定义事件窗口](https://docs.amazonaws.cn/AWSEC2/latest/UserGuide/event-windows.html)。

如果存在事件窗口，则 Amazon 会调整耗尽计划，使其与这些窗口保持一致，这可能会导致耗尽时间早于默认 14 天时间段，以遵循指定的事件窗口。事件窗口修改仅影响新启动的托管容器实例，从而确保可预测的维护计划。

在计划的耗尽时间之前，Amazon ECS 会根据客户的配置继续对托管容器实例进行正常任务放置操作。

## 维护序列
<a name="managed-instances-maintenance-sequence"></a>

在指定的维护时间，Amazon ECS 通过调用 `UpdateContainerInstancesState` API 来开始维护序列，从而发起正常工作负载耗尽。在正常终止期间，Amazon ECS 会尝试停止标记为耗尽的实例上的工作负载。

Amazon ECS 对服务任务采用先启动后停止策略（或根据 Amazon ECS 服务配置），确保在停止现有任务之前启动替换任务，从而最大限度地减少服务中断。在整个过程中，Amazon ECS 服务会遵循所有服务部署配置，同时继续耗尽尝试次数，直到实例启动后的第 21 天。

如果到第 21 天仍未完成耗尽，Amazon ECS 将执行 `DeregisterContainerInstance` API 来停止托管容器实例及其剩余工作负载，以保持合规性，并使用最新软件对托管实例进行修补。