We study a basic resource allocation problem that arises in cloud computing environments. The physical network of the cloud is represented as a graph with vertices representing servers and edges corresponding to communication links. A workload is a set of processes with processing requirements and mutual communication requirements. The workloads arrive and depart over time, and the resource allocator must map each workload upon arrival to the physical network. We consider the objective of minimizing the congestion. We show that solving a subproblem (SingleMap) about mapping a single workload to the physical graph essentially suffices for solving the general problem. In particular, an a-approximation algorithm for SingleMap gives an O(a log nD) competitive algorithm for the general problem, where n is the number of nodes in the physical network and D is the maximum to minimum workload duration ratio. We then consider the SingleMap problem for two natural classes of workloads, namely depth-d trees and complete-graph workloads. For depth-d trees, we give an nO(d) time O(d<sup>2</sup> log(nd))-approximation algorithm based on a strong LP relaxation inspired by the Sherali-Adams hierarchy. For complete graphs, we give a polylogarithmic approximation algorithm using Racke decompositions.