我已经使用AWS一段时间了。我一直很难跟踪AWS资源及其相互连接方式。显然,我使用的是Terraform,但仍然有一些临时操作会降低我的可见性。

由于我多次为存在但未被使用的资源/服务收费。

未使用的服务包括未指向其他服务但存在于AWS环境中的资源。

也欢迎提供工具建议。

评论

不清楚未使用的资源是什么意思。您是说资源已停止(即未被利用)吗?正在运行的资源,但没有执行所需的操作?不与任何EC2实例相关联的活动EBS卷或未指向任何实例的ELB?

我建议在这里使用Cloudyn,因为它是根据您的需求而制成的。

@PrestonM我指的是两者。主要针对不指向任何实例但指向已停止资源的ELB。

#1 楼

有几种方法可以删除未使用的资源,如一些建议的那样,可以标记某些受信任或已知组中的项,然后手动监视未正确标记的资源。

然后,您可以将其扩展到您经常运行的python脚本中,以ID和删除这些资源。

但是,还有其他(可能不太密集)的选项。

1)AWS已经为我们提供了一种监控资源,识别未使用资源并通过CloudWatch警报终止它们的方法。您可以基于可能已经手动执行的一组检查来配置一些警报,从而开始工作。一旦您对警报的准确性感到满意后,就可以在链上添加终止步骤。

2)另外,我们的Netflix朋友也制作了一个名为JanitorMonkey的令人震惊的工具来监视和删除未使用的实例EBS卷,EBS快照和自动缩放组。它是Netflix最初用Java编写的所谓“ Simian Army”开源软件包的一部分。甚至以为它已经有几年历史了,这个东西是高度可配置的,非常值得一看。

这两个选项均允许您配置适合您需要的警告和业务规则。此外,使用CloudWatch也可能是一个很好的机会,以了解有关AWS日志和异常识别的更多信息。

评论


看门人的猴子似乎已经退休了。

–银匕首
19-09-20在7:39

#2 楼

我创建了一个这样的工具,它称为AWS Inventory,最终它将涵盖您账户中的所有可用资源。尽管仍在进行中,但仅通过将API名称添加到列表中来添加可能丢失的项应该非常容易。

该工具只是使用aws-sdk.js的单个HTML文件可以查询启用了CORS的服务的所有不同的list...describe... API。

该项目是MIT许可证,并且位于https://github.com/devops-israel/aws-inventory。 />

#3 楼

如果您只想使用AWS提供的工具来做到这一点,请尝试以下操作:


找出适合您的标记方案
标记您提供的所有资源,确保没有任何事情对于您在terraform之外提供的东西且未始终由标记方案正确标记的东西,则保持未标记状态
,请使用AWS Config服务强制执行标记方案

拥有所有资源后标记后,使用AWS Budgets监视和跟踪支出的变化,并在超出定义的预算阈值时获得警报。

此外,还可以在AWS Costs Explorer中创建并定期查看一些报告,以每日查找区域支出/服务支出等的变化。

使用严格且有意义的标记方案有助于维护帐户健康,减少浪费的资金。

评论


标记的问题是。您必须为所需的一切做这些。显然,我有我的关键标签。时不时会有新的变化出现,我必须随着KPI的更改而更改标记方案。它并不是真正的可扩展解决方案。

– Veer Abheek Singh Manhas
18-2-7在14:57

如果您要自动化所有标记,请看一下涂鸦猴子/有助于部署标记的类似工具/确保标记方案

– tolib
18-2-8在15:11



#4 楼

那就是仅使用AWS控制台的一种方式。

我已经使用TotalCloud做很多其他事情,但这在平台上很容易实现。目前看来是免费的。我已经在两个大的AWS帐户中使用了3个月了。

它在单个视图中以可视化的拓扑视图显示所有内容,这使理解资源/服务之间的关系变得相当容易。分组绝对可以帮助您找到所需的资源。

评论


尝试过,非常糟糕。

– Evgeny Zislis
18年2月13日在13:59

@Evgeny Mind为何添加?似乎上面的建议令人眼花,乱,而且给出了丰富的答案,因此了解为什么它不能帮助您做出明智的决定对您很有帮助。

–蒂姆·马隆(Tim Malone)
18年6月17日在3:30

“原因”是它是非常低质量的软件。惨不忍睹。比AWS控制台差很多。尝试基于使用此软件来“查看”您在AWS中实际拥有的内容是徒劳的。抱歉,有些软件不好。

– Evgeny Zislis
18年6月21日在22:40