К основному содержанию
скилл CX Codex

troubleshooting-efs — скилл для Claude Code: диагностика Amazon EFS

Скилл разбирает сбои Amazon EFS: не монтируется, таймауты NFS, отказ в доступе, низкая пропускная способность.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add aws/agent-toolkit-for-aws --skill troubleshooting-efs -a claude-code
Открыть на GitHub

Что делает troubleshooting-efs

Скилл ведёт агента по шести категориям проблем. Симптом из ошибки определяет ветку: «wrong fs type» — нет NFS-клиента, зависание на две минуты и больше — сеть или security group, «access denied by server» — права IAM или POSIX, медленная работа — режим пропускной способности, ошибка NFS на шифрованной файловой системе — ключ KMS, сбой разрешения DNS — настройки VPC.

Перед любыми действиями скилл требует проверить, что в системе есть aws CLI и один из пакетов — amazon-efs-utils или nfs-utils. Разрушающие команды на этом шаге не выполняются. Дальше агент показывает команды записи и ждёт подтверждения. Для каждой категории прописаны конкретные вызовы: aws efs describe-mount-targets, проверка TCP 2049 в обе стороны через aws ec2 describe-security-groups, метрика BurstCreditBalance в CloudWatch, aws efs describe-file-system-policy для политик доступа.

Есть места, где скилл прямо предупреждает о необратимом. Режим производительности (General Purpose или Max I/O) изменить нельзя — придётся создавать новую файловую систему и переносить данные. Авторизация по IAM работает только при наличии file system policy: без неё любой клиент в VPC с доступом к порту 2049 смонтирует файловую систему, даже с флагом -o iam. Это повод проверить политику, если вы рассчитывали на IAM как на единственный барьер.

Какие задачи решает

  • разобрать ошибку «wrong fs type» при монтировании EFS
  • найти причину зависания mount на две минуты и больше
  • починить «access denied by server» с флагом -o iam
  • проверить, не кончились ли burst credits в режиме Bursting
  • включить DNS-разрешение в VPC, если имя файловой системы не резолвится

Примеры запросов агенту

  • EFS не монтируется на инстансе, помоги разобраться
  • mount висит две минуты и падает по таймауту — что проверить?
  • пропускная способность EFS просела, посмотри BurstCreditBalance

Как установить troubleshooting-efs

1Через Skills CLI (Vercel)

npx skills add aws/agent-toolkit-for-aws --skill troubleshooting-efs -a claude-code

2Вручную: положить файлы

~/.claude/skills/troubleshooting-efs/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/troubleshooting-efs/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Из того же набора133

exporting-rds-to-s3 Проведёт агента по шагам экспорта снимка RDS или Aurora в S3 в формате Parquet: роли IAM, шифрование KMS, запуск задачи и проверка данных. CX Codex +1 6 100установок signing-in-to-aws Скилл проводит агента через вход в AWS из локальной оболочки: сверяет версию AWS CLI, запускает aws login после подтверждения и проверяет, под кем вы вошли. CX Codex +1 6 100установок connecting-vpcs-with-peering Скилл настраивает прямое приватное сетевое соединение между двумя VPC в AWS. Проверяет пересечение CIDR, обновляет таблицы маршрутизации и задаёт параметры DNS. CX Codex +1 6 100установок enabling-lambda-vpc-internet-access Скилл проводит агента по настройке NAT Gateway, маршрутов и security groups, когда Lambda в приватной подсети не выходит в интернет. CX Codex +1 6 100установок aws-deployment Скилл для ИИ-кодинга, который собирает CI/CD на AWS: CodePipeline, CodeBuild, CodeDeploy, CodeConnections и CodeArtifact. Пригодится, когда пайплайн встал на источнике или билд висит в приватной подсети. CX Codex +1 5 800установок aws-networking Маршрутизирует сетевые задачи по семи сервисам AWS к нужным специализированным скиллам. Помогает выбрать архитектуру связи или защиты от атак. CX Codex +1 5 900установок aws-cleanrooms Помогает агенту разобраться, почему в AWS Clean Rooms падают права доступа или не пишутся логи заданий кастомных ML-моделей. CX Codex +1 5 700установок aws-lambda-durable-functions Скилл учит ИИ писать долгоживущие функции AWS Lambda с сохранением состояния до одного года. Пригодится при сборке серверлесс-пайплайнов и пошаговых сценариев для ИИ-агентов. CX Codex +1 5 800установок

