aws_efs_mount_target cost estimation
An EFS mount target is free. It gives an EFS file system a network endpoint in one subnet, and the real cost is the EFS storage and throughput behind it.
An aws_efs_mount_target creates an NFS endpoint for an EFS file system inside a specific subnet, so instances and containers in that Availability Zone can mount the file system over the network. Mount targets carry no charge. You create one per AZ (each with an IP in that subnet), and none of them appear on your bill.
The cost sits on the aws_efs_file_system the mount targets expose. EFS bills per GB-month of data stored, at a Standard rate and a much lower Infrequent Access rate, plus optional Provisioned Throughput if you configure it. Standard storage is roughly $0.30/GB-month, several times the price of EBS or S3, which is the number to watch. Mount targets only affect where the file system is reachable, not how much it stores.
There is one indirect cost worth knowing: cross-AZ traffic. If a workload in one AZ mounts through a mount target in another AZ, the NFS traffic crosses Availability Zones and incurs data transfer. Creating a mount target in every AZ your clients run in keeps traffic local and avoids that charge. c3x prices the EFS file system's storage and throughput and treats the mount targets as the free networking they are.
Terraform example
A minimal but realistic configuration that C3X can estimate.
resource "aws_efs_mount_target" "az" {
for_each = toset(aws_subnet.private[*].id)
file_system_id = aws_efs_file_system.shared.id
subnet_id = each.value
security_groups = [aws_security_group.efs.id]
}Pricing dimensions
What you actually pay for when you provision aws_efs_mount_target.
| Dimension | Unit | What's being charged |
|---|---|---|
| Mount target | free | The mount target and its network interface have no charge. $0 |
| EFS storage | per GB-month | The data stored in the file system the mount target exposes. Standard: ~$0.30/GB-month |
| Cross-AZ traffic | per GB | NFS traffic when a client mounts through a mount target in a different Availability Zone. $0.01/GB each way |
Optimization tips
Common ways to reduce aws_efs_mount_target cost without changing the workload.
Put a mount target in every client AZ
Clients that mount through a mount target in another AZ pay cross-AZ transfer. One mount target per AZ your workloads run in keeps NFS traffic local and free.
Move cold data to Infrequent Access
Up to 90% on cold dataThe cost is the file system, not the mount target. An EFS lifecycle policy that tiers rarely-read files to IA cuts storage from about $0.30 to about $0.016/GB-month.
Only provision throughput if you need it
Bursting throughput is included in the storage price. Provisioned Throughput is billed on top, so enable it only for workloads that genuinely need sustained bandwidth.
FAQ
Does an EFS mount target cost money?
No. Mount targets are free, including the elastic network interface each one creates. You pay for the EFS file system's stored data and any provisioned throughput, not for the mount targets.
How many EFS mount targets should I create?
One per Availability Zone your clients run in. That keeps NFS traffic local. Mounting across AZs still works but incurs cross-AZ data transfer, which is the only cost a mount target can indirectly cause.
Where does EFS cost actually come from?
From the file system: per GB-month of stored data at Standard or Infrequent Access rates, plus optional Provisioned Throughput. Standard storage is around $0.30/GB-month, so tiering cold data matters most.
Related resources
Estimate this resource in your own Terraform
Free, open source, no API key. C3X parses your Terraform and shows line-item cost for every resource, including aws_efs_mount_target.