CloudWiki
Resource

EFS

Amazon Web Services
Storage
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.
Terraform Name
terraform
aws_efs_file_system
EFS
attributes:

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
EFS
Resources do not "belong" to a
EFS
Rather, one or more Security Groups are associated to a resource.
Create
EFS
via Terraform:
The following HCL provides an Elastic File System (EFS) File System resource.
Syntax:

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

 tags = {
   Name = "MyProduct"
 }
}

Create
EFS
via CLI:
Parameters:

create-file-system
[--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>]
[--debug]
[--endpoint-url <value>]
[--no-verify-ssl]
[--no-paginate]
[--output <value>]
[--query <value>]
[--profile <value>]
[--region <value>]
[--version <value>]
[--color <value>]
[--no-sign-request]
[--ca-bundle <value>]
[--cli-read-timeout <value>]
[--cli-connect-timeout <value>]
[--cli-binary-format <value>]
[--no-cli-pager]
[--cli-auto-prompt]
[--no-cli-auto-prompt]

Example:

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

aws cost
Costs
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.
Best Practices for
EFS

Categorized by Availability, Security & Compliance and Cost

Low
Access allowed from VPN
No items found.
Low
Auto Scaling Group not in use
No items found.
Medium
Connections towards DynamoDB should be via VPC endpoints
No items found.
Medium
Container in CrashLoopBackOff state
No items found.
Low
EC2 with GPU capabilities
No items found.
Medium
EC2 with high privileged policies
No items found.
Medium
ECS cluster delete alarm
No items found.
Critical
ECS task with Admin access (*:*)
Medium
ECS task with high privileged policies
No items found.
Critical
EKS cluster delete alarm
No items found.
Medium
ElastiCache cluster delete alarm
No items found.
Medium
Ensure Container liveness probe is configured
No items found.
Medium
Ensure ECS task definition has memory limit
No items found.
Critical
Ensure EMR cluster master nodes are not publicly accessible
No items found.
More from
Amazon Web Services