如何使用Shell脚本实现EC2预留实例RI到期提醒

小编给大家分享一下如何使用Shell脚本实现EC2 预留实例RI到期提醒,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

创新互联是一家专注于成都网站制作、网站设计与策划设计,扬中网站建设哪家好?创新互联做网站,专注于网站建设十年,网设计领域的专业建站公司;建站业务涵盖:扬中等地区。扬中做网站价格咨询:18982081108

一、场景描述

作为一个云运维工程师,要管理的机器少则几百台,多则上千上万台。对于企业客户而言,采购AWS EC2均会使用ALL Upfront(预付全部的方式,一年可以节约成本50%~70%之间),因此需要我们在客户购买的预留实例(Reserve Instance)到期之前,可以提醒到客户,避免因为按照On demand(按需运行)带来的巨大花费。

二、脚本依赖条件

执行这个脚本的前提:

1.  配置AWS CLI环境。

2.  配置管理的所有AWS账户的密钥文件

     示例:使用aws configure --profile test-acccount (红色的字体代表账户名称,用来标识不同的账户)

三、脚本的功能

这是脚本的第一个版本,比较简单,主要分为几个步骤:

1.  轮询获取每个客户的AWS账户EC2预留实例的过期时间

2.  计算过期时间和当前时间的时间

3.  如果时间差小于15天,发送告警邮件到指定的邮箱。

四、脚本内容

#!/bin/bash

#Author:Andy Wei

#Version:1.0

#Function: Reserve Instance retired Alert

####客户列表

customer_list=("test-account" "myacccount" )

for customer in ${customer_list[@]}

do

    #####获取所有实例的RI到期信息

    ri_teach_time_list=`aws ec2 describe-reserved-instances --profile $customer --query 'ReservedInstances[*].[End,State]' --output t

ext|grep active | awk -F"T" '{print $1}'`#    echo $customer   

    ###获取当前时间信息

    cur_date=`date  "+%Y-%m-%d"`

    ####计算到期时间和当前时间相差天数

    for time in $ri_teach_time_list

    do

        ####计算到期时间和当前时间相差天数

        time_difference=$(($(date +%s -d "$time") - $(date +%s -d "$cur_date")))

        difference_day=$(($time_difference/24/60/60))

        ###RI到期时间和当前时间对比,小于15天发送邮件

        if [ $difference_day -le 15 ];then

           echo "The $customer account $time will have EC2 RI retired."|mail -s "The $customer RI retired Notication"  你的邮箱

      fi

    done

done

看完了这篇文章,相信你对“如何使用Shell脚本实现EC2 预留实例RI到期提醒”有了一定的了解,如果想了解更多相关知识,欢迎关注创新互联行业资讯频道,感谢各位的阅读!


分享题目:如何使用Shell脚本实现EC2预留实例RI到期提醒
文章位置:http://myzitong.com/article/jejoso.html