EC2 Reserved Instanceの有効期限をAPIで管理する

EC2 Reserved Instanceの有効期限が切れた通知って僕の知る限りはメールで来ないんですよね。カレンダーに登録しとくとかタスク管理ツールに入れとくとかすればいいんですがAPIを使ってcronで毎日確認する方法もあるので軽く書いてみた。引っかかったインスタンスの情報をタスク管理ツールAPI叩いて登録するのが一番スマートですかね。

rubyでの例。

$ gem install aws-sdk
#!/usr/bin/env ruby
require 'aws-sdk'


Aws.config.update({
  region: 'ap-northeast-1',
  credentials: Aws::Credentials.new(
    'your_key',
    'your_secret'
  )
})

# activeなReserved Instanceを取得
ec2_client = Aws::EC2::Client.new
resp = ec2_client.describe_reserved_instances({
   filters: [{ 
     name:'state',
     values:['active']
   }]
})

# 有効期限が1ヶ月以内だったらアラート
resp.reserved_instances.each do |instance|
  if instance.end < Time.now + 60 * 60 * 24 * 30
    puts "リザーブドインスタンス:#{instance.reserved_instance_id} は1ヶ月以内に有効期限切れますよー"
  end
end

リンク

Class: Aws::EC2::Client — AWS SDK for Ruby V2