订阅云计算RSS CSDN首页> 云计算

使用AWS管理跨多个环境的资源

发表于2015-02-11 15:26| 次阅读| 来源AWS Activate| 0 条评论| 作者AWS Activate

摘要:借助Amazon Web Services(AWS),你不仅可以建立多个环境,而且还可以跟踪、管理和控制这些环境间资源的访问方式。一起来看看哪些功能能够满足你的研发需求。

为了开发出优秀的应用程序,初创企业通常需要多个研发环境,如产品环境、开发环境、QA环境和登台(staging)环境。但是,对多个环境中的资源进行跟踪和管理是一个挑战,特别是在业务随着时间增长的情况下。

例如,随着企业研发人员数量的增加,所耗费企业资源的速度可能比你预期的要快得多。你就会发现自己需要更加清晰地认识到资源与不同环境的匹配问题。

有多少实例(AWS中的虚拟机被称为实例)属于QA部门?谁有权开启或是关闭产品部门的实例?开发环境的成本有多少?作为一家初创企业,这些问题是都需要面对和解决的。

借助Amazon Web Services(AWS),你不仅可以建立多个环境,而且还可以跟踪、管理和控制这些环境间资源的访问方式。一起来看看哪些功能能够满足你的研发需求。

标签

你可以使用标签来标识跨、跟踪和管理跨环境的AWS资源,甚至是跨AWS账号的。一个标签是由一个键和一个值组成的label,你可以对大多数AWS资源进行标记,同时对于每个资源可以添加多达10个标签。

由于使用标签会带来很大的好处,所以你要尽可能标记能够标记的每个资源。例如,你可以对下列任务使用标签。

  • 查找资源、组织资源;
  • 资源的访问控制;
  • 查看详细计费报告。

此外,对资源进行标记会让你更好地利用下列AWS的功能特性。

资源组

资源组是AWS管理控制台的一个很酷的新功能特性。它允许你创建、查看和维护带有带有相同标签的资源集。你还可以创建属于自己的视图,这些视图可以带有不同的环境标签。你可以查看带有同一标签的资源,如Environment=Prod,在支持标签的所有服务中都是如此。你也可以查看所有共享多个标签的资源,如下面的屏幕截图所示。


将标签用于身份识别和访问管理

你想为一组标记是Prod的特定用户锁定服务和资源吗?你可以将标签与AWS的身份识别和访问管理(AWS IAM)结合使用,来对用户或组的访问进行控制。例如,你可以控制哪些IAM用户或组可以对特定的EC2实例做开始、停止、重启和终止的操作。通过这种方式,你可以让开发人员只能够对标记为Enviroment=Dev的实例进行访问控制。

查看支持IAM资源标签的完整服务列表,点击 IAM支持的AWS服务

将标签用于计费报告

你想知道一个特定的环境成本是多少吗?你可以使用成本分配标签来对AWS的成本进行分类和跟踪。当你对AWS资源(比如Amazon的EC2实例、S3 bucket)使用标签时,AWS会生成一个内容用逗号分隔开的成本分配报告(CSV文件),使用情况和成本按照标签被聚合在一起。你可以使用代表业务类别的标签用来跨多个服务来组织你所耗费的成本。

成本分配报告包括你使用AWS服务在每个结算期的全部成本。该报告包括标记和未标记的资源,所以你可以清晰地组织这些资源所产生的费用。例如,如果你将某个应用程序名作为资源的标记,那么你就可以跟踪单个应用程序在这些资源上运行的总成本。

维护标签

现在我们知道了对资源使用标签的好处,那么我们如何确保一切都能够被标记?如何确保一切已经被标记了呢?要做到这一点,你可以使用AWS管理控制台中的一些有关标记的功能属性。例如,向实例添加批量标签。下面的屏幕截图就展示了这种类型的标签管理。


然而,当新的资源被加进来的时候,你确实需要登录到控制台去手动更新这些资源。随着时间的推移,这种做法就会显得笨拙。以下是一些标记资源的其他方法。

创建自己的启动脚本

为团队提供一份或一组脚本来创建他们所需的那些环境,这样做是确保资源被正确标记的好办法。这还使团队成员的工作变得更轻松。他们会很快得到自己想要的环境,瞬间就被创建起来了。

因为每个AWS服务都有一个API,因此有很多方法去构建用来创建资源的脚本。你可以使用 AWS命令行接口(AWS CLI) 创建一份脚本,还可以选择平台中你需要的SDK创建脚本。诸如此类的做法非常简单。关于SDK的更多信息,请参见 开始使用AWS进行开发

还可以从GitHub这样的网站上找到无数的可用脚本,你可以拿过来直接用。

使用CloudFormation模版

像脚本一样,模版也可以为你的团队提供一个简单、可复用的创建AWS资源的方式。你可以创建一个模版,描述你想要的所有AWS资源(如Amazon EC2实例、RDS DB实例),AWS ColudFormation将会为你提供和配置这些资源。

几乎每一个支持标签的资源在CloudFormation模版中也支持标签。你可以针对不同环境创建模版,还可以使用条件语句为多个环境使用一个单独的模版。

使用自动伸缩服务

自动伸缩服务(Auto Scaling Service)提供了若干很给力的功能。当应用程序需求的增加时,你可以对EC2实例做横向扩展(scale out)。不用的实例,也就自动关闭了,反映迟钝的实例也会被替换掉。

你也可以对自动伸缩的实例使用标签。已经启动的实例作为自动伸缩功能的一部分在启动后被自动标识,免得你要创建一种机制来做到这一点。

使用配置管理

许多常见的配置管理工具都支持在创建资源的时候对其进行标记。如Chef、Puppet、SaltStack和Ansible。这些配置工具通常还为多个环境提供有条件的分离。如果你正在使用这些工具中的某一个,那么可以很容易地实现对已创建资源进行标记的方法。

发现未加标签的资源

你可能会时不时地想要审核自己的账户来识别未加标签的资源,或者去验证资源被正确地标记。看看下面设置审计资源的选项。

使用AWS管理控制台

AWS管理控制台提供了一种查看资源的简便方法,这些资源全部基于标签,尤其是EC2实例。你可以为大多数资源视图使用标签来创建列。这样就使你可以发现标记不正确或者根本没有进行标记的资源。如下面截图所示。


创建自己的脚本

如前所述,AWS提供了访问服务的API。你可以使用相同的API查询服务资源的列表。你还可以使用这些列表找到没有标记或被错误标记的资源。

总结

你可以使用标签跨多个环境跟踪和管理那些资源,对这些资源做控制访问。在AWS中你有多种方式去实现标签。例如,你可以使用AWS管理控制台、CloudFormation模版,或者自定义脚本。无论你选择哪种方法,你都会发现标签是管理资源的重要方法。

原文链接:

https://medium.com/aws-activate-startup-blog/managing-resources-across-multiple-environments-in-aws-7e139351f9c7



如您需要了解AWS最新资讯或是技术文档可访问 AWS中文技术社区 ;如您有更多的疑问请在 AWS技术论坛 提出,稍后会有专家进行答疑。


订阅“AWS中文技术社区”微信公众号,实时掌握AWS技术及产品消息!

AWS中文技术社区为广大开发者提供了一个Amazon Web Service技术交流平台,推送AWS最新资讯、技术视频、技术文档、精彩技术博文等相关精彩内容,更有AWS社区专家与您直接沟通交流!快加入AWS中文技术社区,更快更好的了解AWS云计算技术。


                                                                                                          ( 翻译/白云鹏  责编/王玉平 )