Get a free AWS Well-Architected Assessment ->

Amazon Web Services


Amazon Elastic File System (EFS) is a fully managed cloud-based file storage service provided by Amazon Web Services (AWS). It provides scalable and elastic file storage for use with Amazon EC2 instances and on-premises servers. Amazon EFS is designed to be highly available and durable, allowing multiple EC2 instances to concurrently access the same file system. This makes it an ideal solution for applications that require shared access to files, such as content management systems, web servers, and big data applications. One of the key benefits of Amazon EFS is its ability to automatically scale storage capacity and throughput as needed. This allows you to easily accommodate growing storage requirements without having to worry about provisioning additional storage or managing capacity.
aws cost
Amazon EFS pricing is based on the amount of data stored in your file system, the number of requests made to the file system, and the amount of data transferred in and out of the file system. Here are some of the key cost components of Amazon EFS: Storage: You pay for the amount of data stored in your file system per month, with pricing starting at $0.30 per GB-month. Requests: You are charged for each request made to your file system, such as read, write, and metadata requests. The pricing starts at $0.035 per 1,000 requests. Data transfer: You are charged for data transferred in and out of your file system, with pricing starting at $0.01 per GB for data transferred out. There are no upfront fees or minimum commitments with Amazon EFS, and you only pay for what you use. In addition, Amazon EFS offers a free tier that includes 5 GB-months of storage and 2 million requests per month for 12 months. Keep in mind that pricing may vary depending on the AWS region and the type of storage class used. You can use the AWS Simple Monthly Calculator to estimate your Amazon EFS costs based on your specific usage requirements.
Direct Cost


Indirect Cost
No items found.
Terraform Name

The following arguments are supported:

  • availability_zone_name - (Optional) the AWS Availability Zone in which to create the file system. Used to create a file system that uses One Zone storage classes. See user guide for more information.
  • creation_token - (Optional) A unique name (a maximum of 64 characters are allowed) used as reference when creating the Elastic File System to ensure idempotent file system creation. By default generated by Terraform. See Elastic File System user guide for more information.
  • encrypted - (Optional) If true, the disk will be encrypted.
  • kms_key_id - (Optional) The ARN for the KMS encryption key. When specifying kms_key_id, encrypted needs to be set to true.
  • lifecycle_policy - (Optional) A file system lifecycle policy object (documented below).
  • performance_mode - (Optional) The file system performance mode. Can be either "generalPurpose" or "maxIO" (Default: "generalPurpose").
  • provisioned_throughput_in_mibps - (Optional) The throughput, measured in MiB/s, that you want to provision for the file system. Only applicable with throughput_mode set to provisioned.
  • tags - (Optional) A map of tags to assign to the file system. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
  • throughput_mode - (Optional) Throughput mode for the file system. Defaults to bursting. Valid values: bursting, provisioned, or elastic. When using provisioned, also set provisioned_throughput_in_mibps.

Lifecycle Policy Arguments

For lifecycle_policy the following attributes are supported:

  • transition_to_ia - (Optional) Indicates how long it takes to transition files to the IA storage class. Valid values: AFTER_1_DAY, AFTER_7_DAYS, AFTER_14_DAYS, AFTER_30_DAYS, AFTER_60_DAYS, or AFTER_90_DAYS.
  • transition_to_primary_storage_class - (Optional) Describes the policy used to transition a file from infequent access storage to primary storage. Valid values: AFTER_1_ACCESS.

Associating resources with a
Resources do not "belong" to a
Rather, one or more Security Groups are associated to a resource.
via Terraform:
The following HCL provides an Elastic File System (EFS) File System resource.

resource "aws_efs_file_system" "foo" {
 creation_token = "my-product"

 tags = {
   Name = "MyProduct"

via CLI:

[--creation-token <value>]
[--performance-mode <value>]
[--encrypted | --no-encrypted]
[--kms-key-id <value>]
[--throughput-mode <value>]
[--provisioned-throughput-in-mibps <value>]
[--availability-zone-name <value>]
[--backup | --no-backup]
[--tags <value>]
[--cli-input-json | --cli-input-yaml]
[--generate-cli-skeleton <value>]
[--endpoint-url <value>]
[--output <value>]
[--query <value>]
[--profile <value>]
[--region <value>]
[--version <value>]
[--color <value>]
[--ca-bundle <value>]
[--cli-read-timeout <value>]
[--cli-connect-timeout <value>]
[--cli-binary-format <value>]


aws efs create-file-system \
   --performance-mode generalPurpose \
   --throughput-mode bursting \
   --encrypted \
   --tags Key=Name,Value=my-file-system

Best Practices for

Categorized by Availability, Security & Compliance and Cost

Explore all the rules our platform covers
Related blog posts