【AWS-CLI】AMI作成後に利用可能まで待機

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

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

手順

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

 

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

AMI_ID=`aws ec2 create-image --instance-id ${INSTANCE_ID} --name ${AMI_NAME} --reboot`

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

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

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

コメントを残す

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