Deployments
32
Made by
Massdriver
Official
Yes
No
Compliance
Clouds
Tags
aws-efs-file-system
Use Cases
EKS Persistent Volumes
Unlike EBS (the default storage class in EKS), EFS volumes are read-write-many, and are not bound to an availability zone. This allows multiple pods to use the same storage volume, as well as allowing the pods that use the persistant volume to exist on nodes in any availability zone.
Shared Network Storage
Accessible and sharable by all AWS compute systems (EC2, ECS, EKS, Fargate, Lambda), as well as on-premise systems.
FTP File Server
AWS EFS can server as a file system for an SFTP File system using AWS Transfer Family
Design
AWS EFS is a NFS (network file system) product for AWS. Think something between EBS and S3. EBS is block storage that "acts" like a local hard drive that cannot be shared between systems. S3 is external shared object storage. EFS can be mounted onto VMs like EBS, but like S3 it can be shared between multiple systems simultaneously.
Performance Modes
EBS come in two performance modes: "generalPurpose" and "maxIO". General Purpose has lower latency, but has a cap on the number of file operations per second (IOPs) of 35,000. Reads cost 1 file operation, writes cost 5, resulting in a maxiumum of 35,000 read operations per second, 7000 write operations per second, or some combination of the two. Max-IO supports 500,000+ IOPs at a higher latency. This is an immutable selection.
Throughput Modes
EBS comes in two throughput modes: Burst and provisioned. Burst mode uses a credit system which accrues over time based on the size of the EFS file system. If credits are available, throughput can scale to 3-5 GiBps depending on the region. This is ideal for most applications with bursty throughput pattern. If your application has relatively constant throughput needs, you can instead use provisioned throughput to guarantee your application will receive the throughput it needs without worry about credit balance. If the size of your file-system would allow a higher base rate than your selected provisioned throughput, you will automatically use burst. Changing these settings is non-destructive, but only one change is allowed per 24 hour period.
Lifecycle
EFS offers the ability to automatically move infrequently accessed files to cheaper "IA-Storage" class. This is opt-in, and can be set at the 7, 14, 30, 60 or 90 day mark.
Best Practices
- Deploys regional EFS for High availability in the event of zonal failure
- Uses a dedicated KMS key for encryption
Security
- Encrypted by default with dedicated KMS key.
Variable | Type | Description |
---|---|---|
retention.backup | boolean | Automatically backup your file system data with AWS Backup using recommended settings. Additional pricing applies. |
retention.transition_to_ia | string | Duration from the last time a file was accessed until it is transitioned to Infrequently Accessed (IA) storage class. |
storage.performance_mode | string | General Purpose has lower latency, but limits your file operations per second. Max IO substantially increases IOPs, but increase latency. |
storage.provisioned_throughput_in_mibps | integer | The throughput, measured in MiB/s, that you want to provision for the file system. Required if Throughput mode is set to “Provisioned” |
storage.throughput_mode | string | Burst mode uses a credit system which accrues over time based on the size of the EFS file system and is ideal for most applications with bursty throughput patterns. Provisioned is best when your throughput requirements are relatively constant. |