Benchmarking Amazon AWS vs Microsoft Azure for Low-End Windows Virtual Machines

Yesterday I benchmarked low-end Linux virtual machines using AWS and Azure. Today I’m going to follow up with another benchmark of AWS and Azure virtual machines running Windows Server 2012 R2 DataCenter edition.

 

Methodology

For this test, I chose to benchmark the lowest-end virtual machines for AWS and Azure, as well as another slightly more powerful, but still low-end virtual machine for each. I created each virtual machine using the default settingsfor Windows Server 2012 R2 DataCenter edition and did not attempt to perform any optimizations. After launching the VM, I used Server Manager to enable the Application Server Role and install .NET Framework 3.5 feature, which is a prerequisite to install Novabench, the benchmarking software I will use to measure performance. Then I ran Windows Update to make sure each instance had the latest updates installed and rebooted the machine. When the machine came back up, I remoted in again and installed and ran Novabench.

 

Specs

Instance Type CPU Memory (GiB) Price per Hour (USD)
AWS Nano (t2.nano) 1 vCPU 0.50 0.0082
AWS Small (t2.small) 1 vCPU 2.00 0.0320
Azure Basic A0 1 Core (Shared) 0.75 0.0180
Azure Standard D1 1 Core 3.50 0.1400

Price shown is the listed hourly price for the virtual machine only (It is the on-demand price for AWS) as of 2/27/2017 and does not include any storage or bandwidth costs.
 

Results

Instance Type CPU Score RAM Speed (MB/s) Disk Write Speed (MB/s)
AWS Nano 162 10,959 81
AWS Small 162 8,166 151
Azure Basic A0 2,068 37 28
Azure Standard D1 8,473 126 110

CPU Score Comparison

RAM Speed Comparison

Disk I/O Comparison

I did something a little different in this blog post than I did in yesterday’s post when it comes to displaying Price/Performance. I found that the AWS Nano instance offered the best price/performance ratio and then normalized the other price/performance ratios based on that, so the Nano instance will be 1.0 and all others relative to that. I’m not really sure that is the best way to show it or not, but I was trying to find something that would work for showing all three data points (CPU, RAM, and Disk) on the same bar chart and that is what I came up with.

Price/Performance Comparison
 

Data

In case you are interested, here is a screen capture of the Novabench output for each benchmarking session:

 

Conclusion

Just like last time, when I benchmarked low-end Linux virtual machines, AWS ended up performing better and doing so at a lower overall cost. In my previous blog post, I indicated a few reasons I thought might explain the difference in performance (SSD vs HDD and CPU Bursting) and I believe those also play a role in the differences here.

While my benchmarking process is by no means the most scientific and is limited to only low-end instances, I hope that it provides a glimpse into the performance differences you might find when choosing between AWS and Azure for hosting a virtual machine.

1 Comment

  • Adam Jones says:

    That’s a really interesting experiment. I guess it’s hard to get definitive results as there is variation between the different tiers of virtual machines from both providers.

    Not hugely surprised that AWS comes out on top though.

Leave a Reply

Your email address will not be published. Required fields are marked *