0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【メモ】EC2のIPアドレスを一覧で取りたいのでWSLで取得してみた!

Posted at

こんにちわ!maijunです。

EC2のIPアドレスを一覧で取得したいってありません?
今回スプレッドシートに貼り付ける必要が出てきたので手順メモです

経緯

稀に授業の一環でサーバを複数準備し配布する必要がありますが、SSHで接続する為にサーバのIPアドレスをリスト化するのが面倒い。

AWS CLIでPublicIpAddressを抜き出したら楽やんと気づいて作業する事にしました。

環境

AWS CLIが入っていれば良いのですが、ちょうど自宅マシンにインストールしていない。
自宅WindowsにはAWS CLI入れたくない。

どうしよっかな~と思ったのですが、簡単に環境を捨てられるWSL側に入れることにしました。

$ cat /etc/os-release 
NAME="Ubuntu"
VERSION="20.04.1 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.1 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal

手順

公式ドキュメント見ながら作業です。
WSLに入れる必要があるのでLinux版の説明資料を見ます。

Linux での AWS CLI バージョン 2 のインストール、更新、アンインストール

AWS CLIのインストール

ドキュメントどおりにコマンドを叩いていきます。

$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"

取得したzipファイルをunzipで解凍しようとしたら「無い!」と叱られたのでインストールします。

$ sudo apt install unzip

これで解凍できるようになったので、溶かしてインストールです。

$ unzip awscliv2.zip
$ sudo ./aws/install
$ which aws
/usr/local/bin/aws
$ aws --version
aws-cli/2.0.54 Python/3.7.3 Linux/4.19.104-microsoft-standard exe/x86_64.ubuntu.20

ちゃんと入ってますね。良き!

AWSへの接続情報を設定する

AWS CLIで諸々作業する際には、アクセスキーを用いて繋げる必要があります。
aws configureで必要情報を入力していきます。

Access KeyやSecret Access KeyはIAMで取得しときます。

$ aws configure
AWS Access Key ID [None]: xxxxxxxxxxxxxxx
AWS Secret Access Key [None]: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Default region name [None]: ap-northeast-1
Default output format [None]: json

今回は東京リージョンにあるEC2の情報をJSON形式で取得する事にしました。
ちなみに接続情報は.aws内に保管されます。

$ cat .aws/config
$ cat .aws/credentials

適宜確認ください。

jqをインストールする。

json形式でインスタンス情報を取得しますが、色々整形したいのでjqをインストールします。

command-line JSON processor -jq-

$ sudo apt install jq

インスタンス情報取得するには?

AWS CLIも色々できてコマンドも多く、私はすべて覚えられません。
コマンドラインリファレンスで調べます。
AWS CLI Command Refarence

今回はec2 describe-instancesで取得できそうなので試します。

$ aws ec2 describe-instances
{
    "Reservations": []
}

お!jsqon形式で帰ってきた。
インスタンス立ち上げたら取得できそうです。

配列指定して取得

インスタンス立ち上げて必要情報を取得していきます。

$ aws ec2 describe-instances | jq '.Reservations.Instances.PublicIpAddress'
jq: error (at <stdin>:127): Cannot index array with string "Instances"

あ。。配列に入ってるんだった。やり直しです。

$ aws ec2 describe-instances | jq '.Reservations[].Instances[].PublicIpAddress' 
"54.178.62.204"

わーいわーい。
これで仕事準備も楽にできる

#まとめ
あとはIPアドレス一覧をスプレッドシートに貼り付けたら完了です。
マネジメントコンソールでぽちぽちしながら調べなくて良いので楽ですな。

なおawsコマンドですがhelp叩きながら調べるのも良いのですが、リファレンス見たほうが使用例も載っているので私は好きです。

Linux での AWS CLI バージョン 2 のインストール、更新、アンインストール
command-line JSON processor -jq-
AWS CLI Command Refarence

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?