AWS EFS File System

Amazon Elastic File System (EFS) is a serverless, elastic network file storage solution that can be shared across AWS cloud services and on-premise resources.

View Source Code
Deployments

32

Made by

Massdriver

Official

Yes

No

Compliance
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.
VariableTypeDescription
retention.backupbooleanAutomatically backup your file system data with AWS Backup using recommended settings. Additional pricing applies.
retention.transition_to_iastringDuration from the last time a file was accessed until it is transitioned to Infrequently Accessed (IA) storage class.
storage.performance_modestringGeneral Purpose has lower latency, but limits your file operations per second. Max IO substantially increases IOPs, but increase latency.
storage.provisioned_throughput_in_mibpsintegerThe throughput, measured in MiB/s, that you want to provision for the file system. Required if Throughput mode is set to “Provisioned”
storage.throughput_modestringBurst 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.
No items found.