EC2
- EC2インスタンスのNameタグを取得する
aws ec2 describe-instances --instance-ids INSTANCE_ID --query 'Reservations[].Instances[].Tags[?Key==`Name`].Value' --output text
- 全てのインスタンスの情報を取得
aws ec2 describe-instances | jq '.Reservations[].Instances[]'
- 全てのインスタンスの Public IP と Public DNS Name を取得
aws ec2 describe-instances | jq '.Reservations[].Instances[] | {PublicDnsName, PublicIpAddress}'
- 全てのインスタンスのタグ名を取得
aws ec2 describe-instances | jq '.Reservations[].Instances[]|{InstanceId, Tags}'
- インスンタンスへ ssh でアクセスするのに必要な情報を取得
aws ec2 describe-instances --filters Name=tag-value,Values="XXXX" |jq '.Reservations[].Instances[]|{InstanceId,PublicIpAddress,PrivateIpAddress,Tags}'
- PublicIpAddressを取得
aws ec2 describe-instances | jq '.Reservations [] .Instances [] .PublicIpAddress'
- インスタンスIDを取得
aws ec2 describe-instances | jq -r '.Reservations[] .Instances[] .InstanceId'
aws ec2 describe-instances | jq '.Reservations[] .Instances[] .InstanceId'
- Elastic IPの一覧を取得
aws ec2 describe-addresses| jq '.'
- PublicDnsName, PublicIpAddress, Tagsの一覧を取得
aws ec2 describe-instances | jq '.Reservations[].Instances[] | {PublicDnsName, PublicIpAddress, Tags}'
- AutoScalingで起動しているインスタンスの状態,InstanceID,PublicDnsName,PublicIpAddressの一覧を取得
aws ec2 describe-instances --filters "Name=tag:aws:autoscaling:groupName,Values=YOUR AUTOSCALING GROUP NAME" | jq '.Reservations[].Instances[] | {State, InstanceId, PublicDnsName, PublicIpAddress}'
- 自分で作成したAMIのName,ImageIdの一覧を取得
aws ec2 describe-images --owners self | jq '.Images[] | {Name, ImageId}'
- 自分で作成したAMIに特定のtagが付いているName,ImageIdの一覧を取得
aws ec2 describe-images --owners self --filter Name=tag-key,Values=YOUR TAG NAME Name=tag-value,Values=YOUR TAG VALUES | jq '.Images[] | {Name, ImageId}'
- 自分で作成したSnapshotに特定のtagが付いているSnapshotIdの一覧を取得
aws ec2 describe-snapshots --filter Name=tag-key,Values=YOUR TAG NAME Name=tag-value,Values=YOUR TAG VALUES | jq '.Snapshots[] .SnapshotId'
- 東京リージョンのEBSのVolumeId,SnapshotId,Sizeの一覧を取得
aws ec2 describe-volumes --region ap-northeast-1 | jq '.Volumes[]| {VolumeId, SnapshotId, Size}'
- 対象のAutoScalingグループで稼働中のインスタンスIDを取得
aws ec2 describe-instances --filter 'Name=tag:aws:autoscaling:groupName,Values=demo-asg' "Name=instance-state-name,Values=running" | jq '.Reservations[].Instances[] | {InstanceId}'
- Auto Scaling グループのインスタンスの更新(min, max変更)
aws autoscaling update-auto-scaling-group --auto-scaling-group-name demo-asg --min-size 2 --max-size 8
- AutoScalingスケジュール実行
aws autoscaling put-scheduled-update-group-action --auto-scaling-group-name demo-asg --scheduled-action-name "demo-scaling-1100-1500" --recurrence "0 2 * * *" --min-size 2 --max-size 8 --desired-capacity 3
- AutoScalingグループに設定されたインスタンスの設定
aws autoscaling describe-auto-scaling-groups --auto-scaling-group-names demo-asg | jq '.AutoScalingGroups[] | {MinSize, DesiredCapacity, MaxSize}'
- AWS EC2 で取得しているグローバルIP(Elastic IP)を CLI で一覧する
aws ec2 describe-addresses | jq '.[] | .[] | .PublicIp' | sed 's/\"//g'
- (add 2016/07/29) セキュリティグループID指定して設定内容確認
aws ec2 describe-security-groups --query 'SecurityGroups[?GroupId==`sg-12345678`]'
- (add 2016/11/15) 停止しているインスタンスIDの一覧を確認
aws ec2 describe-instances --filter "Name=instance-state-name,Values=stopped" --query 'Reservations[].Instances[].[InstanceId]'
- (add 2016/11/15) 削除保護を無効化
aws ec2 modify-instance-attribute --instance-id i-xxxxxx --no-disable-api-termination
- (add 2017/02/20) Parameter Storeの値設定
# 文字列
aws ssm put-parameter --name dev.db_user --type String --value devdbuser --region ap-northeast-1
# 安全な文字列
aws ssm put-parameter --name dev.db_password --type SecureString --value password --region ap-northeast-1
- (add 2017/02/20) Parameter Storeの値取得
aws --region ap-northeast-1 ssm get-parameters --name dev.db_password --with-decryption
aws --region ap-northeast-1 ssm get-parameters --name dev.db_user --with-decryption
aws --region ap-northeast-1 ssm get-parameters --name dev.db_user --with-decryption --query "Parameters[0].Value" --output text
aws --region ap-northeast-1 ssm get-parameters --name dev.db_password --with-decryption --query "Parameters[0].Value" --output text
- (add 2017/03/02) AMI作成(タイムスタンプ付き)
aws ec2 --region ap-northeast-1 create-image --instance-id i-xxxxx --name base-$(date +%Y%m%d%H%M%S) --description 'created by '$(date +%Y%m%d%H%M%S) --no-reboot
- (add 2017/03/02) EBSスナップショット作成(タイムスタンプ付き)
aws ec2 --region ap-northeast-1 create-snapshot --volume-id vol-xxxxx --description 'created by '$(date +%Y%m%d%H%M%S)
- (add 2017/03/15) セキュリティグループのInboundへ追加
aws --region ap-northeast-1 ec2 authorize-security-group-ingress --group-id sg-xxxxxxxx --protocol tcp --port 80 --cidr 192.168.10.1/32
- (add 2017/03/15) セキュリティグループのInboundから削除
aws --region ap-northeast-1 ec2 revoke-security-group-ingress --group-id sg-xxxxxxxx --protocol tcp --port 80 --cidr 192.168.10.1/32
- (add 2017/09/04) 特定のタグが付いた起動中のインスタンスのprivate ipを取得する
aws ec2 describe-instances --filter "Name=tag-key,Values=prj" "Name=tag-value,Values=demo" --query 'Reservations[].Instances[?State.Name==`running`].PrivateIpAddress[]' --region ap-northeast-1
ELB
- ELBに紐付いているInstanceId,Statusを一覧取得
aws elb describe-instance-health --load-balancer-name YOUR ELB NAME | jq '.InstanceStates[]|{InstanceId, State}'
RDS
- RDSのインスタンスを取得
aws rds describe-db-instances
- RDSのEndPointとDB Instance Identifierを取得
aws rds describe-db-instances | jq '.DBInstances[] |{DBInstanceIdentifier,Endpoint}'
- RDS SnapshotのDBSnapshotIdentifier,DBInstanceIdentifierの一覧を取得
aws rds describe-db-snapshots | jq '.DBSnapshots[] | {DBSnapshotIdentifier, DBInstanceIdentifier}'
- RDSのログ一覧取得
aws rds describe-db-log-files --db-instance-identifier demo-db | jq '.DescribeDBLogFiles[].LogFileName'
- RDSのログダウンロード
aws rds download-db-log-file-portion --db-instance-identifier demo-db --region ap-northeast-1 --log-file-name "slowquery/mysql-slowquery.log" --output text
- (add 2017/02/20) RDSのマスターパスワード再設定
aws rds modify-db-instance --db-instance-identifier demo-db --master-user-password 'xxxxxxx' --region ap-northeast-1
S3
- バケット一覧
aws s3api list-buckets | jq '.Buckets[] .Name'
- バケットの使用量
aws s3 ls s3://demo --recursive --human-readable --summarize --region ap-northeast-1
VPC
- VPC一覧を取得
aws ec2 describe-vpcs | jq '.Vpcs[]'
- Subnet一覧を取得
aws ec2 describe-subnets | jq '.Subnets[]'
- RouteTable一覧を取得
aws ec2 describe-route-tables | jq '.RouteTables[]'
IAM
- ユーザ一覧を取得
aws iam list-users
- 自分のAWSアカウントID確認
aws sts get-caller-identity
- ELBへ証明書アップロード
aws iam upload-server-certificate --server-certificate-name monoqn-20170512 --certificate-body file://my-crt.pem --private-key file://my-key.pem --certificate-chain file://my-chain.pem
Elastic Beanstalk
- ApplicationName,EnvironmentName,VersionLabel,EndpointURL,CNAMEを一覧取得
aws elasticbeanstalk describe-environments | jq '.Environments[] | {ApplicationName, EnvironmentName, VersionLabel, EndpointURL, CNAME}'
- 特定の環境で起動しているEC2インスタンスIDを取得
aws elasticbeanstalk describe-environment-resources --environment-name YOUR ENVIRONMENT NAME | jq '.EnvironmentResources.Instances[].Id'
CloudTrail
- 東京リージョンのCloudTrailで出力しているS3bucketを取得
aws cloudtrail describe-trails --region ap-northeast-1 | jq '.trailList[] .S3BucketName'
ESC
- 最新のECS-optimized AMI ID取得
aws ssm get-parameters --names "/aws/service/ecs/optimized-ami/amazon-linux/recommended" --query "Parameters[0].Value" --output text --region ap-northeast-1 | jq -r .image_id
その他便利なコマンド
- 自分のグローバルIPを取得
curl -s ipinfo.io | jq -r '.ip'
curl ifconfig.me
curl http://checkip.amazonaws.com/
- 自分のローカルIPを取得
ifconfig en0 | grep inet
2017/01/24 追記
こういうGitHubのrepository見つけました。
https://github.com/awslabs/awscli-aliases
これめっちゃ便利です!!おすすめします。