スズキです。

下記に引き続き、cloud-init(runcmd) で実現してみました。

"Amazon Linux"で起動時に任意のユーザーを作って任意の公開鍵(SSH)を登録する

※変数の受け渡し方がよくわからず、一時ファイルに書き出してしまいました。。

#cloud-config
runcmd:
- [sh, -c, 'curl -s http://169.254.169.254/latest/meta-data/instance-id > /tmp/tmp_instance_id.txt']
- [sh, -c, 'curl -s http://169.254.169.254/latest/meta-data/placement/availability-zone | sed s/.$// > /tmp/tmp_region.txt']
- [sh, -c, 'aws ec2 associate-address --public-ip xxx.xxx.xxx.xxx --region `cat /tmp/tmp_region.txt` --instance-id `cat /tmp/tmp_instance_id.txt`']
- [sh, -c, 'rm -f /tmp/tmp_instance_id.txt']
- [sh, -c, 'rm -f /tmp/tmp_region.txt']

こちらの記事はなかの人(suz-lab)監修のもと掲載しています。
元記事は、こちら