我们上篇文章——<<AWS Limit Monitor,主动跟踪资源使用情况,接近limits时推送通知提醒>>讨论了AWS Limit Monitor,该解决方案自动配置必要的服务,以便在您使用AWS的过程中,主动跟踪资源使用情况当使用的资源接近limits限制时发送通知,帮助您避免有启动资源需求时才发现limits到上限造成无法启动资源从而影响线上业务的情况。
今天我们实战,对AWS Limit Monitor进行自动化部署。
AWS Limit Monitor部署
首先,在部署 AWS Limit Monitor前,请仔细查看上篇关于 AWS Limit Monitor理论内容,包括 AWS Limit Monitor架构说明等,这会有助于顺利完成部署工作。
/本次部署演示不包括部署secondary账户和slack推送内容,如有实际需求,针对对应配置项进行配置即可。/
启动堆栈,开始部署
下面提供的 AWS CloudFormation 模版自动部署AWS Limit Monitor到您的账户中。
/Note:注意,部署会产生aws资源使用费用,具体费用数额请查看本方案使用各个服务的具体费用。如果是测试目的,部署完成后请将所有相应资源删除以免产生不必要的费用。/
1、登陆aws管理控制台后,复制下面链接后在浏览器中打开,启动AWS Limit Monitor AWS CloudFormation template
https://console.aws.amazon.com/cloudformation/home?region=us-east-1#/stacks/new?stackName=LimitMonitor&templateURL=https:%2F%2Fs3.amazonaws.com%2Fsolutions-reference%2Flimit-monitor%2Flatest%2Flimit-monitor.template
也可以通过下面链接下载模板用于你自己的环境。
https://s3.amazonaws.com/solutions-reference/limit-monitor/latest/limit-monitor.template
2、默认情况下,模板在US East (N. Virginia) Region启动。
3、在创建堆栈页面,确认下正确的模板 URL 显示在 Amazon S3 URL 文本框中,然后选择"下一步"。
4、可以修改堆栈名称,我们这里就用默认的。
5、参数设置部分,如有需要可进行自行调整,参数配置说明:
- Account List,limit 监控的账号ID列表,用引号和逗号分隔,如果您需要部署secondary账户limit监控的话就要将账号ID配置到这里。我将这里留空,留空表示只监控当前主账户的limit。
- Email Notification Level,配置出发通知的事件级别,这里留默认“WARN”, “ERROR”,表示达到这两个级别时出发通知。
- Email Address,这是必选项,表示接收 Amazon SNS 通知的有效电子邮件地址。后面三个选项是关于slack的配置,我们不进行配置,留空。
6、审核LimitMonitor页面,
注意页面最下方,勾选两个复选框以提供给CloudFormation相应权限。
7、点击创建堆栈,开始部署,可以在AWS CloudFormation控制台查看部署状态,整个部署过程大约5分钟左右,您将能看到f *CREATE_COMPLETE*。
创建完成:
查看下事件日志无异常后,我们进行下一步。
8、此时,在您部署时填写的邮箱中,应该能够收到一封订阅确认邮件,点击订阅url链接启动Amazon SNS notifications。注意,只有完成这一步当LimitMonitor有报警的时候才能收到订阅通知。
至此, AWS Limit Monitor就部署完成了,我们接下来确认下AWS Limit Monitor各个组件是否成功部署。
部署结果确认
1、首先我们打开lambda控制台,我们看到相应的函数已经成功部署。
点击具体的函数后,可以看到对应函数具体的结构和信息。
2、进入CloudWatch控制台,CloudWatch规则已经成功创建。
3、进入SNS控制台,看到主题已经创建好,要确认已完成订阅,才能收到推送消息。
4、进入SQS控制台,可以看到时间队列和死信队列已经创建完成。
5、进入DynamoDB控制台,看到表已经创建成功。所有AWS成功创建。
AWS Limit Monitor提供一些自定义配置,帮助客户细微调整以满足实际业务需求。
AWS Limit Monitor自定义配置
1、调整lambda运行间隔
默认情况下,AWS Lambda函数每24小时运行一次以刷新AWS Trusted Advisor服务限制检查。但是,您可以通过更改AWS CloudFormation模板中的映射来更改Lambda函数的调用频率。注意:如果调整为12小时内,那么事件到达Amazon DynamoDB可能会有延迟。
要更改时间间隔,请在AWS CloudFormation模板中修改以下映射:
> RefreshRate:
> CronSchedule:
> Default: rate(1 day)
2、调整需要监控的服务
默认情况下,此解决方案检查AWS Trusted Advisor检查的所有服务限制。要指定您要检查的服务限制,请修改以下AWS CloudFormation模板映射。
> *EventsMap:*
> Checks:
> Services:
> ‘”AutoScaling”,”CloudFormation”,”DynamoDB”,”EBS”,”EC2”,”ELB”,”IAM”,”Kinesis”,”RDS”,”Route53”,”SES”,”VPC”’
完成以上步骤,那么我们部署的AWS Limit Monitor已经可以正常运作了。
/Note:/
/要使用此解决方案,AWS帐户必须具有Business或Enterprise 的AWS Support,才能访问Trusted Advisor服务limits检查。/
以上,就是我们今天的AWS Limit Monitor部署实操,希望能给大家带来帮助。如果大家是测试目的,请在测试后将所有AWS Limit Monitor创建的资源删除,以免产生不必要的费用。方式是先删除CloudFormation堆栈,然后进入各个服务的控制台检查创建的各个资源进行删除。