AWSのITコストを削減 Simpline

選ばれ続けること

 

エンジニアブログ

ホーム - エンジニアブログ - 全リージョンのインスタンス情報を一括取得してみた

全リージョンのインスタンス情報を一括取得してみた

2018.09.20










初めまして、shigepi です。

周りの社員の方を見てて、役に立つものでないといけないかなぁとか色々考えたけど、 

そういう気遣いとか面倒くさいタイプなので、好き勝手にすることにしました。 

ということで、第一回目はタイトル通りです。 マネジメントコンソールって全てのリージョン並べて見れないんですよね。。。 でも、かといって新しいコンソール画面の開発は面倒くさいし、どっか作っていても 良い値段しそうです。。。

ということで、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倍近く違う結果も出ました。 

そういえばその時は「jq」コマンドを使ったような、使っていないような気が。。。 

比較的リソース少なめの環境なので、こんなものでしょう。

もっと数がある環境だと差がでるようです。 

ぜひお試しください。


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










1 Star 0 いいねしてね!
Loading...