概要
AWS EC2を使用する時によく使うコマンドをまとめる。
個人でEC2を使う際、AWS Consoleを都度開くのがめんどくさいので、それを簡略化する目的のコマンドが主です。
・EC2インスタンスのIPアドレスなどの情報参照
・EC2インスタンスの起動/停止
前提条件
・実行端末OS: macOS 10.13.6
・AWSコマンド実行するための準備が整っていること
→公開鍵の配置など色々あったかと思います。。
よく使うコマンド
情報取得系
パブリックIPアドレスの一覧を取得
$ aws ec2 describe-instances --query "Reservations[].Instances[].PublicIpAddress"
インスタンスIDを取得
aws ec2 describe-instances --query "Reservations[].Instances[].InstanceId"
出力をスペース区切りで取得(後ほどのインスタンス起動/停止のコマンド実行時に使用すると便利)
先の方法だと一見スペース(タブ?)区切りで出力されたように見えるが、コピー&ペーストするとスペースがなくなる。
aws ec2 describe-instances --query "Reservations[].Instances[].InstanceId" | sed -e s/i/" i"/g
インスタンス名を取得
$ aws ec2 describe-instances --query "Reservations[].Instances[].Tags[?Key=='Name'].Value"
インスタンス名とパブリックIPアドレスを取得
テキストだと見づらいのでjson形式を指定しています。
aws ec2 describe-instances --query "Reservations[].Instances[].[Tags[?Type=="Name"].Value,PublicIpAddress]" --outpu json
インスタンス名とパブリックIPアドレス/プライベートIPアドレスを取得
$ aws ec2 describe-instances --query "Reservations[].Instances[].[Tags[?Type=="Name"].Value,PublicIpAddress,PrivateIpAddress]" --output json
起動や停止
起動
$ aws ec2 start-instances --instance-ids (インスタンスidをスペース区切りで)
ex. aws ec2 start-instances --instance-ids i-abcdef0123456789 i-abcdef0123456788
停止
$ aws ec2 stop-instances --instance-ids (インスタンスidをスペース区切りで)
ex. aws ec2 stop-instances --instance-ids i-abcdef0123456789 i-abcdef0123456788