- 目的
- aws cliでEC2の操作を行う
- 結論
- 以下のコマンドを実行するとEC2の操作ができる
- コマンド
- EC2の一覧をすべて表示する
- aws ec2 describe-instances
- EC2を名前で指定して表示する
- aws ec2 describe-instances –filters “Name=tag:Name,Values=<インスタンス名>”
- EC2のIDだけ取得する
-
# 変数設定 INSTANCE_NAME=XXX # IDを取得 INSTANCE_ID=`aws ec2 describe-instances \ --filters "Name=tag:Name,Values=${INSTANCE_NAME}" \ --query "Reservations[*].Instances[*].{Instance:InstanceId}" \ --output text` # 取得結果 echo ${INSTANCE_ID}
- 実行結果
-
(aws_cli_env) /Users/kon/Documents/07_env: echo ${INSTANCE_ID} i-XXX
-
- 実行結果
-
- EC2を起動(停止してたものを起動)
-
aws ec2 start-instances --instance-ids ${INSTANCE_ID}
- 実行結果
-
(aws_cli_env) /Users/kon/Documents/07_env: aws ec2 start-instances --instance-ids ${INSTANCE_ID} { "StartingInstances": [ { "CurrentState": { "Code": 0, "Name": "pending" }, "InstanceId": "i-XXX", "PreviousState": { "Code": 80, "Name": "stopped" } } ] }
-
- 実行結果
-
- EC2の状態を取得
-
aws ec2 describe-instance-status --instance-ids ${INSTANCE_ID}
- 起動したらこんな感じ
-
(aws_cli_env) /Users/kon/Documents/07_env: aws ec2 describe-instance-status --instance-ids ${INSTANCE_ID} { "InstanceStatuses": [ { "AvailabilityZone": "ap-northeast-1a", "InstanceId": "i-XXX", "InstanceState": { "Code": 16, "Name": "running" }, "InstanceStatus": { "Details": [ { "Name": "reachability", "Status": "passed" } ], "Status": "ok" }, "SystemStatus": { "Details": [ { "Name": "reachability", "Status": "passed" } ], "Status": "ok" } } ] } (aws_cli_env) /Users/kon/Documents/07_env:
-
- 起動したらこんな感じ
-
- EC2を停止
-
aws ec2 stop-instances --instance-ids ${INSTANCE_ID}
- 止めた後の状態
-
(aws_cli_env) /Users/kon/Documents/07_env: aws ec2 stop-instances --instance-ids ${INSTANCE_ID} { "StoppingInstances": [ { "CurrentState": { "Code": 80, "Name": "stopped" }, "InstanceId": "i-XXX", "PreviousState": { "Code": 80, "Name": "stopped" } } ] }
- stoppedになってればOK
-
- EC2の一覧をすべて表示する