Hands On: Windows File Servers on AWS

A very common cloud workload is a Microsoft Windows File Server. The fantastic thing about the cloud is there is no shortage of options to fulfill this requirement, but which solution to choose? In this post, I’ll take a look at three different options and look at the price and performance of each as it applies to a generic file server workload.

Image credit to LinkedIn Learning
Image credit to LinkedIn Learning

I will look at three different options, although this is certainly not an exhaustive list of options.

  1. Native Windows on EC2  (“Roll Your Own”)
  2. SoftNAS (3rd party on AWS Marketplace)
  3. AWS FSx (Service provider managed)

And the winner is… well as with most things in IT; it depends.

The first question to ask is “what are the file server requirements?”. There are a countless number of possibilities, so for the sake of the study, I just made one up. In this scenario, the following requirements are all that was received from the customer:

  • The maximum amount of storage required is 500GB.
  • File sizes will vary greatly but many files are video files that are in the 50GB range.
  • There are significantly more writes than reads but the block sizes are unknown.
  • There is existing in-house expertise in Microsoft Windows administration.

To provide the customer with the best performance at the best price, I will test the three options above and see where the performance and price numbers fall out. I will also highlight some of the pros and cons of each solution. All three solutions offer high availability options, but for this test, I will concentrate just on a single instance located in the same AZ and subnet as our test “client”.

The test “client” is a m5d.large EC2 instance on which I will use the Microsoft “diskspd” utility (http://aka.ms/diskspd) to gather performance metrics. I will use the same diskspd parameters to test across all three solutions.

The command parameters:
diskspd.exe -c50G -b[4|8|16|32|64]K -d60 -h -o32 -t16 [-r | -w100] -L \\share\testfile.dat

diskspd parameters:: https://github.com/Microsoft/diskspd/wiki/Command-line-and-parameters

There are three primary performance metrics that are of interest.

  1. MiB/s – The transfer rate of data (Mebibytes/s).
  2. IOPS – The number of I/O operations performed per second.
  3. Latency – A measure of time between an I/O operation beginning and completion


Microsoft Windows on EC2

In this solution, I created a m5d.xlarge instance running Microsoft Windows Server 2019 as the base image in the same AZ and subnet as our test client. I added 2 x 250GB standard GP2 EBS volumes striped together Raid 0 for our 500GB drive that will be used for the share.

I ran two sets of tests, one with the standard gp2 IOPS and once with a total of 10K provisioned iops (PIOPS) to see if there was a significant performance difference for this set of tests.

We have excellent throughput to the EC2 instance.

It is also good to note that we are receiving the provisioned amount of IOPS on our EBS volumes.

Latency below 100 represents good performance for a storage subsystem.


SoftNAS is a full features software based NAS solution that has been available on the AWS Marketplace for many years. SoftNAS has a host of configuration options to share via AFP, NFS, as well as CIFS (Windows). It also has a set of tiering options to S3 backend storage. A full list of features is available here: [SoftNAS Features]

For our solution, SoftNAS Cloud Enterprise with 1TB of capacity will suffice.

The launch dialog did not allow the selection of a m5d.xlarge so the closest was a m5d.2xlarge. SoftNAS has a very simple “getting started” dialog to setup everything you need to get up and running quickly.

We will configure it with 2 X 250GB EBS volumes just like the native Windows File Server. I also ran the same tests with both EBS volumes set with 10K PIOPS. SoftNAS is implemented on top of CentOS using Samba to serve up a CIFS share. Let’s see how the performance stacks up in the same tests.

I did not observe a significant measurable difference between the standard gp2 volumes vs. PIOPS.

Once again, there was no significant measurable difference in the IOPS between the standard gp2 volumes vs PIOPS.

Average latency numbers, while still higher than the native Windows file server, are still quite good.

Amazon FSx for Windows File Server

The new kid on the block is the Amazon FSx managed service. Much like the EFS service for NFS based file storage, FSx is a managed service for Windows. Unlike EFS, you must declare the total amount of storage and the throughput capacity required The default throughput is 8MB/s

There are only a few parameters required to join the FSx system to the local active directory.

As best as I could tell the instance joined to our domain is a Windows Server 2016 Datacenter instance.

One issue that came up early while testing was the 8MB/s transfer rate. The test file that diskspd is creating is a 50GB file which at an 8MB/s transfer rate works out to be roughly 2 hours per test run. While there was some bursting in the first runs, subsequent runs were held at 8MB/s.

To make sure the 8MB/s transfer capacity was not abnormally skewing the test results, I ran the same set of tests provisioned with 256MB/s transfer capacity.

The transfer rate being limited to an 8MB/s produced poor MiB/s performance metrics as compared to the other solutions.

Native Windows and SoftNAS outperform the IO/s metric both with the 8MB/s and 256BM/s FSx options.

The latency numbers are not impressive either.

Pricing Analysis

I calculated the pricing using standard on-demand pricing levels. It did not take into account cost saving programs like reserved instances, enterprise discounts, or annual subscriptions. Backups will also feed into the cost model as well as additional costs for deployment of HA solution sets. Since the provisioned IOPS showed only minimal performance increases in our scenario, those have been removed from the pricing considerations as well.


The answer isn’t quite as straightforward as you might think. Each of the solutions has its pros and cons.

Solution Pros Cons
Amazon FSx
  • a complete managed service
  • low-cost per GB
  • backup solution built-in
  • high-availability option
  • may not meet performance expectations
  • increased transfer rates increase costs significantly
  • complete NAS solution for more than just CIFS
  • intuitive and easy setup
  • excellent vendor support
  • backup solution built-in
  • decompression and deduplication options available
  • costs are higher with added features
  • may not meet performance expectations due to Samba limitations
Native Windows
  • highest performance solution
  • minimal management skills required
  • requires management and patching of underlying Windows OS
  • additional architecture required for backups

Based on price alone the AWS FSx (8MB/s) solution is the lowest cost at $0.17/GB, but it does so at the cost of performance. SoftNAS comes in at a higher price per GB of storage, but there are many NAS features included with that price. The native Windows offering comes in with the highest performance metrics but with the added costs of managing the underlying Windows instance.

For this particular scenario, I would recommend staying with a native Windows option primarily because of the 50GB file size requirements and the availability of in-house Microsoft Windows management expertise. If there were requirements to also share data with Linux based systems over NFS, I would have chosen the SoftNAS solution. If the estimated file sizes were lower, I would have likely chosen the FSx solution.

The great thing about the cloud is that you have options to choose from and you are not limited to a “one size fits all” type of decision. Hope this was helpful.

Cloud On!

“The cloud is an architect’s dream. Before the cloud, if I screwed something up there was tangible evidence that had to be destroyed. Now it’s just a blip in the bill”. – Michael Spence

Leave a Comment