Hosting your data in Amazon Simple Storage Service (S3) can be a very inexpensive way to provide storage for your organisation. This solution is also not necessarily confined to the use case of having both desktops and profiles in AWS due to the caching mechanisms AWS provides.
Both FSLogix Profiles and FSLogix O365 products work in a very similar way. FSLogix Profiles will store your local profile inside a VHD(X) and roam that local profile with the user and FSLogix O365 will store all your office data, (ost file, index, onedrive, onenote and S4B GAL) inside a VHD(X) and roam that with the user. From now on I’ll just talk about placing the VHD, as the solution is configured consistently across both products.
S3 is Amazons object storage and is much cheaper than the equivalent Elastic Block storage by GB. A reasonable rule of thumb would be that S3 is 4-5 times cheaper than EBS, although you should price out your requirements fully if you are interested in the comparisons.
S3 is only available via API/Web natively, which isn’t much good to us to store our VHDs in. Step forward AWS Storage Gateway which can give us some interesting access methods for S3. Storage Gateway is a VM that can sit either on-premises or in EC2. Whilst Storage Gateway can come in a variety of configurations, the one that we are specifically interested in is the Cached Volume Gateway.
If you have desktops on-premises, install the ESXi or the Hyper-V VM locally near your desktops. If your desktops are in AWS, then use the EC2 instance. The Cached Volume Gateway will provide access to a S3 bucket via iSCSI. It will also give you 150 GiB to 2 TiB write cache and 150 GiB to 16 TiB read cache. I’d advise placing the cache drives on reasonably quick storage.
As Windows needs SMB storage to be able to attach a VHD, we need to add another component. This will be a standard Windows server with a drive configured to point to the iSCSI storage. You can then create a standard share and point the FSLogix VHDlocations registry key to that location.
This configuration is applicable to a PoC environment and doesn’t include any details on resilience. Using Windows Storage Spaces may be a good way to achieve this, but that’s outside the scope of this post.
If you are new to AWS I’d make sure that you create your Virtual Private Cloud (VPC) in the closest location and that it has the following pre-requisites set up: Internet Gateway, DNS route, Key Pair, Subnet, and optionally an elastic IP.
Once you have created your Cached Volume Gateway in the correct location, you should activate it (port 80 from the browser needs to be open).
Once the gateway is active you can then use the Gateway Admin Console to create an S3 bucket for your volume.
Then with your Windows Server connect to the iSCSI target.
Once that’s done you can initialise and format the disk.
You can see above I’ve formatted the disk with ReFS, rather than NTFS as it provides greater performance when dealing with VHD operations.
Once we have the disk you should create a file share as normal.
One quick note to remember is that SMB traffic is over port 445, so you should remember to keep this port open for the SMB traffic to the Windows server.