File Sharing
A shared file system is what a workload needs when several machines must read and write the same files at the same time, with ordinary file semantics — directories, locks, partial writes — rather than the whole-object semantics of S3 or the single-writer constraint of a block volume.
AWS offers two answers, and the choice is usually decided by protocol.
- Amazon EFS is a managed NFS file system for Linux. It grows and shrinks automatically, is billed on what is stored rather than what is provisioned, and a Regional file system is reachable from every Availability Zone in the Region. It is the default choice for Linux fleets, container workloads and shared application data.
- Amazon FSx is a family of four managed file systems for cases EFS does not cover: SMB shares for Windows applications, the Lustre parallel file system for high-performance computing and analytics, and managed NetApp ONTAP or OpenZFS for teams that need those specific feature sets.
A rough decision order: Linux and NFS, use EFS. Windows and SMB, use FSx for Windows File Server. Throughput measured in GB/s across a compute cluster, use FSx for Lustre. An existing dependency on ONTAP or ZFS features such as snapshots, clones or SnapMirror, use the matching FSx variant.
Where the data does not really need file semantics — objects written once and read over HTTP, static assets, data lake files — S3 is cheaper and simpler than either.