In our VPC we have the following configuration. The available IPv4 addresses for each subnet is 251, we have 3 public subnets. Are we doing to be charged for these (whether they are used or not)
2024 there will be a charge of $0.005 per IP per hour for all public IPv4 addresses, whether attached to a service or not (there is already a charge for public IPv4 addresses you allocate in your account but don't attach to an EC2 instance).
Read the AVG link. Having a public subnet likely means one with private IPs, with a routing table having a default (0.0.0.0/0) route via an Internet Gateway. If you deploy an EC2 in that subnet, and choose “map a public IP”, then it gets both an RFC1918 private IP (e.g. 10.0.4.1 for you) and a public IP.