This is a highly technical post on the provisioning of cloud services. I am linking here because it is essential to be aware of issues related to misconfiguration and as a result the bills mount rapidly.
This is the author’s explanation:
In hindsight, I made a poor decision to distribute a trial Windows 2019 SQL Server virtual machine images (fully patched with all necessary drivers and VM extensions) in the form of a qcow2 file. Someone became aware of the existence of this VM image. They then stood up hundreds, potentially thousands, of copies this VM using the internet accessible URL. This is, in theory, possible, with something like Kubernetes and Kubevirt. Given that the disk image becomes a volume mount in the corresponding VMs pod. Spin up enough copies of the VM, a single YAML file can create infinite copies of a VM. If the YAML definition directly referenced the Cloudflare or S3 URL and not a locally cached copy, you can rack up the number of times you pull down an image real quick. The qcow2 image, in this case, was 13.7 GB. But it’s trickier than that.The AWS bill heard around the world – chrisshort.net
While the on-premises solution may appear to be expensive, cloud services can rack up a pretty penny rapidly. Therefore, a mix of both approaches is required to balance the workloads.