1. A method for automated elastic scaling of a number of compute instances used to execute jobs in a cloud computing environment, comprising: estimating a work volume to be performed based on a rate of job arrival and job execution times; and dynamically adapting the number of compute instances in the cloud computing environment based on the work volume to simultaneously minimize a completion time for each job and minimize a monetary cost of resources used to complete each job.