AWSのSecurityGroup関連の調査・更新CLIメモ
...こんにちは。小宮です。
今回ご紹介するのはpiculetでgroupファイルでルール更新というのではありません。 ちょっと整理とか削除とかしたいけど手でポチぽちするには量が多いしオペミスが心配だし手間だし早く帰りたいので どれに紐づいてるのか一括で調べたい一括更新したいといった時にforループとCLIでなんとかする方法です。 SecurityGroupの上限緩和申請の際にSGの書き方的に通信パフォーマンスがアレで引っ掛かった時等にこんなような作業が必要に。
あんまり使いこなせてるほうでもないのですが、一応載せておきます。ご利用は自己責任でお願いします。 みなさま似たようなことしててもっと洗練されたやり方をご存知の方も沢山いそうです。 弊社だと稲田さんほか協力部隊の方々がもっと詳しそうな気がします。マサカリ歓迎いたします。 稲田さんに聞いたらもっとoutputはtextにしてjoinを使いこなせと言っていたのでそのうち何か書いてくれると思います。
SecurityGroupのidから紐づくインスタンス情報を得る
これは既存の情報を得るだけで更新しないので気軽に実行できると思います。 まずリストを作る(消したいSGをいれる)
vi listfile sg-xxxxxxxx,SG_hoge_dev1 sg-yyyyyyyy,SG_fuga_dev2 ... list=listfile profile=xxxxリストを読み込んでdescribe-instancesを実行
for i in `cat $list|grep -v elb` do groupid=`echo $i |awk -F, '{print $1}'` groupname=`echo $i |awk -F, '{print $2}'` echo $i aws ec2 describe-instances --profile ${profile} --filters Name=instance.group-id,Values=$groupid --output text \ --query 'Reservations[].Instances[*].[InstanceId,PrivateIpAddress,Tags[?Key==`Name`].Value[]]' --output json \ |sed -e '/\]/d' -e '/\[/d' -e '/^$/d' -e 's/ //g'|perl -pe 's/,[ ]*\n/,/g'|sort -t , -k 3 echo "" done出てきた結果からlistfileをつくりSGはずしたり替えたりするときにつかいます。