엔지니어들이 면접에서 물어야 할 질문들

이것도 geeknews에 올라온 글. 내가 보기엔 알짜정보가 많다... https://news.hada.io/topic?id=6862&utm_source=slack&utm_medium=bot&utm_campaign=T13KRBZU4 https://posthog.com/blog/what-to-ask-in-interviews "이 질문들은 매우 직설적이긴 하지만, 이에 대해 좋지 않은 반응을 보이는 회사는 좋은 직장이 아닐 수 있습니다" 이 회사는 Product-Market-Fit 한가요? PMF한지 자신에게 질문한 적이 있나요? PMF를 언제 달성했나요? 어떻게 아나요? PMF를 달성하기 위해 뭘 해야 하나요? 매출은 얼마인가요? 1년전에는 얼마였나요? 일 활성사용자(DAU)는 얼마인가요? 피해야 할 회사들 : Pre-PMF를 설명하는데 시간을 많이 쓰지 않는 창업자들 제품이나 그들이 주는 혜택이 뭔지 이해하기 어려운 회사들 문제를 찾는 해결책들 Runway가 얼마나 남아있나요? 지출이 합리적인 것처럼 보이나요? Default Alive 한가요?→ 지금은 수익성이 없지만, 자금이 바닥나기 전에 수익을 낼 수 있을만큼 빠르게 성장 가능한가 Runway는 얼마인가요? 이걸 계산하기 위한 가정은 뭔가요? 펀드레이징 계획은 어떻게 되나요? 피해야 할 회사들 : Default Alive 한지 모르거나, 신경쓰지 않는 회사 시간이 모자르거나 느려서, Default Alive 해질 것 같지 않은 회사 생존을 위해서 단시간내에 매출의 급격한 증가를 가정하는 회사 곧 자금이 바닥나기 때문에 펀드레이징을 하고 있지만, 라운드 클로징을 하지 않은 회사 문화는 어떤가요? 회사의 가치는 뭐고, 왜 그것인가요? 그 가치를 따르는 구체적인 방법들을 알려주실수 있나요? 뭘 만들지 누가 결정하나요 ? 일반적인 하루(근무일)는 어떤 모습인가요? 어떤 미래를 기대하나요 ? 어떤 것이 당신에게 동기를 부여하나요? 지금까지 가장 자랑스러운 것은 뭔가요? 회

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 초기화 후 기본 설정

Macbook M1에서 karabiner를 이용한 영어/한글/일본어 입력 변환