EC2インスタンス"handson-cli-ec2-ebs-instance"を停止します。
手順に必要な設定値を変数に格納をします。
0. リージョンの指定
リージョンを指定します。
環境変数の設定: export AWS_DEFAULT_REGION='ap-northeast-1'
環境変数の設定:
export AWS_DEFAULT_REGION='ap-northeast-1'
1. EC2インスタンス名の指定
EC2インスタンス名を指定します。
変数の設定: EC2_INSTANCE_TAG_NAME='handson-cli-ec2-ebs-instance'
変数の設定:
EC2_INSTANCE_TAG_NAME='handson-cli-ec2-ebs-instance'
各変数に正しい設定値が格納されていることを確認しながら保存します。
変数の確認: cat << END # 0. AWS_DEFAULT_REGION:"ap-northeast-1" AWS_DEFAULT_REGION="${AWS_DEFAULT_REGION}" # 1. EC2_INSTANCE_TAG_NAME:"handson-cli-ec2-ebs-instance" EC2_INSTANCE_TAG_NAME="${EC2_INSTANCE_TAG_NAME}" END
変数の確認:
cat << END # 0. AWS_DEFAULT_REGION:"ap-northeast-1" AWS_DEFAULT_REGION="${AWS_DEFAULT_REGION}" # 1. EC2_INSTANCE_TAG_NAME:"handson-cli-ec2-ebs-instance" EC2_INSTANCE_TAG_NAME="${EC2_INSTANCE_TAG_NAME}" END
下段の変数が入っていない、もしくは上段と同等の値が入っていない場合は、それぞれの手順番号に戻って変数の設定を行います。
EC2インスタンスIDを取得します。
コマンド: ARRAY_EC2_INSTANCE_IDS=$( \ aws ec2 describe-instances \ --filters Name=tag:Name,Values=${EC2_INSTANCE_TAG_NAME} \ Name=instance-state-name,Values=running \ --query Reservations[].Instances[].InstanceId \ --output text \ ) \ && echo ${ARRAY_EC2_INSTANCE_IDS} 結果(例): i-xxxxxxxxxxxxxxxxx
コマンド:
ARRAY_EC2_INSTANCE_IDS=$( \ aws ec2 describe-instances \ --filters Name=tag:Name,Values=${EC2_INSTANCE_TAG_NAME} \ Name=instance-state-name,Values=running \ --query Reservations[].Instances[].InstanceId \ --output text \ ) \ && echo ${ARRAY_EC2_INSTANCE_IDS}
結果(例):
i-xxxxxxxxxxxxxxxxx
EC2インスタンスを停止します。
変数の確認: cat << END # ARRAY_EC2_INSTANCE_IDS:"i-xxxxxxxxxxxxxxxxx" ARRAY_EC2_INSTANCE_IDS="${ARRAY_EC2_INSTANCE_IDS}" END コマンド: aws ec2 stop-instances \ --instance-ids ${ARRAY_EC2_INSTANCE_IDS} 結果(例): { "StoppingInstances": [ { "CurrentState": { "Code": 64, "Name": "stopping" }, "InstanceId": "i-xxxxxxxxxxxxxxxxx", "PreviousState": { "Code": 16, "Name": "running" } } ] }
cat << END # ARRAY_EC2_INSTANCE_IDS:"i-xxxxxxxxxxxxxxxxx" ARRAY_EC2_INSTANCE_IDS="${ARRAY_EC2_INSTANCE_IDS}" END
aws ec2 stop-instances \ --instance-ids ${ARRAY_EC2_INSTANCE_IDS}
{ "StoppingInstances": [ { "CurrentState": { "Code": 64, "Name": "stopping" }, "InstanceId": "i-xxxxxxxxxxxxxxxxx", "PreviousState": { "Code": 16, "Name": "running" } } ] }
「EC2インスタンス名"handson-cli-ec2-ebs-instance"が停止している。」ことを確認します。
コマンド: aws ec2 describe-instances \ --instance-ids ${ARRAY_EC2_INSTANCE_IDS} \ --query 'Reservations[].Instances[].State.Name' \ --output text 結果(例): stopped
aws ec2 describe-instances \ --instance-ids ${ARRAY_EC2_INSTANCE_IDS} \ --query 'Reservations[].Instances[].State.Name' \ --output text
stopped