LoginSignup
2
2

More than 5 years have passed since last update.

AWS CLIワンライナー集

Last updated at Posted at 2017-03-10

これは何?

よく書式を忘れるのでメモがてらよく使うAWC CLIの書式を纏めています。

前提条件

下記の権限を持つIAMユーザーのクレデンシャル情報を設定済み、もしくはIAMロールを設定済み

ec2:DescribeTags
ec2:DescribeInstances

EC2上で自分の存在するリージョン名を取得

AWS CLIではないけど、以降のコマンドで基本、リージョン情報は必須なので。

コマンド

$ curl -s --connect-timeout 2 http://169.254.169.254/latest/meta-data/local-hostname | cut -d'.' -f2

結果

ap-northeast-1

タグで自分のリージョンのプライベートIPの一覧を取得

コマンド

例:Envタグのバリューがproductionで検索

$ aws --region $(curl -s --connect-timeout 2 http://169.254.169.254/latest/meta-data/local-hostname | cut -d'.' -f2) ec2 describe-instances --output text --filters "Name=tag:Env,Values=production" --query "Reservations[].Instances[].PrivateIpAddress"

結果

192.0.2.0 192.0.2.1 192.0.2.5 192.0.2.10

自分のインスタンス名を取得

コマンド

$ aws --region ap-northeast-1 ec2 describe-tags --output text --query "Tags[?ResourceId==\`$(curl -s http://169.254.169.254/latest/meta-data/instance-id)\` && Key==\`Name\`].Value" --region $(curl -s --connect-timeout 2 http://169.254.169.254/latest/meta-data/local-hostname | cut -d'.' -f2)

結果

web001

hostsファイル生成

コマンド

$ aws --region ap-northeast-1 ec2 describe-instances --output text --query 'Reservations[].Instances[].{Address:PrivateIpAddress, Tags:Tags[?Key==`Name`]}[].{a:Address, h:Tags[0].Value}'

複数のタグでインスタンスIDの一覧を取得

コマンド

$ aws --region ap-northeast-1 --output text  ec2 describe-instances --filter "Name=tag:Group,Values=web" "Name=tag:Env,Values=production" --query "Reservations[].Instances[].InstanceId"

結果

i-11111111111111111111 i-22222222222222222
2
2
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
2
2