I've been making us use a NAT gateway for all of our EC2 instances since the dawn of time. Only those that need to be directly touched on specific ports get dedicated IPv4. I can count all of our public IPv4 addresses on 1 hand, and that includes a static comcast address for a branch office.
Using auto-assigned IPv4 should not be default, IMO. If I just did what amazon wanted me to without thinking, we would be consuming 5-6x more IPv4 addresses than we otherwise need to.
Do you have any Internet-facing load balancers? IIUC, each AWS application load balancer gets a couple of public IPv4 addresses. So I guess if you have a single ALB and a couple of NAT gateways (in two availability zones), you could still end up with a total of 5 public IPv4 addresses.
Last time I set up an ALB, it required 8 IP addresses. I assume that is because it spins up extra instances on the backend as the load increases. Most of the time the hostname is only assigned to 2 IPs.
Using auto-assigned IPv4 should not be default, IMO. If I just did what amazon wanted me to without thinking, we would be consuming 5-6x more IPv4 addresses than we otherwise need to.