There are two actors in cloud computing environment cloud providers and cloud users. On one hand cloud providers hold enormous computing resources in the cloud large data centers that rent the resources out to the cloud users on a pay-per-use basis to maximize the profit by achieving high resource utilization. On the other hand cloud users who have applications with loads variation and lease the resources from the providers they run their applications within minimum expenses. One of the most critical issues of cloud computing is resource management in infrastructure as a service (IaaS). Resource management related problems include resource allocation, resource adaptation, resource brokering, resource discovery, resource mapping, resource modeling, resource provisioning and resource scheduling. In this review we investigated resource allocation schemes and algorithms used by different researchers and categorized these approaches according to the problems addressed schemes and the parameters used in evaluating different approaches. Based on different studies considered, it is observed that different schemes did not consider some important parameters and enhancement is required to improve the performance of the existing schemes. This review contributes to the existing body of research and will help the researchers to gain more insight into resource allocation techniques for IaaS in cloud computing in the future.