

# COST 4. 如何停用资源？
<a name="cost-04"></a>

在从项目开始到结束的过程中实施变更控制和资源管理。这可以确保您关闭或终止未使用的资源，以便减少浪费。

**Topics**
+ [COST04-BP01 在资源生命周期内跟踪资源](cost_decomissioning_resources_track.md)
+ [COST04-BP02 实施停用流程](cost_decomissioning_resources_implement_process.md)
+ [COST04-BP03 停用资源](cost_decomissioning_resources_decommission.md)
+ [COST04-BP04 自动停用资源](cost_decomissioning_resources_decomm_automated.md)
+ [COST04-BP05 执行数据留存策略](cost_decomissioning_resources_data_retention.md)

# COST04-BP01 在资源生命周期内跟踪资源
<a name="cost_decomissioning_resources_track"></a>

 制定和实施一种方法，在资源生命周期内跟踪资源及其与系统的关联。您可以使用标签来标识资源的工作负载或功能。

 **在未建立这种最佳实践的情况下暴露的风险等级：**高 

## 实施指导
<a name="implementation-guidance"></a>

停用不再需要的工作负载资源。一个常见的示例是用于测试的资源：在测试完成后，可以将资源删除。使用标签跟踪资源（并对这些标签运行报告），可以帮助您识别要停用的资产，因为将不会使用这些资产，或者这些资产的许可证将过期。使用标签是跟踪资源的一种有效方法，它通过标记资源的功能或资源的已知可停用日期来跟踪资源。然后，可以对这些标签运行报告。功能标签的示例值是 `feature-X testing`，用于根据工作负载生命周期标识资源的用途。另一个例子是对资源使用 `LifeSpan` 或 `TTL`，例如待删除的标签键名称和值，用于定义停用的时间段或具体时间。

