【AWS-CLI】インスタンス作成後に利用可能まで待機

AWS-CLIでインスタンス作成を実行後に利用可能になるまで待機したい時があります。

そんな時の対処法はこちら!

手順

  1. while文で無限ループを作成
  2. aws-cliのdescribe-instancesでAMIの状態を取得する
  3. 取得した情報にrunningが含まれているか確認
  4. 含まれていればwhile文終了、無ければ5秒待ってループバック

 

実際のコードはこちらです。

コード
INSTANCE_ID=`aws ec2 run-instances \
             --image-id ${AMI_ID} --instance-type ${INSTANCE_TYPE} \
             --subnet-id ${SUBNET_ID} --block-device-mappings "${STORAGE}" \
             --key-name ${KEY_NAME} --security-group-ids ${SECURITY_GROUP_IDS} \
             --query "Instances[].InstanceId"`

if [ ${INSTANCE_ID} != "" ]; then
  echo -n "Instance is pending"
  while true
  do
    if [[ `aws ec2 describe-instances --instance-ids ${INSTANCE_ID} | grep "running"` ]]; then
      echo
      break
    else
      echo -n "."
      sleep 5s
    fi
  done
else
  echo "Error : Couldn't make Instance"
  exit 1
fi
 
最初にインスタンスを作成するコマンドからInstance IDが渡され、先ほど説明したロジックが実装されています。

ループが終了すれば、インスタンスは保留中(pending)状態ではなく利用可能(running)状態になり、他のスクリプトやコマンドで影響が出ないようになります。

AWS-CLIでAMI作成後の待機方法を知りたい方はこちら↓
【AWS-CLI】AMI作成後に利用可能まで待機

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です