간만의 휴식에 한일들

 3월 1일부터 새로운 회사에 입사하게 되어서 2월은 약 한달 정도 쉬게 되었다. 쉬기 전 까지는 이것도 하고 저것도 하고 계획도 많았지만 막상 쉬게 되면 이런 저런 제약 때문에 생각대로 되지 않는다. 특히 꼬맹이 학교에서 돌아오는 시간이 있으니 그에 맞춰 집에 있으려면 할 수 있는 것도 그렇게 많지 않은 것 같다. 그나마 한 것 들이라고는 영화본 것 밖에 없는 듯. 슬램덩크, 아바타2, 앤트맨&와스프 퀀텀 매니아. 요렇게 3개의 영화를 보고 왔다. 슬램덩크 추억의 만화책을 애니화 한 만화 영화. 뭐 나쁘지 않은 영화 였다. 전체적으로는 약간 루즈한 느낌이 들지만 마지막 클라이막스 부분에서는 음악과 함께 좋은 연출을 본 듯 한 느낌이다. 두번 본 사람도 있다고 하는데 그 정도 까지는 아닌 듯. 아바타2 볼까 말까 고민한 영화. 이미 뒷편 들까지 어느정도 촬영이 끝났다는 이야기를 듣고 보기로 결정. 처음으로 4dx 영화관에서 보았는데 의자의 흔들림 등 그 외 효과들이 그렇게 효과가 있다고는 생각을 못하겠다. 가~끔씩 타이밍이 딱 맞을 때도 있지만 오히려 신경이 쓰여서 영화에 집중 못하는 경우도 꽤 있었던 듯 하다.  화면에 집중하고 싶어서 더빙판으로 관람 했는데 더빙 판은 4dx밖에 없드라.. 내용도 괜찮고 그래픽도 괜찮고 눈도 즐거웠다. 다음 편이 나오면 또 보러 가고 싶다. 앤트맨&와스프 퀀텀 매니아 인터넷의 평가는 좋은편이 아닌 듯 하다. 이것도 4dx로 관람 하고 왔는데 나쁘지는 않은 듯 하다. 딱 거기까지. 양자 세계에 또하나의 우주가 존재한다는 가설은 이전부터 있었던 이야기. 결국 우리가 살고 있는 지구도 누군가의 양자 세계 일 수도 있다는 것.  하지만 양자 세계의 묘사가 뭐랄까 스타워즈 짝퉁이라는 느낌이 강하게 든다. 스타워즈를 본 적 없는 사람에게는 신선한 충격으로 다가 올지도 모르겠다. 영화를 볼때는 개연성같은걸 신경 쓰면 지는 거다. 그냥 무지성으로 생각하지 말고 시간 때우기로만 본다면 나쁘진 않은 듯 하지만 하나씩 따지기 시작

AWSの放置されたEBSをchatworkへ定期的に通知

 

毎日ec2やamiを作成/削除を繰り返している環境では気付かないうちに放置されているEBSが増えてくる。考えられる原因としては色々あるけど大きくは以下の2つではないかと思っている。

  • AMIからEC2を起動する場合の話だけど、AMI作成時に「EBSをインスタンス削除時に一緒に削除する」というオプションにチェックしなかった場合、そのAMIから起動したEC2を削除するときは毎回そのEBSが残ってしまう
  • 不要になったらAMIを削除するとAMIに紐づいているEBSやスナップショットは削除されないらしい。定期的に不要AMIを方付ける仕組みを採用しているなら定期的に放置EBSも増えるはず。

なので以下のスクリプトを作成して定期的にチャットワークに通知するようにした。

#!/usr/bin/php
<?
$query="/usr/local/bin/aws --region ap-northeast-1 ec2 describe-volumes --filters Name=status,Values=available";
$result=json_decode(`$query`);
put_msg($result);
 
function put_msg($obj) {
        $TOKN="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
        $CWEP="https://api.chatwork.com/v2/rooms";
        $RMID="XXXXXXXX";
 
        $now=time();
        $ebsinfo="";
 
        $cntebs=count($obj->Volumes);
 
        if ($cntebs > 0) {
                for ($i=0; $i<count($obj->Volumes); $i++) {
                        $cy=substr($obj->Volumes[$i]->CreateTime, 0, 4);
                        $cm=substr($obj->Volumes[$i]->CreateTime, 5, 2);
                        $cd=substr($obj->Volumes[$i]->CreateTime, 8, 2);
                        $niglect['ctime']=mktime(0, 0, 0, $cm, $cd, $cy);
                        $niglect['mtime']=$now - $niglect['ctime'];
                        $niglect['day']=(int)($niglect['mtime']/60/60/24);
                        $niglect['mon']=(int)($niglect['day']/30);
                        $niglect['cost']=$obj->Volumes[$i]->Size * $niglect['mon']*0.12;
 
                        $ebsinfo.="[$cy/$cm/$cd] ";
                        $ebsinfo.=$obj->Volumes[$i]->VolumeId;
                        $ebsinfo.=", ".$obj->Volumes[$i]->Size."GB";
                        $ebsinfo.=", $niglect[day]日";
                        $ebsinfo.=", $niglect[cost]ドル\n";
 
                }
                $messages ="[info][title]";
                $messages.=date("Y/m/d", $now)."、EBSの放置状況\n[/title]";
                $messages.="[code]※[作成日] ボリュームID, サイズ,放置日数,消費料金\n${ebsinfo}[/code]\n";
                $messages.="上記「".count($obj->Volumes)."個」のEBSが「availabe」の状態で放置されています。\n";
                $messages.="確認後、不要なEBSは削除しましょう。(1GB 0.12ドル/Month)\n";
                $messages.="[/info]";
                exec ("/usr/bin/curl -X POST -H \"X-ChatWorkToken: $TOKN\" -d \"body=$messages\" \"$CWEP/$RMID/messages\"");
        }
}
?>

chatworkには以下のようなメッセージが表示される。

[2016/12/26] vol-09f2facbdefff1f0, 20GB, 239日, 16.8ドル
[2017/05/10] vol-067cdefgaf5c789d, 15GB, 104日, 5.4ドル
[2017/05/10] vol-09b8ededcfgj6dbf03, 15GB, 104日, 5.4ドル

この次は抽出した放置EBSをAWS CLIを使ってそのまま削除してしまうことかな。EBSにもタグをつけられるので残しておく必要があるEBSはタグをつけておいて、そのタグがついてないEBSは定期的に削除してその結果を通知する仕組みがいいかも。

でも、削除を全自動でやるのはやはり怖いから1週間前に通知して1週間後削除するか、削除は手動でやるかなどの半自動化した方がいいと思う。

댓글

이 블로그의 인기 게시물

curl 명령어 옵션

CISCO 2960s 초기화 후 기본 설정

AWS에서 zabbix를 이용한 autoscaling ec2 자동등록/자동삭제