Cloud Computing has assumed a relevant role in the ICT, profoundly influencing the life-cycle of modern applications in the manner they are designed, developed, and operated. The Cloud market offers highly diversified services upon which developers and operators can rely. Yet, its full adoption requires specific and rare expertise. Actually, such services are characterized by a steep learning curve and, among the other aspects, by significantly different Quality of Service (QoS). In this paper, we tackle the problem of supporting the design-time performance analysis of Cloud applications and the identification of the optimal strategy for allocating components onto Cloud resources. In particular, the final goal is to set the basis to overcome the limitations of current design-alternatives search tools proposing (i) a mathematical formulation for the underlying optimization problem, i.e., determine the Cloud configuration that minimizes the execution costs of the application over a daily time horizon, fulfilling at once QoS and service allocation constraints, and (ii) a software solution able to efficiently solve the resource allocation problem. The tool, codenamed SPACE4Cloud, embodies a hybrid two-level search meta-heuristic for the efficient exploration of the design-alternatives space. The benefits of this approach are demonstrated in the context of an industrial case study. Furthermore, this work also presents results where SPACE4Cloud leads to a cost reduction up to 60%, when compared to a first-principle technique based on utilization thresholds, like the ones typically used in practice. Finally, an extensive scalability analysis indicates that our solution is able to solve large problem instances within a time frame compatible with a fast-paced design process (less than half an hour in the worst case).