Should I use public IP or private IP for connecting servers within the same VPC?

Hooman Bahreini asked:

I have 2 Linux servers on AWS. Both servers are in the default vpc (aws default vpc). Both of these servers have their own Elastic IP. I also have a webServer which is inside the same vpc.

I want to run a replicated MySQL on these 2 servers, so one server would be master and the other slave.

I need to provide an ip address for each MySQL server, so in my.cnf, there is a setting: bind-address

Should I use the public or private IP for the bind-address or the private IP? (All the computers who need access to MySQL server are in the same vpc).

Note both servers are in the same Security Group and I have opened all the ports within the security group.

My answer:

You should use internal IP addresses for your instances to talk to each other. If you use their public or elastic IP addresses, you are charged for in-region network data transfer. There is no charge for using the private IP addresses.

View the full question and any other answers on Server Fault.

Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.