
Storage options for EKS: Comparing Amazon EFS, EBS, S3 and FSx for ONTAP
In this post I’ll try to simplify the EKS storage selection process in AWS, and explain in which scenarios it’s best to use a particular service between Amazon EFS, EFS, S3, and Amazon FSx for NetApp ONTAP (FSx for ONTAP).
- Performance, divided into two aspects: Throughput / IOPS and latency
- Durability and availability
- Scalability
- ReadWriteMany
- Supported protocols: Block, NFS, and SMB/CIFS
- Cost
- The Metrics
- How the different AWS storage services stack up
- Mapping optimal service options per workload
- Conclusion
- Throughput is a measure of the amount of data (measured in bits or bytes) that can be processed every second. The shorthand for this measurement is IOPS (input/output per second). These two terms are useful in describing performance.
- Latency is the measure for the time interval that it takes a storage service to serve out read requests and respond to write operations.
- If used as StorageClass you’ll need an S3 CSI driver mountpoint, a new option by AWS. This is less reliable when used as a file system.
- Latency is relatively high.
- If you need to read/write a lot of small files, the cost might be overwhelming (PUT/GET requests).
Example workloads: Analytics (BI), SageMaker, Kubeflow, Airflow
Example workloads: Cassandra, Elasticsearch, Redis, MongoDB
Example workloads: RabbitMQ, Kafka
FSx for ONTAP will have a latency penalty compared to using EBS, however, it offers more cost efficiency and the option for multi-AZ deployment.