I have a classic load balancer that has public ip addresses. Do the ec2 instances that it routes traffic to need public ip addresses as well, or will it successfully redirect the traffic to a private ip address? They're all located in different subnets in the same VPC.
The Classic Load Balancer allowed me to add the instances with only private ip addresses without any sort of complaints or errors.
Your internet facing load balancers need public IP addresses. Your EC2 instances do not require public IP addresses, the ELB can load balance to private IPs. Private IPs sometimes make the traffic a little cheaper than public IPs, but not 100% sure in this situation.
You seem to have already done this, so I'm curious why you didn't just try it and see what happens.