uh... yo no sé si sea tan buena idea usar windows salvo que corras un software propietario en la nube (¿Outlook/Sharepoint/Dynamix?). Como sea, no vas a poder correr un windows pirata. ¿Cómo lo instalarías? Las máquinas en la nube ya vienen con OS, de lo contrario no tendrías cómo levantar el daemon SSH o el escritorio remoto. (a menos que tuvieras acceso a un panel como Hypervisor donde crear tus propias máquinas, pero ese panel estaría en una máquina con sistema operativo, o no podrías acceder al panel, salvo que estuviera a su vez en otro panel...)
Dado que sólo puedes correr windows con licencia (aunque ya no valen lo mismo que el año 2002) eso vas a terminar pagándolo igual.
Respecto a correr a bajo costo, hay proveedores de máquinas virtualmente infinitas por USD 5, en donde puedes almacenar archivos ilimitados y alojar un millón de páginas web. Salvo claro que realmente intentes probar esa promesa y cuando llevas 2GB subidos o tratas de correr Pimcore te bloquean misteriosamente la cuenta.
Dejando esos de lado, tanto Amazon AWS como Google Cloud tienen un free tier.
En el caso de Amazon ese free tier aplica bajo ciertas condiciones, como que sea tu primer año de cliente, que estés usando una máquina small (debe ser la t3.small ahora) con Ubuntu Server. Esas máquinas tienen 2VPU y 1.5GB de memoria, lo cual es suficiente para correr un webserver y un backend. Los discos por default son SSD, pero las operaciones de lectura no están garantizadas. Puedes comprar un volumen de IOPS garantizado pero tampoco me consta que sea necesario... mal que mal tanto en CPU como en velocidad de disco las instancias small tienen "burst". O sea puedes exigirles como el 150% durante un par de horas y van a responder bien, y AWS sabe que a las 4AM en cambio vas a usar menos que lo que tienes contratado. Además del free tier, AWS cobra un 40% menos si arriendas la instancia por un año.
Google Cloud tiene otro tipo de free tier, del tipo que yo llamaría "no se entiende una mierda". Básicamente tienes un descuento fijo mensual de algo así como USD 200, pero con un tope que implica pagar creo que hasta USD 20 si gastas más de 100 y menos de 200, pero además hay descuentos por reservar una instancia por un año, a menos que la uses muy intensivamente, en cuyo caso te dan un descuento por "lealtad" también conocido como el premio broken core si haces concha la máquina. Algunos descuentos son acumulables, otros se restan mutuamente, otros tienen mareo de invocación, etc. Cuando uno llega a fin de mes y google te cobra en la tarjeta de crédito es mejor no mirar la factura. ¿Para qué si no se entiende ni mierda? Por 20 dólares no los voy a auditar.
En Azure no tengo idea. Hace poco un colega -digamos, mismo rubro pero más talentoso que yo- me dijo que la gran mayoría de las empresas chilenas (que trabaja en la nube) usan Azure. Las que no trabajan en la nube claro no usan Azure sino una salita de servidores en el sótano. De más que Azure también tiene un free tier generoso.
Dicho lo anterior, si quieres probar una aplicación web hay muchos otros proveedores que de tan la plataforma en vez de la VM. Por ejemplo en Heroku puedes instanciar una máquina para correr una app en NodeJS y tú sólo deployas tu aplicación (o conectas el repo) no te preocupas de instalar node, ponerle un nginx delante y correrlo dockerizado. Eso lo hacen ellos y las app más básicas son gratis para siempre.
Finalmente, creo que el benchmark que quieres hacer tiene que enmarcarse en una metodología que permita separar los cortes de las mediciones. Me refiero a que ponerse a probar máquinas virtuales que pueden entrar en modo burst no te permitiría discriminar si estás topando por CPU, memoria, optimización del software, sistema operativo e incluso arquitectura (AWS permite correr Ubuntu en x86 y ARM). La superposición de todo te llevará además a gastarte todos los burst credits en la primera corrida.