Optimizing Cost for Online Social Networks on Geo-Distributed Clouds