1. A computer implemented method for scaling a virtual machine, said method comprising: associating, by one or more computer systems, an account with a customer; providing, by the one or more computer systems, an application programming interface (API) to customers; receiving, by the one or more computer systems, from at least one customer via the application programming interface (API), a request to launch an instance of a virtual machine image; launching, by the one or more computer systems, the virtual machine image; provisioning, by the one or more computer systems, a virtual machine instance for the at least one customer based on the launched virtual machine image, wherein the virtual machine instance is provisioned on a host computing device; receiving, at the one or more computer systems, from the customer via the API, a customer-defined threshold associated with the virtual machine instance, wherein the customer-defined threshold is specified at the time of the provisioning of the virtual machine instance; associating, by the one or more computer systems, one or more metrics with the virtual machine instance; monitoring, by the one or more computer systems, the one or more metrics associated with the virtual machine instance during execution of the virtual machine instance; and adjusting, by the one or more computer systems, allocation of one or more computing resources to the virtual machine instance based at least in part on the one or more metrics and the received customer-defined threshold.