Как создать и примонтировать Amazon EFS на Ubuntu EC2
Краткое определение
Amazon Elastic File System (EFS) — это управляемая файловая система по протоколу NFS, которая автоматически масштабируется при добавлении или удалении файлов. Коротко: сетевой диск, который растёт и сжимается по мере необходимости.

Что в этой статье
- Создание EFS через веб-консоль AWS.
- Настройка сетевого доступа (VPC, подсети, Security Group).
- Установка драйверов efs-utils и монтирование на Ubuntu EC2.
- Альтернативные способы монтирования, рекомендации по безопасности и устранению неполадок.
Предварительные требования
- Аккаунт AWS (создайте, если нет).
- Запущенный экземпляр Ubuntu EC2 с правами SSH и корректной Security Group.
Когда стоит использовать EFS и когда нет
- Подходит, если вам нужен общий сетевой файловый доступ между несколькими EC2-инстансами и совместимость с NFS.
- Не подходит для высокопроизводительных блочных баз данных; для них лучше использовать Amazon EBS или специализированные решения.
- Не лучший выбор при строгих требованиях к задержке на уровне локального диска.
Важно: EFS обеспечивает совместный файловый доступ, но имеет сетевую задержку и стоимость, отличную от локальных дисков.
Вход в AWS
Перейдите на страницу входа в AWS и авторизуйтесь. После входа вы увидите панель управления.

После успешного входа откроется консоль управления AWS.

Создание EFS
- В консоли AWS найдите сервис EFS.

- На панели EFS нажмите «Create file system».

- На шаге «Configure Network Access» выберите VPC и подсети, в которых будут созданы mount target’ы. Выбирайте VPC, доступную в вашем регионе.

- Опционально добавьте теги в виде key:value. При желании включите Lifecycle Policy для перехода в класс Infrequent Access — но в этой инструкции оставим его отключённым. Оставьте режимы throughput и performance по умолчанию.

- Шифрование можно оставить выключенным для простоты; позже вы можете включить шифрование.

- Оставьте остальные опции по умолчанию и переходите дальше.

- Проверьте конфигурацию и нажмите «Create file system».

- После создания дождитесь состояния Mount Target = Available.

Совет: откройте инструкции по подключению (Mount instructions), они показывают DNS-имя и варианты монтирования.

Настройка Security Group
Перед подключением убедитесь, что Security Group EC2 разрешает входящий трафик NFS (порт 2049) от Security Group EFS или нужных источников.
- Откройте Security Group инстанса.

- Редактируйте Inbound Rules и добавьте правило, разрешающее NFS (TCP порт 2049) от Security Group, ассоциированной с EFS.

- Сохраните правила.

