npx skills add ...
npx skills add aws/agent-toolkit-for-aws --skill troubleshooting-efs
npx skills add aws/agent-toolkit-for-aws --skill troubleshooting-efs
Diagnoses and resolves Amazon EFS issues including mount failures, NFS timeouts, permission errors, throughput problems, and burst credit exhaustion. Use when the user has an EFS file system that is not mounting, returning errors, performing slowly, or showing access denied.
Domain expertise for diagnosing and resolving Amazon EFS issues. Covers mount failures, NFS connectivity, IAM and POSIX permissions, throughput and performance, and encryption problems.
For authoritative guidance, see EFS Troubleshooting.
aws CLI is availableamazon-efs-utils or nfs-utils is installed on the instance| Symptom | Category |
|---|---|
| "wrong fs type" or mount command fails | A: Missing NFS Client |
| Connection timed out (hangs 2+ min) | B: Network/Security Group |
| "access denied by server" | C: IAM/Permissions |
| Slow throughput or high latency | D: Performance |
| NFS server error on encrypted FS | E: Encryption/KMS |
| DNS name resolution fails | F: VPC DNS |
Connection timeout is the #1 EFS mount failure — almost always security groups.
Verify security groups — check BOTH directions:
aws ec2 describe-security-groups --group-ids sg-MT — MUST have inbound TCP 2049 from compute SGaws ec2 authorize-security-group-ingress --group-id sg-MT --protocol tcp --port 2049 --source-group sg-COMPUTETest connectivity:
Note: These security group troubleshooting steps also apply to S3 Files. The only difference is S3 Files uses
aws s3files list-mount-targetsinstead ofaws efs describe-mount-targets.
"access denied by server" with -o iam:
elasticfilesystem:ClientMountNote: IAM authorization is only enforced when a file system policy exists that requires it. Without a file system policy, any client in the VPC with port 2049 access can mount — even with -o iam. To enforce IAM, you MUST create a file system policy that denies anonymous access.
POSIX permission denied (not IAM):
ls -la /mnt/efs/Check throughput mode:
Burst credit exhaustion (Bursting mode only):
If credits near zero, switch to Elastic throughput:
General Purpose vs Max I/O:
PercentIOLimit metric — if consistently >80%, consider Max I/ONFS server error on encrypted FS = KMS key issue.
DNS resolution failure = VPC DNS settings disabled.
Both MUST be true. If not:
Most common cause: security group. Verify TCP 2049 is open between compute and mount target.
/etc/fstab entry MUST include _netdev option to wait for network before mounting.
Old kernel bug with TCP port reuse. Update kernel or add noresvport mount option.
Set logging_level = DEBUG in /etc/amazon/efs/efs-utils.conf. Logs at /var/log/amazon/efs/mount.log.
-o tls for encryption in transit — unencrypted NFS traffic is visible on the network/var/log/amazon/efs/ access — logs may contain file system IDs and mount target IPsnc -zv fs-ID.efs.REGION.amazonaws.com 2049aws efs describe-file-system-policy --file-system-id fs-ID --region REGIONaws efs describe-file-systems --file-system-id fs-ID --region REGION --query 'FileSystems[0].ThroughputMode'aws cloudwatch get-metric-statistics --namespace AWS/EFS --metric-name BurstCreditBalance --dimensions Name=FileSystemId,Value=fs-ID --period 3600 --statistics Average --start-time $(date -u -d '24 hours ago' +%Y-%m-%dT%H:%M:%S) --end-time $(date -u +%Y-%m-%dT%H:%M:%S)aws efs update-file-system --file-system-id fs-ID --throughput-mode elastic --region REGIONaws ec2 describe-vpc-attribute --vpc-id vpc-ID --attribute enableDnsHostnames
aws ec2 describe-vpc-attribute --vpc-id vpc-ID --attribute enableDnsSupportaws ec2 modify-vpc-attribute --vpc-id vpc-ID --enable-dns-hostnames Value=true
aws ec2 modify-vpc-attribute --vpc-id vpc-ID --enable-dns-support Value=truesudo tar -czf /tmp/efs-logs.tar.gz /var/log/amazon/efs/ /etc/amazon/efs/efs-utils.conf