Assign Public IP (not Elastic IP) after instance launched
When I launch instance in AWS console I can set "Auto-assign Public IP" to true and newly created instance will be assigned with public IP address from pool.
Now assume I have launched instance with this setting set to false and want to assign public IP to this instance. The same public IP as in first case, not Elastic IP.
PS I know I can launch new instance and shut down old one. I'm particularly interested in assigning to one already running.
The instance that you launched without a public IP will stay without one as it is only assignable when you launch the instance. Even having a subnet with auto assign public IP
switched on will not assign a public IP to your instance if, when you launched the instance you chose not to have a public IP.
The only way I know is to select assign a public IP
before launching the instance or having the subnet set up to auto assign public IPs which will do that only when you launch a new instance.
So to summarize:
It is not possible to assign a public IP
after launching that instance unless you use EIPs.
To correct it afterwards, spin down your original server, spin up a new with auto assign public IP enabled and the existing volumes attached.
You can then discard the original instance.