AWS标记最佳实践

2020-08-13 05:02:03

如果您已经在Amazon Web Services工作了很长时间,那么您可能已经看到或使用过AWS成本分配标签来组织您团队的资源。AWS允许您以称为标记的键-值对的形式将元数据附加到大多数资源。在本指南(由三部分组成的系列中的第一部分)中,我们将介绍一些最常见的AWS成本分配标签使用案例,并了解一些用于选择和组织您的标签的最佳AWS标签最佳实践。最后,我们将探索一些真实公司使用的AWS资源标记策略示例,以提高对其在Amazon Web服务中的资源利用情况的可见性。

AWS成本分配标签可帮助您了解和控制您的AWS成本。AWS Cost Explorer允许您使用标签来细分随时间推移的AWS资源使用情况,而CloudForecast等工具可让您主动了解您的支出情况。

了解并控制成本并不是您应该标记AWS资源的唯一原因。您可以使用AWS成本分配标签回答各种问题,包括:

我们有多少台服务器已使用最新版本的操作系统进行了更新?

在您开始向您的所有AWS资源添加AWS成本分配标签之前,创建一个策略来帮助您可持续地管理您的标签非常重要。AWS标签可能会有所帮助,但如果没有始终如一的应用计划,它们可能会成为不可持续的烂摊子。

虽然不存在适用于每个组织的完美AWS标记策略,但您应该熟悉一些AWS标记最佳实践。

AWS列举了四类成本分配标签:技术、业务、安全和自动化。请考虑您在创建AWS标记策略时需要以下哪些类别:

技术标签可帮助工程师识别和使用资源。这些可能包括应用程序或服务名称、环境或版本号。

业务标签允许风险承担者分析成本以及负责每种资源的团队或业务单位。例如,您可能想知道AWS支出中用于去年发布的新产品的百分比,以便您可以确定该工作的投资回报。

安全标签可确保整个组织符合合规性和安全标准。这些标签可用于限制访问或表示符合HIPAA或SOC的特定数据安全要求。

自动化标记可用于自动清除、关闭或使用帐户中每个资源的使用规则。例如,您可以标记沙箱服务器,然后运行脚本在它们不再使用后将其删除。

在您决定需要哪些AWS标签以及如何使用它们时,请设置有关其用法的规则。决定哪些AWS标记将是必填的,应使用什么字符作为分隔符,以及谁将负责创建这些标记。如果您已经拥有许多资源,则可能需要将标记分配委派给使用它们的团队。

为您的AWS标签键和值选择一致且可扩展的AWS标签命名约定可能很复杂。关于您可以使用的字符以及AWS标记键和AWS标记值的长度,有不同的AWS标记命名约定规则。在选择AWS标签命名约定之前,请务必阅读这些标签限制。

一种常见的AWS标签命名约定模式是在单词和冒号之间使用小写字母和连字符来命名空间。例如,您可以使用如下内容:

其中,mifflin是您公司的名称,eng指定此标记与工程团队相关,os-version表示标记的用途,1.0是值。

您应该使用的标签数量有技术和实际限制。首先,AWS对每个资源实施50个标签的限制。更重要的是,如果您需要太多标签,工程师将很难跟踪和记住如何正确使用标签。

幸运的是,许多标签可以通过依赖AWS的内置资源元数据来避免。例如,您不必存储EC2实例的创建者,因为Amazon默认添加了createdBy标记。确定您需要哪些标记,并尝试限制创建新标记。

随着您账户中AWS资源数量的增加,跟踪您的AWS标签、执行约定和更新标签将变得越来越困难。在本指南的第2部分和第3部分中,我们将介绍如何使用Terraform、CloudFortification、Cloud Custodian来管理资源中的标签。

Amazon还提供按资源组进行标记的标记策略和资源标记API,以帮助您批量管理和分配标记。从长远来看,尽可能多地自动化标签管理过程将产生更高质量、更易维护的标签。

毫无疑问,您需要定期重新查看您的AWS标签,以确保它们仍然有用和准确。根据您部署的资源数量,这可能意味着每季度设置一个提醒来审核您的标记,或者可能意味着创建一个委员会来每月检查和更新标记。在本指南的第3部分中,我们将介绍一些用于管理标记的工具和策略。

Amazon Web Services提供了他们推荐的资源标记实践的综合文档。如果您是AWS标签新手,并且想要更深入地了解其中一些AWS标签最佳实践,请务必阅读本文。

让我们看看一些现实世界中的标记策略。这些内容改编自出于各种原因使用AWS标签组织资源的真实公司。虽然它们可能与您的使用案例不同,但它们会让您深入了解如何在AWS中标记您的资源。

标记资源的一种普遍模式是按服务和环境。例如,如果组织有两个服务(购物车和搜索)和两个环境(生产和开发),它们可能会设置以下标记:

如果这两个服务共享单个RDS实例,则可以将数据库标记为service=cart|search(以指示此资源同时服务于这两个服务),体系结构可能如下所示:

如果您选择类似于上面的AWS标签策略,您必须考虑标签将如何随时间变化。例如,如果添加共享相同RDS实例的新服务,则必须更新数据库的标记以包括新服务的名称。出于这个原因,一些团队选择使用单个标记来指示资源可以由所有服务使用(例如:service=common)。

如果您想了解哪些服务对您的AWS成本贡献最大,这样的基于服务的标记策略通常是一个很好的起点。业务团队可以使用这些标签来查看他们为每项服务或环境支付了多少费用,并在有问题时联系适当的联系人。

AWS成本分配标签还可以帮助组织管理治理或合规性。如果您以特定方式标记资源,CloudForecast等工具(通过其AWS标记合规性功能)可以帮助您维护标记合规性。这些AWS标签可用于限制对特定资源的访问或运行额外的安全检查。

在本例中,该公司用user-data=true标记包含用户数据的资源,以便他们可以更频繁地审计这些资源,并确保它们符合特定标准。所有资源都有联系人和环境标签,以指定负责的团队成员,并确保有人负责使他们保持最新。

使用合规性标记策略并不妨碍您同时使用其他策略。AWS标签的优势之一是,它们允许您以几乎无限的方式对您的AWS资源进行细分。

我们将查看的最后一个示例是帐户细分标记策略。虽然AWS的IAM权限允许您将访问权限精细地分配给用户、角色和团队,但有些组织可能需要更进一步。

“当跨异构逻辑环境的资源放在同一位置时,如果您在调配资源和设计网络/IAM策略时不特别小心,就很容易意外使用来自另一个环境的资源”-Cars.com的平台工程师。

在此示例中,组织为每个资源指定了业务单位和团队标签,每个环境都有单独的AWS帐户。

这允许他们在每个环境中生成报告,以查看他们的营销(Mktg)单元与数据仓库(数据)单元的资源成本是多少。如果团队使用这种帐户分段标记方法,他们将需要使用主帐户来查看整个组织的资源使用情况。您还可以使用CloudForecast生成多个AWS账户的定期成本报告和明细数据。

任何大规模使用AWS的组织都需要制定适合他们的标记策略。请考虑上面的AWS标记最佳实践和示例,以及您组织的目标。

一旦您决定了AWS标记策略,您将需要一个添加和维护AWS成本分配标记的计划。在本指南的下一部分中,我们将介绍您可以采用的工具,以确保您的工程团队在所有AWS资源中一致使用AWS标签。