Amazon FSx

FSx provides fully managed file storage for two specialized workloads: Windows File Server (SMB, Active Directory) and Lustre (high-performance parallel file system for HPC and ML).

FSx for Windows File Server

Use Case

Enterprise Windows applications requiring SMB file shares:

  • Microsoft SQL Server (native file access)
  • Microsoft SharePoint
  • Custom .NET applications with file-based storage
  • SAP with Windows back-end

Features

  • SMB 3.x support (up to SMB 3.1.1)
  • Active Directory integration (Kerberos, NTLM, ACLs)
  • Multi-AZ deployment for HA
  • On-premises access via VPN or Direct Connect
  • Shadow copies (backup/restore from previous versions)

Creating a FSx for Windows File System

aws fsx create-file-system \
  --file-system-type WINDOWS \
  --storage-capacity 1000 \
  --subnet-ids subnet-xxxxx \
  --windows-configuration '{
    "ActiveDirectoryId": "d-xxxxx",
    "ThroughputCapacity": 256,
    "WeeklyMaintenanceStartTime": "1:00:00",
    "DailyAutomaticBackupStartTime": "03:00:00",
    "AutomaticBackupRetentionDays": 7,
    "CopyTagsToBackups": true
  }'

Connecting from Windows EC2

# Map network drive
net use Z: \\fs-xxxxx.example.com\share /persistent:yes
 
# From Linux
sudo mount -t cifs //fs-xxxxx.example.com/share /mnt/fsx \
  -o user=admin,password=secret,vers=3.0

Performance

DeploymentThroughputIOPSUse
Single-AZ2-350 MB/sUp to 350,000Dev/test
Multi-AZ2-350 MB/sUp to 350,000Production HA

FSx for Lustre

Use Case

High-performance computing and ML workloads:

  • ML training (TensorFlow, PyTorch data loading)
  • Scientific computing (genomics, climate modeling)
  • Financial simulations
  • Media rendering (video processing)

How Lustre Works

Compute Cluster (EC2 instances)
       │
       ▼
  Lustre File System
  (Metadata Server + Object Storage)
       │
       ▼
  S3 Bucket (linked, optional)
  (data lives in S3, cached in Lustre)

Lustre is a parallel file system — multiple storage servers (OSS) serve data in parallel to multiple clients. It scales to petabytes and hundreds of GB/s throughput.

S3 Data Repository

Link FSx Lustre to an S3 bucket for S3-backed file systems:

aws fsx create-file-system \
  --file-system-type LUSTRE \
  --storage-capacity 1200 \
  --subnet-ids subnet-xxxxx \
  --lustre-configuration '{
    "ImportPath": "s3://my-training-data/",
    "ImportedFileChunkSizeMiB": 32,
    "DataCompressionType": "LZ4",
    "WeeklyMaintenanceStartTime": "1:00:00"
  }'

Files in S3 appear in FSx (import). Writes to FSx can be exported back to S3 (export).

Data Compression

Lustre supports transparent compression (LZ4):

aws fsx create-file-system \
  --file-system-type LUSTRE \
  --storage-capacity 1200 \
  --subnet-ids subnet-xxxxx \
  --lustre-configuration '{
    "ImportPath": "s3://my-data/",
    "DataCompressionType": "LZ4"
  }'

Compression is transparent to applications. LZ4: 2-3x compression ratio typical on text/binary data.

Mounting Lustre

# Install Lustre client
sudo yum install lustre-client  # Amazon Linux
sudo apt install lustre-client   # Ubuntu
 
# Mount
sudo mount -t lustre fs-xxxxx@tcpfs.fs-xxxxx.fsx.us-east-1.amazonaws.com@tcp:/fsx /mnt/lustre

Performance Tiers

TierStorageUse
ScratchTemporary (no replication)Short-term, bursty workloads
PersistentReplicated in single AZLong-term, consistent performance

FSx for OpenZFS

Managed OpenZFS file system (file storage, not block). Simpler than Windows or Lustre, for general-purpose Linux workloads.

FSx for NetApp ONTAP

Fully managed ONTAP file system with advanced features:

  • SnapMirror (replication)
  • FlexCache (caching)
  • Data tiering to S3
  • Cloning (instant, zero-copy)

Performance Comparison

FSx TypeMax ThroughputMax IOPSLatency
Windows350 MB/s350,0000.5-1ms
Lustre (Scratch)2,000 MB/s1,000,000+0.1ms
Lustre (Persistent)2,500 MB/s1,000,000+0.1ms
ONTAP2,200 MB/s400,0000.5-1ms

Costs

TypeCost
Windows0.013/GB/mo (backup)
Lustre Scratch$0.136/GB/mo
Lustre Persistent$0.22/GB/mo
ONTAP$0.23/GB/mo

Limits

ResourceLimit
Max storage (Windows)65,536 GB (64 TB)
Max storage (Lustre)1,000,000 GB (1 PB)
Max throughput (Lustre)2,500 MB/s
Max file size (Lustre)16 TiB

References

Pricing Examples

Scenario 1: A Windows file server for 50 users with 2TB of shared files. FSx for Windows: 2,000GB × 276/month. Plus throughput (256 MB/s = 3.33/month). Total: ~0.08 = 140/month) = $156/month. FSx is 80% more expensive but fully managed with AD integration — no EC2 maintenance.

Scenario 2: An ML training job processing 50TB of data from S3 using FSx Lustre. 50TB × 6,800/month. A better approach: link FSx Lustre to S3 (import on mount), process, then delete the FSx. 50TB Lustre for 3 days/week = 150TB-days/month × (50TB × 340/month. Total: 6,800/month.

Nuggets & Gotchas

  • FSx for Windows is single-AZ by default — enable Multi-AZ for production: Multi-AZ adds 2x cost but provides failover. For databases (SQL Server) and critical file shares, always use Multi-AZ.
  • FSx Lustre Scratch has no replication — if a storage server fails, data is lost: Scratch is for temporary workloads (ML training, video rendering). For persistent data, use Persistent Lustre (replicated within single AZ).
  • Lustre imports from S3 are lazy (on-demand) — first access is slow: When you first read a file from S3 via Lustre, it fetches from S3 and caches. This first-read latency can be 10-30 seconds for large files. For ML training, use hdf5 or preload data before training starts.
  • FSx for Windows charges for throughput capacity (MB/s) even when idle: A 256 MB/s file system costs ~$3.33/month even if unused. Right-size throughput capacity — a small team doesn’t need 256 MB/s.
  • Lustre file system size is fixed at creation — you can’t expand without creating a new one: Plan capacity ahead. For ML workloads with growing datasets, create the file system with enough headroom or plan migration to a larger one.