在日常的资源管理工作中,我们常常会因为各种复杂的场景而使用Amazon EC2。例如遇到临时业务需求时需要扩展资源、开发测试环境需要充足的资源支持业务峰值应对等场景,当这些临时性的业务需求完成后,如果不能及时删除已使用的Amazon EC2资源,就会造成严重的资源浪费,持续占用会显著增加不必要的开支。
传统的预算和账单警报方式存在明显的局限性,它们只能监控到每日的账单费用,却无法及时发现和精准定位那些超出预期使用时间的临时资源。这就导致了许多企业和开发者在不知不觉中承受着额外的成本压力。
本文将详细介绍一种利用亚马逊云科技的Amazon EventBridge、Amazon DynamoDB、Amazon Lambda和Amazon SNS等服务实现的解决方案。该方案能够对亚马逊云科技账号中Amazon EC2实例的运行时长进行有效检查,并通过邮件的方式将超出预期使用时间的EC2实例ID发送到预先设定的邮箱,从而提醒用户及时释放资源。
亚马逊云科技官网:点击访问(免费试用40+云服务,包括Amazon EC2)
一、方案原理
1、此方案借助Amazon EventBridge定时触发Amazon Lambda函数。
2、Lambda函数会读取预先存储在Amazon DynamoDB中的实例类型和计划运行时长等关键信息,同时利用标签来清晰区分长期资源和临时资源。依据这些信息和标签,对处于运行状态的Amazon EC2实例信息进行细致筛选。
3、最后将筛选后的信息通过Amazon SNS发送到用户设置的邮箱中,实现及时的通知提醒。
二、方案架构图1、定时检测触发:通过EventBridge规则定时触发Lambda函数进行检测。例如可将检测时间设置为每天上午09:00执行,规则事件计划时间的Cron表达式为‘0 9 * *? *’。这样可以确保系统按照预定的时间周期进行资源检查。
2、信息读取:Lambda函数读取DynamoDB表中配置的实例类型和计划运行时长,为后续的匹配工作提供准确的数据依据。
3、实例匹配筛选:Lambda函数根据读取到的信息和正在运行的Amazon EC2实例进行一一匹配,重点获取不包含标签prod=1且超过运行时长的实例信息。通过这种方式,能够精准定位那些超出使用期限的临时资源。
4、信息通知:Lambda函数将超时运行的实例信息发布到SNS Topic,然后通过邮件推送到订阅邮箱。用户可以在第一时间收到提醒,及时处理这些超时的实例。
四、部署方式本方案采用Amazon Cloudformation进行部署,这种方式具有高效、便捷的特点,能够快速搭建起整个监控系统。
1、准备模版文件:从地址https://github.com/nwcd-samples/ec2-runtime-reminder/blob/main/ec2_runtime_timeout_reminder.yaml下载模版。确保模版文件的准确获取是后续部署工作的基础。
2、创建堆栈:按照系统提示创建堆栈,为后续的配置工作做好准备。
3、输入配置信息:输入堆栈名称、监控的实例类型、预计运行天数、接收通知的邮箱地址等关键信息。这些信息的准确输入将直接影响到监控系统的正常运行和通知的准确性。
4、点击下一步:完成信息输入后,点击下一步进入后续的部署流程。
5、创建IAM Role:部署过程中会创建用于 ambda执行的IAM Role。请选择“我确认,Amazon CloudFormation可能创建IAM资源” 然后点击提交,确保系统具备必要的权限来执行相关操作。
6、确认订阅:部署完成后请查看在部署时配置的邮箱,点击Confirm subscription确认订阅SNS通知。只有完成确认订阅,才能正常接收系统发送的提醒邮件。
7、调整监控配置:如需增加或调整监控的实例类型,请在DynamoDB表中进行修改。这样可以根据实际业务需求灵活调整监控范围。
8、长期实例处理:对于需要长期运行的实例,请增加为实例增加Tag name为prod 、Value为1的Tag,用于将此实例排除在通知清单中。避免长期运行的实例被误提醒,提高通知的准确性。
在设置的时间,如果存在运行超出预设时间的实例将收到提醒邮件。邮件中会明确列出超时运行的Amazon EC2实例ID,方便及时采取释放资源的操作。
当不再需要使用该监控系统时,可删除cloudformation堆栈,完成环境的清理工作,避免不必要的资源占用。
按照每天检测1次的频率,方案每月资源用量如下:
服务类型 | 每月使用量 |
Amazon EventBridge | 30 个事件 |
Amazon Lambda |
内存 128M |
Amazon DynamoDB | 写入 1 次 读取 30 次 |
Amazon SNS | 30 次邮件通知 |
相关推荐:
《亚马逊免费云服务器Amazon EC2启动Linux实例教程》
(本文由美国主机侦探原创,转载请注明出处“美国主机侦探”和原文地址!)

微信扫码加好友进群
主机优惠码及时掌握

QQ群号:938255063
主机优惠发布与交流