I have services on 10 machines that stores data in database on these machines. And I have main server that needs to pull that data from these ten machines. What is better for this. Implement some rpc or use replication?
It depends on how much data you need to get and how often.
If your data has to be updated often and there aren't peaks, then Remote Procedure Call or Web Services or File Transfer are a good solution.
You could also try to post your question to: https://dba.stackexchange.com/