The AWS EC2 Windows Secret Sauce
&gt; Seriously though - Windows images are big - absolutely massive compared to a Linux image - we are talking 30 times larger (on the best of days) so copying these large images to the hypervisor nodes takes time.<p>No... just no.  Disks aren&#x27;t local to hypervisors.  There&#x27;s no copying going to be taking place.  EC2 instances are provisioned using EBS volumes, which aren&#x27;t going to be local to the instance itself.  EBS is likely doing a disk clone operation, and those are relatively cheap in standard filer operations.  Even large images you&#x27;re talking a drop in the ocean in terms of the overall time.<p>The main issues with Windows in a cloud environment comes from that first boot scenario.  You could get past some of that by keeping a pool of warm instances around, but it&#x27;d require a lot of work on the Windows side to handle the provisioning use case.<p>On Linux the instance boots, init processes kick off, and right at the end cloud-init creates and configures accounts with ssh keys etc. and away you go.  Typically anywhere between 30-60 seconds boot time depending on the distribution.<p>Windows isn&#x27;t that accommodating.  Images that are used in cloud environments have to be &quot;generalized&quot;.  You install it on specific hardware, and then tell it that it&#x27;s not to give a crap about hardware specifics, but oh you must have these specific drivers etc. in you.  It also tells it to clear up after yourself while it is at it.<p>First boot happens, and Windows goes through a mandatory process whereby it identifies hardware, installs and configures drivers etc. etc. etc.
You can inject a script to carry out the process of things like setting up a user, and generating a password, but that&#x27;s fairly minor on the scale of things.  This first process <i>requires</i> a reboot.  There&#x27;s no escaping it.<p>That&#x27;s really the reason why Windows provisioning takes long.<p>There&#x27;s unavoidable reboots, and unavoidable Windows driver installation and configuration, where the Linux distribution approach to the kernel makes life easier (every driver you&#x27;re likely to need is a module and available on boot... unless you&#x27;ve got dracut running in the default host-only mode and it has made you a totally stripped down initramfs.)<p>Add on that Windows booting takes longer than Linux even under optimal conditions and you end up with a slower launch.