In recent years, due to global economic downfall, many of the organisations have resorted to downsizing their Information Technology (IT) expenses by adopting innovative computing models like cloud computing, which allows business houses to reduce their fixed IT costs by promising a greener, scalable, cost-effective alternative to utilise the IT resources. A growing number of pay-per-use cloud services are now available on the web in the form of Software as a Service (SaaS), Infrastructure as a Service (IaaS) and Platform as a Service (PaaS). With the increase in the number of services, there has also been an increase in demand and adoption of cloud services making cloud service identification and discovery a challenging task. This is due to varied service, descriptions, non-standardised naming conventions, heterogeneity in type and features of cloud services. Thus, selecting an appropriate cloud service according to consumer requirements is a daunting task, especially for applications that use a composition of different cloud services. In this paper, we have designed an ontology-based cloud infrastructure service discovery and selection system that defines functional and non-functional concepts, attributes and relations of infrastructure services. We have shown how the system enables one to discover appropriate services optimally as requested by consumers.