To investigate challenges of multi -tier application migration to Infrastructure -as-a- Service (IaaS) clouds we performed an experimental investigation by deploying a processor bound and input -output bound variant of the RUSLE2 erosion model to an IaaS base d private cloud. Scaling the applications to achieve optimal system throughput is complex and involves much more than simply increasing the number of allotted virtual machines (VMs). While scaling the application variants a series of bottlenecks were encountered unique to an application's processing, I/O, and memory requirements, herein referred to as an application's profile. To investigate the impact of provisioning variation for hosting multi -tier applications we tested four schemes of VM deployments across the physical nodes of our cloud. Performance degradation was more pronounced when multiple I/O or CPU resource intensive application components were co -located on the same physical hardware. We investigated the virtualization overhead incurred using Kernel -based virtual machines (KVM) by deploying our application variants to both physical and virtual machines. Overhead varied based on the unique characteristics of each application's profile. We observed ~112% overhead for the input/output bound application and just ~ 10 % overhead for the processor bound application. Understanding an application's profile was found to be important for optimal IaaS -based cloud migration and scaling.