CLIで全てのリージョンのインスタンス一覧取得を試みる!

はじめまして、SBクラウドのKSです。

最近Alibaba Cloudを使い始めて、クラウドコンピューティングの良さを改めて実感しています。オンプレミス環境と違い、ボタンを押すだけですぐに検証環境を構築できて、不要になったら即削除!
でも、たまに削除し忘れて、放置してしまっていた・・・なんてことも。
そこで、全てのリージョンのインスタンス一覧を取得する方法についてご紹介します。

コンソール(GUI)でのインスタンス一覧取得

Alibaba Cloudではコンソール(GUI)上でECSなどのインスタンスを購入できて、すぐに使用することができます。購入したインスタンスの一覧はコンソールで確認することができ、一覧のエクスポートも可能です。

Alibaba CloudコンソールのECS一覧画面

しかし、上記の画像の通りリージョンごとにしかインスタンスの一覧を確認(エクスポート含め)することができません。そのため、各リージョン、各プロダクトを選択して何度も一覧を確認しなければならないのです。

この方法だと手間がかかりますよね?
(更にAlibaba Cloudでは今後リージョンを拡大する予定もあります)

ということで、全てのリージョンの、各プロダクトのインスタンス一覧をコマンドラインで一括取得できないか試してみました。
また、取得した一覧は棚卸しに使いたいと思っているので、定期的に実施する仕組みにしたいと思います。

aliyuncliを使った一覧取得

今回はECS上でaliyuncliというコマンドラインツールを使いました。

aliyuncliのインストールに関してはこちら

上記リンクを参照してまずはECSの一覧を取得してみます。

# aliyuncli ecs DescribeInstances --RegionId ap-northeast-1 --PageSize 100 --filter Instances.Instance[*] 

        "AutoReleaseTime": "",
        "RegionId": "ap-northeast-1",
        "InstanceTypeFamily": "ecs.n4",
        "InternetChargeType": "PayByTraffic",
        "SerialNumber": "72625ee9-ec8c-42f5-8d90-d8410935c4a8",
        "CreationTime": "2018-01-19T07:19Z",
      ・
      ・
      ・
        "AutoReleaseTime": "",
        "RegionId": "ap-northeast-1",
        "InstanceTypeFamily": "ecs.n4",
        "InternetChargeType": "PayByTraffic",
        "SerialNumber": "21b4e121-3fcf-47c0-884c-c779a8c59885",
        "CreationTime": "2018-01-19T06:31Z",
      ・
      ・
      ・

これで東京リージョンのECS一覧が取得できました。

他のリージョンも上記コマンドの「–RegionId ***」を変更して取得可能です。

あとは出力がJSON形式だと一覧として見づらいため、今回はjson2csvというツールでcsv形式に変換しています。

全てのリージョンの一覧を取得したかったので、各リージョン毎のコマンドをシェルスクリプトでまとめて実行しました。

出力させたテキストの一覧を表に貼り付けたものが下記になります。

全リージョンのECS一覧

※上記の画像では見えていませんが、項目としてはインスタンス名やIPアドレスなども表示されます。

そして、ECSと同様にRDS、SLB、RAMに関しても各プロダクトのSDKをインストールして一覧を取得できます。

# aliyuncli rds DescribeDBInstances --オプション
# aliyuncli slb DescribeLoadBalancers --オプション
# aliyuncli ram ListUsers --オプション

Alibaba Cloudでは様々なSDKに対応しているため、上記以外のプロダクトも一覧取得できるかもしれません。(確認中です)

ossutilを使ったバケットの一覧取得

OSSは「ossutil」というコマンドラインツールのlsコマンドで一覧を取得できます。

ossutilのインストールに関してはこちら

# ossutil ls

全リージョンのOSS一覧

OSSへのアップロード

ECS上で取得したインスタンス一覧のファイルをローカルの環境にダウンロードする方法は色々とありますが、せっかくなので今回はAlibaba CloudプロダクトのOSSを経由して試しています。

# ossutil cp ファイル名 oss://バケット名/ディレクトリ名/

上記のコマンドでOSSにアップロードが可能です。

定期実行

また、今回一覧を取得したECSはCentOSを使用したので、cronで簡単に「インスタンス一覧取得からOSSへのアップロード」までを自動化することもできました。

最後に

今回は一部のプロダクトのみでしたが、このような方法で全てのリージョンのインスタンス一覧を取得できます。ぜひみなさまにもAlibaba Cloudでいろいろなプロダクトを試してみてください。

 

この記事をシェアする