Похожие

google-cloud-filestore-log-troubleshooting официальный google Находит причины сбоев монтирования Google Cloud Filestore, ошибок доступа и сетевых тайм-аутов. Пригодится, если NFS перестал подключаться к VM, поду GKE или другой рабочей среде из списка. CX Codex 1 600установок dr-bedrock cline Разбирает ошибки авторизации и региона AWS Bedrock в Cline CLI: находит причину и подсказывает, что поправить. CX Codex +1 692установок aws-s3 devops-skills Шаблоны, политики и команды AWS CLI для развёртывания бакетов S3 с шифрованием KMS, репликацией и правилами жизненного цикла. CX Codex +1 345установок google-cloud-filestore-nfs-browser официальный google Скилл просматривает, ищет и читает файлы на Filestore в Google Cloud вместе с POSIX-метаданными. Подойдёт для удалённых логов и NFS-шар без локального NFS-клиента. CX Codex 2 500установок nfs-storage devops-skills Скилл для настройки NFS: экспорт каталогов на сервере, монтирование на клиентах, autofs и правка параметров. CX Codex +1 328установок troubleshooting-astro-deployments astronomer Скилл ведёт агента по шагам диагностики продакшн-развёртываний Astronomer через Astro CLI: логи, ошибки, переменные окружения. CX Codex +1 622установок

Рядом в теме «Облака: AWS, Azure, GCP»

Всё по теме «Облака: AWS, Azure, GCP» →

Вопросы о troubleshooting-efs

Как установить troubleshooting-efs в Claude?

Через skills CLI: npx skills add aws/agent-toolkit-for-aws --skill troubleshooting-efs -a claude-code. Файл скилла окажется в ~/.claude/skills/troubleshooting-efs/SKILL.md.

Что делает troubleshooting-efs?

Помогает агенту диагностировать сбои Amazon EFS: отказ монтирования, таймауты NFS, ошибки прав, проблемы с пропускной способностью и шифрованием. Симптом из ошибки определяет, какую ветку проверок агент пройдёт.

Какие инструменты нужны для работы скилла?

Нужен aws CLI и на инстансе — amazon-efs-utils или nfs-utils. Скилл проверяет их наличие и версии, но не выполняет изменяющих команд на этом шаге.

Исходный текст

SKILL.md · Apache-2.0
---
name: troubleshooting-efs
description: >
  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.
version: 1
---

# Troubleshooting EFS

## Overview

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](https://docs.aws.amazon.com/efs/latest/ug/troubleshooting.html).

## Common Tasks

### 0. Verify Dependencies

- You MUST verify `aws` CLI is available
- You MUST check if `amazon-efs-utils` or `nfs-utils` is installed on the instance
- You MUST ONLY check for tool existence and version — MUST NOT execute destructive or mutating commands during verification
- You MUST inform the user if any required tools are missing
- You MUST respect the user's decision to abort if tools are unavailable
- You SHOULD explain what each step does and why before executing it
- You SHOULD display write commands and wait for user confirmation before executing

### 1. Classify the Issue

| 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 |

### 2. Category A — Missing NFS Client

```bash
# Amazon Linux / RHEL / CentOS
sudo yum -y install amazon-efs-utils  # preferred (includes mount helper + TLS)
# OR
sudo yum -y install nfs-utils

# Ubuntu / Debian
sudo apt-get install nfs-common
```

### 3. Category B — Network/Security Group

Connection timeout is the #1 EFS mount failure — almost always security groups.

1. Verify mount target exists in the instance's AZ:

```bash
aws efs describe-mount-targets --file-system-id fs-ID --region REGION
```

1. Verify security groups — check BOTH directions:
   - Mount target SG: `aws ec2 describe-security-groups --group-ids sg-MT` — MUST have inbound TCP 2049 from compute SG
   - Compute SG: MUST have outbound TCP 2049 to mount target SG
   - Quick fix: `aws ec2 authorize-security-group-ingress --group-id sg-MT --protocol tcp --port 2049 --source-group sg-COMPUTE`

2. Test connectivity:

```bash
nc -zv fs-ID.efs.REGION.amazonaws.com 2049
```

> **Note:** These security group troubleshooting steps also apply to S3 Files. The only difference is S3 Files uses `aws s3files list-mount-targets` instead of `aws efs describe-mount-targets`.

### 4. Category C — IAM/Permissions

**"access denied by server" with `-o iam`:**

- Check identity-based IAM policy has `elasticfilesystem:ClientMount`
- Check file system resource policy:

```bash
aws efs describe-file-system-policy --file-system-id fs-ID --region REGION
```

**Note:** 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):**

