Migrating business applications to cloud can be costly, laborintensive, and error-prone due to the complexity of business applications, the constraints of the clouds, and the limitations of existing migration techniques provided by migration service vendors. However, the emerging software-as-aservice offering model of migration services makes it possible to combine multiple migration services for a single migration task. In this paper, we propose a novel migration service composition approach to achieve a costeffective migration solution. In particular, we first formalize the migration service composition problem into an optimization model. Then, we present an algorithm to determine the optimal composition solution for a given migration task. Finally, using synthetic trace driven simulations, we validate the effectiveness and efficiency of the proposed optimization model and algorithm.