  We study the problem of maximizing the average hourly profit earned by a
Software-as-a-Service (SaaS) provider who runs a software service on behalf of
a customer using servers rented from an Infrastructure-as-a-Service (IaaS)
provider. The SaaS provider earns a fee per successful transaction and incurs
costs proportional to the number of server-hours it uses. A number of resource
allocation policies for this or similar problems have been proposed in previous
work. However, to the best of our knowledge, these policies have not been
comparatively evaluated in a cloud environment. This paper reports on an
empirical evaluation of three policies using a replica of Wikipedia deployed on
the Amazon EC2 cloud. Experimental results show that a policy based on a
solution to an optimization problem derived from the SaaS provider's utility
function outperforms well-known heuristics that have been proposed for similar
problems. It is also shown that all three policies outperform a "reactive"
allocation approach based on Amazon's auto-scaling feature.
