Try rebooting your instance to resolve the
If you don't want to use an EIP, make sure that your subnet automatically assigns a public IP to your instance on launch - i.e., the following checkbox should be checked:
Or if you prefer the cli:
aws ec2 modify-subnet-attribute --subnet-id <your-subnet-id> --map-public-ip-on-launch
Note that, as far as I know, a public IP is only assigned at launch - you can't attach a public IP to a pre-existing EC2 instance (but you could still attach another EIP).