AWS 配置附件实现AWS标签创建的自动化

AWS配置规则是AWS配置系统的一个附件,它是不断发展的亚马逊开发运营工具集中的一个组成部分。当它在re:Invent 2015会议上被首次推出时,AWS的副总裁Andy Jassy指出,与会者对于一个检查AWS标签的系统会感到非常兴奋。但是,这是与开发运营相关:实现琐碎工作自动化往往就是造成成功与失败的差异。

当首次推出时,AWS配置规则的制定主要是从实现安全限制自动化的角度出发,以防止意外对资源的意外和不必要的访问。这正是使用AWS配置规则的一个很好的理由,但是一个更为重要的原因可能是为了通过实现AWS标签创建的自动化以节省成本。

很多开发公司每天都会创建大量的亚马逊Web服务(AWS)资源,例如弹性计算云实例、资源卷、负载平衡器以及虚拟专用网等。如果一家企业在云中遗忘留下了数十个运行的服务,那么其费用(即便是非常廉价的资源)累加起来亦是相当可观的。因此,记得在每天结束时终止或释放所有不需要的资源是非常重要的。

目前,还没有一套规则来命名或标记这些资源,所以事后区别一个被遗忘的测试实例和一个很少见到负载的VPN服务器是非常困难的。我们可以通过要求所有资源的所有者通过AWS标签来解决僵尸资源问题。

 AWS配置规则实施到位

为了了解规则,你首先必须对AWS配置服务本身应有一定的了解。AWS配置主要完成四项任务:将变更记录至资源、实现众多资源描述的标准化、存储结果以及把结果发送至亚马逊简单存储服务以供之后分析使用。它还会发送消息至亚马逊简单通知服务(SNS),从而让你能够接收到配置变更通知的近实时数据。

AWS配置规则是一个坚定SNS的系统,它会针对每一个消息运行AWS Lambda函数。每一个消息都包含着一个配置项,这是一个在某个时间点上对资源状态的说明。这个说明涵盖了元数据、常用属性、与其他资源的关系、当前配置(作为一个描述API被返回)以及一个CloudTrail事件标识符。

AWS配置界面提供了一个时间轴视图,它可显示配置变化,例如某一给定自由的配置项。配置字段显示具体有哪些变更;一个CloudTrail事件的链接可为你提供用户ID和发生变更的位置。

AWS提供了一组预定义规则,并建立了一个合作伙伴系统。开发人员可以使用由其他AWS合作伙伴定义的规则或者他们也可以编写自定义规则。这些规则就是Lambda函数。

这是另一个探索AWS配置规则的理由,即这是开始使用Lambda的一个简单入门方法。如果你选择使用自定义规则,那么你会用到一个待填空的Lambda模板。你可以在此基础之上开始编写和修改简单的Lambda函数。

在配置规则中,开发人员能够做的并不仅仅只是对不符合规定进行报告。因为当资源不符合时AWS提供的规则会通知你,它们不会阻止违规行为。Lambda函数可以完成(大部分)的工作;开发人员可以编写自己的函数以阻止违规。例如,如果有人创建了一个没有使用强制性AWS标记的实例,那么系统就会终止这个实例。