1. A non-transitory computer readable storage medium storing a program of instructions executable by a machine to perform a method of co-locating a virtual machine with nested virtualization, the method comprising: receiving by a processor, a list of virtual machine instances to co-locate and associated configuration information needed to create the virtual machine instances; consolidating virtual machine images associated with the virtual machine instances; creating a composite parent virtual machine image based on the consolidating; starting one of the virtual machine instances as a parent virtual machine instance on a host machine via the composite parent virtual machine image; starting one or more of the virtual machine instances within the parent virtual machine instance via the composite parent virtual machine image as one or more child virtual machine instances; and configuring the parent virtual machine instance and the one or more child virtual machine instances on the host machine based on the configuration information, the parent virtual machine instance configured to accommodate for capacity requirement of all of the virtual machine instances based on the configuration information, wherein the virtual machine instances to co-locate contained in the parent virtual machine image are provisioned within a single provisioning action on the host machine, wherein said configuring the parent virtual machine instance and the one or more child virtual machine instances includes setting one or more networking parameters, network address translation and firewall parameters, wherein the parent virtual machine instance receives all communications from a remote network addressed to the parent virtual machine instance and the one or more child virtual machine instances, and forwards the communications to an appropriate one or more of the child virtual machine instances.