EFS vs FSx: Windows, Lustre, NetApp ONTAP or OpenZFS
Amazon EFS is serverless NFS storage for Linux that grows and shrinks on its own. The FSx family gives you a managed version of a specific file system: FSx for Windows File Server for SMB and Active Directory, FSx for Lustre for HPC and machine learning linked to S3, FSx for NetApp ONTAP for NetApp migrations and multi-protocol access, and FSx for OpenZFS for ZFS or Linux file server migrations. Match the protocol and the technology the workload already uses.
Amazon EFS
EFS supports NFSv4.0 and NFSv4.1 and scales to petabytes without you provisioning capacity. EC2, ECS, EKS, Lambda and Fargate can all mount it. Using EFS from Windows-based EC2 instances is not supported.
Regional file systems (recommended) store data across multiple Availability Zones. One Zone file systems store it in one AZ. AWS recommends the General Purpose performance mode and Elastic throughput for most workloads. Max I/O is a previous-generation mode with higher per-operation latency, and it is not supported with Elastic throughput or One Zone. Elastic throughput suits spiky or unpredictable loads; Provisioned suits known requirements.
FSx for Windows File Server and FSx for Lustre
FSx for Windows File Server runs on Windows Server and uses the SMB protocol. Users are authenticated with Microsoft Active Directory, and access control uses Windows ACLs. It offers Single-AZ and Multi-AZ deployments, SSD or HDD storage, and daily backups. Use it to lift and shift Windows applications and home directories.
FSx for Lustre is for workloads where speed matters, such as machine learning, HPC, video processing and financial modelling. It gives sub-millisecond latency and up to multiple TBps of throughput. Clients are Linux. It can link to an S3 bucket, present the objects as files, and export results back to S3 automatically as files are created, modified or deleted. Scratch file systems do not replicate data; persistent file systems do.
FSx for NetApp ONTAP and FSx for OpenZFS
FSx for NetApp ONTAP supports NFS, SMB, iSCSI and NVMe, from Linux, Windows and macOS. It offers Multi-AZ and Single-AZ, automatic tiering of cold data to cheaper storage, SnapMirror replication and FlexCache. AWS describes it as the way to move on-premises NetApp ONTAP workloads without changing application code or how you manage data.
FSx for OpenZFS uses NFS v3, v4.0, v4.1 and v4.2, from Linux, Windows and macOS. It is for moving on-premises ZFS or other Linux-based file servers. It supports near-instant snapshots and data cloning, and delivers up to millions of IOPS with latencies of a few hundred microseconds.
Where the exam catches people
Believing EFS serves Windows instances over SMB: EFS is NFS only and is not supported on Windows-based EC2 instances.
Believing Max I/O raises EFS performance: it is previous generation, adds per-operation latency, and cannot be used with Elastic throughput.
Believing FSx for Lustre suits Windows clients: Lustre clients are Linux; Windows SMB shares need FSx for Windows File Server or ONTAP.
Believing a NetApp migration should go to EFS because the app uses NFS: FSx for ONTAP keeps the ONTAP features, SnapMirror and FlexCache.
Believing every FSx for Lustre file system can link to S3: Intelligent-Tiering file systems cannot link to an S3 data repository.