公開日:2019.11.06

AWS-CLIコマンドでEC2のメトリクスをいろいろ取りたい

テクログaws

# aws-cliコマンド

さくっと、EC2のインスタンスの情報をcliで取りたいときのコマンドです。

##EC2のタグについてるサーバの名前を知りたい時

aws ec2 describe-instances | jq -r ".Reservations[] .Instances[] .Tags[]|select(.Key=="Name")|.Value"

#ステータスがrunning状態のTagsがKey=Nameのをインスタンスを取得

aws ec2 describe-instances --filter "Name=instance-state-name,Values=running" | jq -r ".Reservations[] .Instances[] .Tags[]|select(.Key=="Name")|.Value"

#running状態かつ、 TagsがKey=NameのインスタンスIDとインスタンス名を取得

aws ec2 describe-instances --filter "Name=instance-state-name,Values=running" | jq -r ".Reservations[].Instances[] | {InstanceId, InstanceName: (.Tags[] | select(.Key=="Name").Value)}"

#インスタンス名だけを抽出して、整形して出力

aws ec2 describe-instances --filter "Name=instance-state-name,Values=running" | jq -r ".Reservations[].Instances[] | {InstanceId, InstanceName: (.Tags[] | select(.Key=="Name").Value)}" | grep "InstanceName" | awk "{print $2}" | sed -e "s/"//g" -e "s/,//g" > hogeファイル

#インスタンスIDだけを抽出して、整形して出力

aws ec2 describe-instances --filter "Name=instance-state-name,Values=running" | jq -r ".Reservations[].Instances[] | {InstanceId, InstanceName: (.Tags[] | select(.Key=="Name").Value)}" | grep "InstanceId" | awk "{print $2}" | sed -e "s/"//g" -e "s/,//g"

#EC2についてるEIPを取得

aws ec2 describe-addresses --query "*[].PublicIp" --output text | tr "?" "?"

#ローカルPCからAWSへ取得したEIPリストを使ってSSHして、コマンド叩く用のシェル

#!/bin/bash

aws ec2 describe-addresses --query "*[].PublicIp" --output text | tr "?" "?" > elastic_ip.lst
export AWS_HOME=${HOME}/.aws
export AWS_CONFIG_FILE=${AWS_HOME}/config
export ELASTIC_IP=${HOME}/elastic_ip.lst

cat ${ELASTIC_IP} | while read line

do
ssh -n user@$line -p 22 -i /xxxxxx/xxxxxx "example-command" > result.txt
done

この記事を書いた人

ひなっち

入社年2018年

出身地青森

業務内容インフラ

特技または趣味筋トレ

ひなっちの記事一覧へ

テクログに関する記事一覧