- Check file/directory ownership: `ls -la /mnt/efs/`
- Use access points to enforce UID/GID for consistent permissions

### 5. Category D — Performance

**Check throughput mode:**

```bash
aws efs describe-file-systems --file-system-id fs-ID --region REGION --query 'FileSystems[0].ThroughputMode'
```

**Burst credit exhaustion (Bursting mode only):**

```bash
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)
```

If credits near zero, switch to Elastic throughput:

```bash
aws efs update-file-system --file-system-id fs-ID --throughput-mode elastic --region REGION
```

**General Purpose vs Max I/O:**

- Check `PercentIOLimit` metric — if consistently >80%, consider Max I/O
- Note: performance mode is IMMUTABLE — must create new FS and migrate

### 6. Category E — Encryption/KMS

NFS server error on encrypted FS = KMS key issue.

- Verify key is enabled in KMS console
- Verify EFS service-linked role has KMS permissions
- If key deleted: cancel deletion if within grace period

### 7. Category F — VPC DNS

DNS resolution failure = VPC DNS settings disabled.

```bash
aws ec2 describe-vpc-attribute --vpc-id vpc-ID --attribute enableDnsHostnames
aws ec2 describe-vpc-attribute --vpc-id vpc-ID --attribute enableDnsSupport
```

Both MUST be `true`. If not:

```bash
aws 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=true
```

## Troubleshooting

### Mount hangs then times out
Most common cause: security group. Verify TCP 2049 is open between compute and mount target.

### Auto-mount fails on reboot
`/etc/fstab` entry MUST include `_netdev` option to wait for network before mounting.

### "nfs not responding" after reconnect
Old kernel bug with TCP port reuse. Update kernel or add `noresvport` mount option.

### Enable Debug Logs

Set `logging_level = DEBUG` in `/etc/amazon/efs/efs-utils.conf`. Logs at `/var/log/amazon/efs/mount.log`.

### Collect Logs for AWS Support

```bash
sudo tar -czf /tmp/efs-logs.tar.gz /var/log/amazon/efs/ /etc/amazon/efs/efs-utils.conf
```

## Security Considerations

- IAM authorization is only enforced when a file system policy exists — without one, any VPC client with port 2049 access can mount
- When troubleshooting access denied, verify both identity-based and resource-based policies
- Use `-o tls` for encryption in transit — unencrypted NFS traffic is visible on the network
- Restrict `/var/log/amazon/efs/` access — logs may contain file system IDs and mount target IPs

## Additional Resources

- [EFS Troubleshooting](https://docs.aws.amazon.com/efs/latest/ug/troubleshooting.html)
- [EFS Performance](https://docs.aws.amazon.com/efs/latest/ug/performance.html)
- [EFS Mount Helper](https://docs.aws.amazon.com/efs/latest/ug/using-amazon-efs-utils.html)

© aws · Apache-2.0 · aws/agent-toolkit-for-aws

Смотрите также

Спонсоры проекта

Компании, которые помогают держать аналитику открытой