While elastic IPs are free for an active instance, AWS does charge for unused EIPs[1]. (You can also set a public IP on an instance, but it can change when the instance is restarted.) So if you need to hold on to an IPv4 address, it's going to cost you.
That seems like it's exactly the same model as GCP.
That seems like it's exactly the same model as GCP.
[1]: https://aws.amazon.com/premiumsupport/knowledge-center/elast...