In this paper, we describe a resource assignment problem (RAP) for a large-scale computing utility, such as an Internet data center. The problem is defined as follows: For a given topology of a network consisting of switches and servers with varying capabilities, and for a given application with a distributed architecture, decide which server from the physical network should be assigned to each application component, such that the traffic-weighted average inter-server distance is minimized, and the application's processing, communication and storage requirements are satisfied without exceeding network capacity limits. This problem is first formulated as a nonlinear combinatorial optimization problem. We then describe three mixed integer programming formulations, RAP-LINI, RAP-LINII, and RAP-MCFM, as the result of different linearization techniques. These models were numerically tested using CPLEX on a number of examples, ranging from a 125-server utility data center to a set of hypothetical data centers with increasing size. In all cases and for all three models, the CPELX solver was able to find an optimal solution within reasonable amount of time. RAP-LINII is the most efficient and required the minimum solution time. RAP-MCFM has the highest complexity but is the most general in terms of its applicability to any network topology.