エンジニアブログ

AWS上の全インスタンス情報を取得したい

2018.10.03

マネジメントコンソールって全てのリージョン並べて見れないんですよね。。。
私は何かと CLI が好きなので、CLI を使って確認する方法を考えることにしました。
使うものは次の通りです。

用意するもの

・AmazonLinux

・AWS CLI(※AmazonLinuxはインストール済)

・GNU Parallel

本当はね参照コマンド回せばいいだけなんです。
for とか while とかで
でも直列処理って意外とレスポンスに時間がかかるので、並列実行させたいと思いました。

そこで、上記の Parallel コマンドを今回は使います。

使い方は簡単です。

parallel <実行したいコマンド> ::: <同時実行する引数> 

例えば 

parallel echo ::: boku shigepi .
boku
shigepi

ということで、以下実施してみた流れです。

実施手順

Parallel インストール

yum -y install parallel

ちなみに今はこれだけリージョンあるようです。

リージョン情報取得

REGIONNAME=$(aws ec2 describe-regions –query Regions[].RegionName –output text)
echo ${REGIONNAME}
ap-south-1 eu-west-3 eu-west-2 eu-west-1 ap-northeast-2 ap-northeast-1 sa-east-1 ca-central-1
ap-southeast-1 ap-southeast-2 eu-central-1 us-east-1 us-east-2 us-west-1 us-west-2

AWS CLI 並列実行

time parallel aws ec2 describe-instances –query ‘Reservations[].Instances[].¥
[Placement.AvailabilityZone,InstanceId]’ –output text –region ::: ${REGIONNAME}
ap-south-1b i-056xxxx
ap-northeast-2a i-0c9xxxx
ap-northeast-1a i-250xxxx
ap-southeast-1b i-073xxxx
ap-southeast-2a i-0e9xxxx
eu-central-1b i-076xxxx
us-east-1e i-0c8xxxx
us-east-2b i-0aaxxxx
real 0m18.186s   user   0m5.985s   sys  0m0.851s

直列での実行

for

real 0m20.735s  user   0m5.903s  sys  0m0.805s

while

real 0m20.290s  user   0m5.906s  sys  0m0.834s

まとめ

別のとこでやったら2倍近く違う結果も出ました。
もっと数がある環境だと差がでるようです。
ぜひお試しください。

今回はこれくらいで失礼します。。。

参考 URL

コマンドを並列に実行するGNU parallelがとても便利
http://bicycle1885.hatenablog.com/entry/2014/08/10/143612

関連キーワード

この記事をシェアする

Facebook Twitter LINE はてなブックマーク

この記事を読んだ方に
おすすめの記事