よく使う便利なコマンドと思ったものを置いています。タイトルだけのものは、後々追記する心算です。

AWS CLIはversion2です。

EC2関連

EC2インスタンス情報を取得

>aws2 ec2 describe-instances
RESERVATIONS    856919177685    r-02cd5a2e14133b529
INSTANCES       0       x86_64          False   True    xen     ami-0af1df87db7b650f4   i-033cf72c000c9d000     t2.micro        XXXdev        2020-03-10T12:41:49+00:00       ip-172-31-45-XXX.ap-northeast-1.compute.internal        172.31.45.XXX   ec2-13-230-220-XXX.ap-northeast-1.compute.amazonaws.com 13.230.220.XXX  /dev/xvda       ebs     True            subnet-f10ec000 hvm     vpc-000f9000
BLOCKDEVICEMAPPINGS     /dev/xvda
EBS     2020-03-10T12:41:50+00:00       True    attached        vol-0c6b735844501ef34
CAPACITYRESERVATIONSPECIFICATION        open
CPUOPTIONS      1       1
HIBERNATIONOPTIONS      False
METADATAOPTIONS enabled 1       optional        applied
MONITORING      disabled
NETWORKINTERFACES               interface       06:8b:b2:ed:cd:50       eni-0198d6312e62cc000   856919177685    ip-172-31-45-XXX.ap-northeast-1.compute.internal        172.31.45.XXX   True    in-use  subnet-f10ec000 vpc-000f9000
ASSOCIATION     amazon  ec2-13-230-220-XXX.ap-northeast-1.compute.amazonaws.com 13.230.220.XXX
ATTACHMENT      2020-03-10T12:41:49+00:00       eni-attach-0d1c6bd0913778XXX    True    0       attached
GROUPS  sg-01e7ee2a705b80e06    launch-wizard-2
PRIVATEIPADDRESSES      True    ip-172-31-45-XXX.ap-northeast-1.compute.internal        172.31.45.XXX
ASSOCIATION     amazon  ec2-13-230-220-XXX.ap-northeast-1.compute.amazonaws.com 13.230.220.XXX
PLACEMENT       ap-northeast-1a         default
SECURITYGROUPS  sg-01e7ee2a705b80e06    launch-wizard-2
STATE   16      running


EC2インスタンスのステータスのみを取得

>aws2 ec2 describe-instance-status
INSTANCESTATUSES        ap-northeast-1a i-033cf72c979c9d3c6
INSTANCESTATE   16      running
INSTANCESTATUS  ok
DETAILS reachability    passed
SYSTEMSTATUS    ok
DETAILS reachability    passed
INSTANCESTATUSES        ap-northeast-1a i-0d6e886142efc2ae6
INSTANCESTATE   16      running
INSTANCESTATUS  ok
DETAILS reachability    passed
SYSTEMSTATUS    ok
DETAILS reachability    passed


すべてのEC2のステータスを表示する

>aws2 ec2 describe-instance-status
INSTANCESTATUSES        ap-northeast-1a i-095bbc14221XXXXX
INSTANCESTATE   16      running
INSTANCESTATUS  ok
DETAILS reachability    passed
SYSTEMSTATUS    ok
DETAILS reachability    passed

補足 aws2 ec2 describe-instancesコマンドはアプトプットされる情報が多いので、filterするとか、–output tableオプションをつけてやるとかしたほうが見やすくなります。


公開パラメーターストアから最新のAMD IDを取得する。

>aws2 ssm get-parameter --name /aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2 --query Parameter.Value --region ap-northeast-1
   ami-052652af12b58691f


EC2のAZ、インスタンスID、Nameを取得する。

>aws2 ec2 describe-instances --filter Name=tag-key,Values=Name --query "Reservations[*].Instances[*].{Instance:InstanceId,AZ:Placement.AvailabilityZone,Name:Tags[?Key=='Name']|[0].Value}"
ap-northeast-1c i-0ce0380baXXXXZZZZ     hogehoge-instance-private
ap-northeast-1a i-083c40886XXXXZZZZ     hogehoge-instance-public
ap-northeast-1a i-096dd9d3bXXXXZZZZ     hogehoge-instance-private
ap-northeast-1a i-095bbc142XXXXZZZZ     hogehoge-public
ap-northeast-1a i-0eb8057daXXXXZZZZ     hogehoge-test
ap-northeast-1a i-0188f3352XXXXZZZZ     hogehoge-instance-public2

全てのEC2インスタンスの Public IP と Public DNS Name を取得

全てのEC2インスタンスのタグ名を取得

EC2インスタンスのNameタグを取得する

EC2インスンタンスへ ssh でアクセスするのに必要な情報を取得

EC2 で取得しているグローバルIP(Elastic IP)を CLI で一覧する

停止しているEC2インスタンスIDの一覧を確認

AutoScalingで起動しているインスタンスの状態,InstanceID,PublicDnsName,PublicIpAddressの一覧を取得

 EC2の削除保護を無効化

AMI作成(タイムスタンプ付き)

Security Group

セキュリティグループの追加:Inbound

セキュリティグループの削除:Inbound

Snapshot関連

SnapshotIdの一覧を取得

s3

s3バケットの一覧を表示

$aws2 s3 ls
2020-03-19 15:47:53 cf-templates-hoge-ap-northeast-1
2020-03-18 14:25:19 hoge-bucket
2020-03-19 11:23:39 hoge-bucket2
2020-03-19 17:55:14 hoge-test-s3bucket-1na34p8a8xxxx

s3バケットの作成

$aws2 s3 mb s3://test-appswingby
make_bucket: test-appswingby

[注意]s3の名前空間は、すべてのユーザーと共有されている為、同じ名前のバケットを作成することができません。因みに既に同じ名前のバケット名が存在していると、以下のエラーが返ってきます。

$aws2 s3 mb s3://test
make_bucket failed: s3://test An error occurred (BucketAlreadyExists) when calling the CreateBucket operation: The requested bucket name is not available. The bucket namespace is shared by all users of the system. Please select a different name and try again.

s3バケットの削除

$aws2 s3 rb s3://test-appswingby
remove_bucket: test-appswingby

上記コマンドでは、バケットの中が空である必要があります。バケット内にサブフォルダやオブジェクトが残っている場合には、 –force をつけることで削除することができます。

$aws2 s3 rb s3://test-appswingby --force

※mbは、make bucket の略。rbはremove bucketの略。だと思う。

ローカルからs3バケットへのファイルコピー

$aws2 s3 cp s3sync_test.txt s3://test-appswingby
upload: .s3sync_test.txt to s3://test-appswingby/s3sync_test.txt

ローカルフォルダとs3バケットの同期

$aws2 s3 sync C:Usersusershoge s3://test-appswingby
upload: .s3sync_test.txt to s3://test-appswingby/s3sync_test.txt

※更新されているファイルがない場合は、特に何も表示されることなくコマンドが終了します。

s3バケット内にあるオブジェクト(ファイル)の削除

$aws2 s3 rm s3://test-appswingby/s3sync_test.txt
delete: s3://test-appswingby/s3sync_test.txt