**实施步骤**
+ **实施标记方案：**实施标记方案，标识资源所属的工作负载，从而确保相应地标记工作负载中的所有资源。标签可以帮助您按用途、团队、环境或与业务相关的其他条件对资源进行分类。有关标签应用场景、策略和技术的更多详细信息，请参阅 [AWS Tagging Best Practices](https://docs.aws.amazon.com/whitepapers/latest/tagging-best-practices/tagging-best-practices.html)。
+ **实施工作负载吞吐量或输出监控：**实施工作负载吞吐量监控或警报，在输入请求或输出完成时启动。将其配置为在工作负载请求或输出下降到零时发出通知，指示不再使用工作负载资源。如果在正常情况下，工作负载周期性地下降到零，则加入时间因素。有关未使用或未充分利用的资源的更多详细信息，请参阅 [AWS Trusted Advisor Cost Optimization checks](https://docs.aws.amazon.com/awssupport/latest/user/cost-optimization-checks.html)。
+  **为 AWS 资源分组：**为 AWS 资源创建组。可以使用 [AWS Resource Groups](https://docs.aws.amazon.com/ARG/latest/userguide/resource-groups.html) 来整理和管理同一个 AWS 区域 中的 AWS 资源。可以将标签添加到大多数资源中，帮助标识资源并对组织内的资源进行排序。使用[标签编辑器](https://docs.aws.amazon.com/ARG/latest/userguide/tag-editor.html)向支持的资源批量添加标签。考虑使用 [AWS Service Catalog](https://docs.aws.amazon.com/servicecatalog/index.html) 创建、管理和向最终用户分发已批准的产品组合，并管理产品生命周期。

## 资源
<a name="resources"></a>

 **相关文档：**
+  [AWS Auto Scaling](https://aws.amazon.com/autoscaling/) 
+  [AWS Trusted Advisor](https://aws.amazon.com/premiumsupport/trustedadvisor/) 
+  [AWS Trusted Advisor Cost Optimization Checks](https://docs.aws.amazon.com/awssupport/latest/user/cost-optimization-checks.html) 
+  [为AWS资源添加标签](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) 
+  [发布自定义指标](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/publishingMetrics.html) 

 **相关视频：**
+  [How to optimize costs using AWS Trusted Advisor](https://youtu.be/zcQPufNFhgg) 

 **相关示例：**
+  [组织 AWS 资源](https://aws.amazon.com/premiumsupport/knowledge-center/resource-groups/) 
+  [使用 AWS Trusted Advisor 优化成本](https://aws.amazon.com/premiumsupport/knowledge-center/trusted-advisor-cost-optimization/) 

# COST04-BP02 实施停用流程
<a name="cost_decomissioning_resources_implement_process"></a>

 实施一个流程来确定和停用未使用的资源。

 **在未建立这种最佳实践的情况下暴露的风险等级：**高 

## 实施指导
<a name="implementation-guidance"></a>

在整个组织中实施标准化流程，以确定和删除未使用的资源。该流程应该定义执行搜索的频率以及删除资源的流程，以确认满足所有组织要求。

**实施步骤**
+  **创建并实施停用流程：**与工作负载开发人员和负责人合作，为工作负载及其资源构建停用流程。该流程应涵盖一种方法，验证工作负载是否正在使用以及每个工作负载资源是否正在使用。详细说明停用资源所需的步骤，将资源从服务中删除，同时确保符合所有法规要求。应包含任何关联的资源，例如许可证或附加的存储。向工作负载负责人发送已开启停用流程的通知。

   使用以下停用步骤来指导您确定在流程中应检查的内容：
  +  **确定要停用的资源：**确定 AWS 云 中符合停用条件的资源。记录所有必要的信息并安排停用。在您的时间表中，请务必考虑在此过程中是否（以及何时）会出现意外问题。
  +  **协调和沟通：**与工作负载负责人合作确认要停用的资源 
  +  **记录元数据并创建备份：**如果生产环境中的资源需要或它们是关键资源，请记录元数据（例如公有 IP、区域、可用区、VPC、子网和安全组），并创建备份（例如 Amazon Elastic Block Store 快照或取得 AMI、密钥导出和证书导出）。
  +  **验证基础设施即代码：**确定资源是使用 CloudFormation、Terraform、AWS Cloud Development Kit (AWS CDK) 还是任何其他基础设施即代码部署工具部署的，以便在必要时可以重新部署它们。
  +  **阻止访问：**在一段时间内应用限制性控制，以防止在确定是否需要资源时使用资源。验证资源环境是否可以在需要时恢复到其原始状态。
  +  **遵循内部停用流程：**遵循组织的管理任务和停用流程，例如从组织域中删除资源、删除 DNS 记录以及从配置管理工具、监控工具、自动化工具和安全工具中删除资源。

   如果资源是 Amazon EC2 实例，请参阅以下列表。[有关更多详细信息，请参阅《如何删除或终止我的 Amazon EC2 资源？》](https://aws.amazon.com/premiumsupport/knowledge-center/delete-terminate-ec2/) 
  +  停止或终止您的所有 Amazon EC2 实例和负载均衡器。Amazon EC2 实例终止后可短时间内在控制台中看到。您不需要为任何未处于运行状态的实例付费 
  +  删除 Auto Scaling 基础设施。
  +  释放所有专属主机。
  +  删除所有 Amazon EBS 卷和 Amazon EBS 快照。
  +  释放所有弹性 IP 地址。
  +  取消注册所有亚马逊机器映像（AMI）。
  +  终止所有 AWS Elastic Beanstalk 环境。

   如果资源是 Amazon Glacier 存储中的对象，并且您在满足最短存储持续时间之前删除了归档，则将按比例收取提前删除费用。Amazon Glacier 的最短存储持续时间取决于所使用的存储类别。有关每种存储类的最短存储持续时间摘要，请参阅[跨 S3 存储类的性能](https://aws.amazon.com/s3/storage-classes/?nc=sn&loc=3#Performance_across_the_S3_Storage_Classes)。有关如何计算提前删除费用的详细信息，请参阅 [Amazon S3 定价](https://aws.amazon.com/s3/pricing/)。

 下面的简单停用过程流程图概述了停用步骤。在停用资源之前，请确认组织未使用已确定要停用的资源。

![\[流程图描述了资源停用的步骤。\]](http://docs.aws.amazon.com/zh_cn/wellarchitected/latest/framework/images/decommissioning-process-flowchart.png)


## 资源
<a name="resources"></a>

 **相关文档：**
+  [AWS Auto Scaling](https://aws.amazon.com/autoscaling/) 
+  [AWS Trusted Advisor](https://aws.amazon.com/premiumsupport/trustedadvisor/) 
+  [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html) 

 **相关视频：**
+  [删除 CloudFormation 堆栈，但保留某些资源](https://www.youtube.com/watch?v=bVmsS8rjuwk) 
+  [Find out which user launched Amazon EC2 instance](https://www.youtube.com/watch?v=SlyAHc5Mv2A) 

 **相关示例：**
+  [删除或终止 Amazon EC2 资源](https://aws.amazon.com/premiumsupport/knowledge-center/delete-terminate-ec2/) 
+  [了解哪个用户启动了 Amazon EC2 实例](https://aws.amazon.com/premiumsupport/knowledge-center/ec2-user-launched-instance/) 

# COST04-BP03 停用资源
<a name="cost_decomissioning_resources_decommission"></a>

 停用由定期审核或使用情况发生变化等事件启动的资源。停用通常定期执行，可以手动停用，也可以自动停用。

 **在未建立这种最佳实践的情况下暴露的风险等级：**中 

## 实施指导
<a name="implementation-guidance"></a>

搜索未使用资源的频率和工作量应反映潜在的节省额，因此，与成本较高的账户相比，对成本较低的账户进行分析的频率应该更低。搜索和停用事件可由工作负载中的状态更改启动，比如产品生命周期结束或产品被更换。搜索和停用事件也可由外部事件启动，如市场条件发生变化或产品终止。

**实施步骤**
+  **停用资源：**这是不再需要的 AWS 资源的折旧阶段或许可协议的终止。在进入处置阶段并停用资源之前完成所有最终检查，以防止任何意外中断，例如拍摄快照或备份。使用停用流程，停用每项被确定为未使用的资源。

## 资源
<a name="resources"></a>

 **相关文档：**
+  [AWS Auto Scaling](https://aws.amazon.com/autoscaling/) 
+  [AWS Trusted Advisor](https://aws.amazon.com/premiumsupport/trustedadvisor/) 

# COST04-BP04 自动停用资源
<a name="cost_decomissioning_resources_decomm_automated"></a>

 设计您的工作负载，使其在您确定并停用非关键资源、不需要的资源或使用率低的资源时妥善处理资源的终止。

 **在未建立这种最佳实践的情况下暴露的风险等级：**低 

## 实施指导
<a name="implementation-guidance"></a>

使用自动化技术可以减少或消除停用流程中的相关成本。将工作负载设计为执行自动化停用，将减少工作负载在其整个生命周期内的总成本。您可以使用 [Amazon EC2 Auto Scaling](https://aws.amazon.com/ec2/autoscaling/) 或 [Application Auto Scaling](https://docs.aws.amazon.com/autoscaling/application/userguide) 来执行停用流程。还可以使用 [API 或 SDK](https://aws.amazon.com/developer/tools/) 来实施自定义代码，以自动停用工作负载资源。

 [现代应用程序](https://aws.amazon.com/modern-apps/)是以“无服务器为先”理念构建的，这种策略优先考虑采用无服务器服务。AWS 为堆栈的所有三个层开发了[无服务器服务](https://aws.amazon.com/serverless/)：计算、集成和数据存储。使用无服务器架构将允许您在低流量期间通过自动纵向扩展和缩减来节省成本。

**实施步骤**
+ **实施 Amazon EC2 Auto Scaling 或 Application Auto Scaling：**对于支持的资源，请使用 Amazon EC2 Auto Scaling 或 Application Auto Scaling 来配置它们。这些服务可以帮助您在使用 AWS 服务时优化使用率和成本效率。当需求下降时，这些服务将自动删除任何多余的资源容量，以避免超支。
+ **将 CloudWatch 配置为终止实例：**可以将实例配置为使用 [CloudWatch 警报](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/UsingAlarmActions.html#AddingTerminateActions)终止。使用停用流程的指标，实施包含 Amazon Elastic Compute Cloud 操作的警报。在推出之前，在非生产环境中验证操作。
+  **在工作负载中实现代码：**可以使用 AWS SDK 或 AWS CLI 停用工作负载资源。在与 AWS 集成的应用程序中实现代码，并终止或删除不再使用的资源。
+  **使用无服务器服务：**优先在 AWS 上构建[无服务器架构](https://aws.amazon.com/serverless/)和[事件驱动型架构](https://aws.amazon.com/event-driven-architecture/)，以构建和运行应用程序。AWS 提供多种无服务器技术服务，这些服务本质上可以自动优化资源利用率且具有自动停用功能（横向缩减和横向扩展）。通过无服务器应用程序，可自动优化资源利用率，您无需为过度预置付费。

## 资源
<a name="resources"></a>

 **相关文档：**
+  [Amazon EC2 Auto Scaling](https://aws.amazon.com/ec2/autoscaling/) 
+  [Getting Started with Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/GettingStartedTutorial.html) 
+  [Application Auto Scaling](https://docs.aws.amazon.com/autoscaling/application/userguide) 
+  [AWS Trusted Advisor](https://aws.amazon.com/premiumsupport/trustedadvisor/) 
+  [AWS 无服务器](https://aws.amazon.com/serverless/) 
+  [创建警报以停止、终止、重启或恢复实例](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/UsingAlarmActions.html) 
+  [在 Amazon CloudWatch 警报中添加终止操作](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/UsingAlarmActions.html#AddingTerminateActions) 

 **相关示例：**
+  [Scheduling automatic deletion of AWS CloudFormation stacks](https://aws.amazon.com/blogs/infrastructure-and-automation/scheduling-automatic-deletion-of-aws-cloudformation-stacks/) 

# COST04-BP05 执行数据留存策略
<a name="cost_decomissioning_resources_data_retention"></a>

 在支持的资源上定义数据留存策略，以根据组织要求处理对象的删除事宜。确定并删除非必要的或不再需要的孤立资源和对象。

 **在未建立这种最佳实践的情况下暴露的风险等级：**中 

 使用数据留存策略和生命周期策略，降低停用过程的相关成本以及已确定资源的存储成本。定义数据留存策略和生命周期策略来执行自动存储类迁移和删除，将会降低其生命周期内的总体存储成本。可以使用 Amazon Data Lifecycle Manager 来自动创建和删除 Amazon Elastic Block Store 快照及基于 Amazon EBS 的亚马逊机器映像（AMI），并使用 Amazon S3 Intelligent-Tiering 或 Amazon S3 生命周期配置来管理 Amazon S3 对象的生命周期。还可以使用 [API 或 SDK](https://aws.amazon.com/tools/) 实现自定义代码，为要自动删除的对象创建生命周期策略和策略规则。

 **实施步骤** 
+  **使用 Amazon Data Lifecycle Manager：**使用 Amazon Data Lifecycle Manager 上的生命周期策略，自动删除 Amazon EBS 快照和 Amazon EBS-backed AMI。
+  **在存储桶上设置生命周期配置：**根据业务要求，使用存储桶上的 Amazon S3 生命周期配置，定义 Amazon S3 在对象生命周期中要采取的操作以及对象生命周期结束时的删除操作。

## 资源
<a name="resources"></a>

 **相关文档：**
+  [AWS Trusted Advisor](https://aws.amazon.com/premiumsupport/trustedadvisor/) 
+  [Amazon Data Lifecycle Manager](https://docs.aws.amazon.com/dlm/?icmpid=docs_homepage_mgmtgov) 
+  [如何在 Amazon S3 存储桶上设置生命周期配置](https://docs.aws.amazon.com/AmazonS3/latest/userguide/how-to-set-lifecycle-configuration-intro.html) 

 **相关视频：**
+  [Automate Amazon EBS Snapshots with Amazon Data Lifecycle Manager](https://www.youtube.com/watch?v=RJpEjnVSdi4) 
+  [使用生命周期配置规则清空 Amazon S3 存储桶](https://www.youtube.com/watch?v=JfK9vamen9I) 

 **相关示例：**
+  [使用生命周期配置规则清空 Amazon S3 存储桶](https://aws.amazon.com/premiumsupport/knowledge-center/s3-empty-bucket-lifecycle-rule/) 