Uma instância ec2 pode ser identificada por seu id de instância, que nunca será alterado, não importa quantas vezes você pare e inicie a instância. Então, você pode tentar fazer isso se tiver um ID de instância e precisar do endereço IP dele.
Para endereço IP público:
aws ec2 describe-instances --instance-ids i-b78a096f | grep PublicIpAddress | awk -F ":" '{print $2}' | sed 's/[",]//g'
Para o endereço IP privado:
aws ec2 describe-instances --instance-ids i-b78a096f | grep PrivateIpAddress | head -1 | awk -F ":" '{print $2}' | sed 's/[",]//g'
Ainda assim, eu pessoalmente acho que seria muito melhor se você tentasse a mesma coisa em python. Eu implementei a mesma lógica em minha organização anterior com a biblioteca de botons python e foi muito mais simples e gerenciável.
configurando env virtual:
#!/usr/bin/env bash
set -e
HOME_DIR=/home/$(whoami)
#Dependencies
sudo apt-get install ncurses-devel patch openssl openssl-devel zlib-devel
# Install python locally
mkdir -p $HOME_DIR/src
mkdir -p $HOME_DIR/.localpython
cd $HOME_DIR/src
wget https://www.python.org/ftp/python/2.7.8/Python-2.7.8.tgz
tar -zxvf Python-2.7.8.tgz
cd Python-2.7.8
./configure --prefix=$HOME_DIR/.localpython
make
make install
# Install virtualenv locally
cd $HOME_DIR/src
wget --no-check-certificate https://pypi.python.org/packages/source/v/virtualenv/virtualenv-1.11.6.tar.gz#md5=f61cdd983d2c4e6aeabb70b1060d6f49
tar -zxvf virtualenv-1.11.6.tar.gz
cd virtualenv-1.11.6/
~/.localpython/bin/python setup.py install
# Create a test virtual environment
mkdir -p $HOME_DIR/virtualenvs
cd $HOME_DIR/virtualenvs
~/.localpython/bin/virtualenv my_virtual_env --python=$HOME_DIR/.localpython/bin/python2.7
cd my_virtual_env
source bin/activate
pip install awscli