Важно: безопаснее указывать Security Group, а не «0.0.0.0/0». Так вы ограничите доступ только EC2-инстансам внутри вашего VPC.
Монтирование EFS на Ubuntu EC2
Подключитесь к вашему инстансу по SSH и выполните команды ниже.
Обновите индекс пакетов:
sudo apt-get update
Установите пакет nfs-common (клиент NFS):
sudo apt-get install -y nfs-common
Установите binutils (требуется для сборки пакета):
sudo apt-get install -y binutils
Клонируйте репозиторий amazon-efs-utils и соберите пакет (это даёт помощник монтирования efs):
git clone https://github.com/aws/efs-utils
cd efs-utils/
./build-deb.sh
Установите сгенерированный deb-пакет:
sudo apt-get -y install ./build/amazon-efs-utils*deb
Создайте директорию для точки монтирования:
mkdir -p ~/efsМонтирование с помощью EFS mount helper (рекомендуется)
Этот способ использует amazon-efs-utils и упрощает опции, включая TLS.
sudo mount -t efs fs-218e3690:/ ~/efs
Монтирование через классический NFS-клиент
Если вы предпочитаете nfs-common или хотите задать низкоуровневые опции:
- Отмонтируйте, если ранее монтировали:
sudo umount ~/efs- Смонтируйте с нужными опциями NFSv4.1:
sudo mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport fs-218e3690.efs.eu-west-3.amazonaws.com:/ ~/efs
Монтирование с TLS (шифрование в транзите)
Для шифрования трафика используйте опцию tls с efs mount helper:
sudo umount ~/efs
sudo mount -t efs -o tls fs-218e3690:/ ~/efs
Автоматическое монтирование при старте (fstab)
Для автоматического монтирования добавьте строку в /etc/fstab. Пример для efs-utils с TLS:
fs-218e3690:/ /home/ubuntu/efs efs tls,_netdev 0 0Примечание: обязательно используйте опцию _netdev, чтобы монтирование выполнялось после поднятия сети.
Проверка и контроль
- Проверьте статус монтирования:
df -h | grep efs
mount | grep efs- Создайте файл и убедитесь, что он видим с другого инстанса, подключённого к той же EFS.
Критерии приёмки
- Mount Target доступен (Available) в консоли EFS.
- Security Group разрешает TCP 2049 между EC2 и EFS.
- Директория успешно смонтирована и чтение/запись работают с ожидаемыми правами.
- (Опционально) TLS включён, если требуется шифрование в транзите.
Рекомендации по безопасности и конфиденциальности
- Ограничьте доступ по Security Group, указывая только доверенные группы/инстансы.
- Рассмотрите включение шифрования в покое (если требуется соответствие): при создании EFS можно включить шифрование.
- Для персональных данных изучите соответствие требованиям локального законодательства и GDPR при передаче данных в облако.
Отказоустойчивость и производительность
- EFS автоматически масштабируется и распределяет данные.
- Для более высокого throughput используйте режимы производительности/throughput (см. документацию AWS).
- Для рабочих нагрузок с низкой задержкой и интенсивными записями предпочтительнее EBS.
Устранение неполадок (быстрый чеклист)
- Если монтирование не работает: проверьте Security Group и Network ACL.
- Проверьте DNS-имя mount target: убедитесь, что используется корректное региональное имя.
- Проверьте логи dmesg и /var/log/syslog для ошибок NFS или permission denied.
- Убедитесь, что в fstab указана опция _netdev для сетевых файловых систем.
Модель принятия решения (Mermaid)
flowchart TD
A[Нужен общий файловый доступ между EC2?] -->|Да| B{Нужны низкая задержка и блоковое хранилище?}
A -->|Нет| C[Не использовать EFS]
B -->|Да| D[Использовать EBS или специализированный диск]
B -->|Нет| E[Использовать EFS]
E --> F[Выбрать режим производительности и lifecycle policy]Альтернативы
- Amazon EBS — блочное хранилище, привязывается к одному инстансу (подходит для баз данных).
- Amazon FSx — файловые системы с другими протоколами и характеристиками (Windows/NetApp).
- Самостоятельный NFS-сервер на EC2 — даёт полный контроль, но требует управления и резервирования.
Роли и чеклист перед внедрением
- Сетевой инженер: проверить VPC, субсети, Security Group.
- Администратор Linux: установить nfs-common и efs-utils, настроить точки монтирования.
- DevOps/архитектор: выбрать режимы throughput и lifecycle policy.
- Безопасность: проверить шифрование и доступы.
Заключение
В статье показано, как быстро создать Amazon EFS через консоль AWS и примонтировать его на Ubuntu EC2 двумя основными способами: через efs-utils (рекомендуемый) и через стандартный NFS-клиент. EFS упрощает совместный доступ к файлам между инстансами и автоматически масштабируется. Выберите EFS, если вам нужен совместный файловый доступ и простота управления; выбирайте другие решения при строгих требованиях к задержке или блочному доступу.
Краткое резюме:
- Создайте EFS в нужном VPC и подсетях.
- Настройте Security Group для TCP 2049.
- Установите efs-utils и смонтируйте с опцией tls для шифрования в транзите.
Важно: тестируйте производительность и права доступа на раннем этапе внедрения.
Похожие материалы
Троян Herodotus: как он работает и как защититься
Включить новое меню «Пуск» в Windows 11
Панель полей PivotTable в Excel — руководство
Включить новый Пуск в Windows 11 — инструкция
Как убрать дубликаты Диспетчера задач Windows 11