Amazon EFS на Ubuntu EC2: настройка и монтирование

О чём эта статья
Amazon Elastic File System (EFS) — управляемая файловая служба, реализующая протокол NFSv4.x. Она автоматически масштабируется по мере добавления и удаления файлов. Это альтернатива традиционным NFS-серверам и удобный способ снабдить несколько EC2-инстансов общим файловым хранилищем.
Ключевые темы:
- создание файловой системы EFS в консоли AWS;
- настройка сетевого доступа и правил безопасности;
- установка efs-utils и монтирование на Ubuntu EC2 тремя способами: помощник EFS, NFS-клиент, TLS-монтирование;
- проверка, отладка и рекомендации по безопасности.
Важно: статья предполагает, что вы знакомы с запуском EC2-инстансов и основными операциями в AWS. Если нужно — сначала создайте Ubuntu EC2 инстанс в выбранном регионе.
Краткие определения
- EFS: управляемая файловая система с доступом по NFS.
- Mount target: сетевой узел в подсети VPC, через который экземпляры подключаются к EFS.
- efs-utils: пакет от AWS, который упрощает монтирование EFS и поддерживает TLS.
Предварительные условия
- AWS аккаунт.
- Ubuntu EC2 инстанс с доступом к нужной VPC/subnet.
- Права IAM, позволяющие создавать EFS (обычно — пользователь с правами администратора или эквивалентными).
Что мы сделаем
- Войдём в AWS Management Console и создадим файловую систему EFS.
- Настроим security group для доступа по NFS (порт 2049).
- Подключимся к Ubuntu EC2 и смонтируем файловую систему тремя способами.
Создание EFS в консоли AWS
Откройте AWS Console и найдите сервис “EFS”. Нажмите “Create file system”.

Вы увидите панель EFS. Нажмите “Create file system” и пройдите этапы настройки.

На шаге конфигурации сети выберите VPC и подсети, в которых вы хотите создать mount targets. Для каждого Availability Zone EFS создаёт mount target в указанной подсети.

На странице настроек системы при необходимости добавьте теги. По умолчанию оставьте Lifecycle Policy, режим производительности и throughput без изменений, если у вас нет специальных требований.

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

Проверьте настройки клиента и создайте файловую систему.

После создания дождитесь, пока состояние Mount Target изменится на Available.

Откройте инструкцию по монтированию, чтобы увидеть рекомендуемые команды и endpoint для вашей файловой системы.

Настройка security group для доступа по NFS
Вы должны разрешить трафик NFS (порт 2049) от security group ваших EC2-инстансов к security group EFS. Обычно добавляют правило Inbound в security group EC2 с источником — security group EFS.

Отредактируйте входящие правила и добавьте правило для NFS.

Разрешите доступ для security group EFS на порт 2049 и сохраните изменения.

Подключение и монтирование EFS на Ubuntu EC2
Подключитесь по SSH к вашему Ubuntu-инстансу и выполните обновление локального репозитория пакетов:
sudo apt-get update
Установите nfs-common, который нужен для NFS-клиента:
sudo apt-get install -y nfs-common
Установите binutils, если требуется для сборки пакета efs-utils:
sudo apt-get -y install binutils
Клонируйте репозиторий efs-utils и соберите пакет .deb:
git clone https://github.com/aws/efs-utils
cd efs-utils
./build-deb.sh
sudo apt-get -y install ./build/amazon-efs-utils*deb

Создайте каталог для монтирования, например в домашней директории:
sudo mkdir -p /home/ubuntu/efs
sudo chown ubuntu:ubuntu /home/ubuntu/efsМонтирование с помощью EFS mount helper (рекомендуется)
Mount helper упрощает монтирование и поддерживает опцию tls для шифрования трафика в транзите.
sudo mount -t efs fs-218e3690:/ /home/ubuntu/efsЗамените fs-218e3690 на ваш файловый идентификатор EFS (виден в консоли).

Монтирование через стандартный NFS-клиент
Если по какой-то причине вы не используете efs-utils, можно смонтировать напрямую по NFSv4.1:
- Отмонтируйте предыдущую точку монтирования, если она занята:
sudo umount /home/ubuntu/efs- Смонтируйте через nfs4 с рекомендованными параметрами:
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:/ /home/ubuntu/efsПараметры rsize/wsize и прочие можно адаптировать под вашу сеть и рабочую нагрузку.

Монтирование с использованием TLS (шифрование трафика)
Для шифрования трафика в полёте используйте опцию tls через efs-utils:
sudo umount /home/ubuntu/efs
sudo mount -t efs -o tls fs-218e3690:/ /home/ubuntu/efs
TLS защищает данные при передаче, но не шифрует данные на стороне сервера (для этого включайте шифрование at-rest в настройках EFS при создании).
Автоматическое монтирование при загрузке
Чтобы автоматически монтировать EFS при старте инстанса, добавьте запись в /etc/fstab. Пример для mount helper с TLS:
fs-218e3690:/ /home/ubuntu/efs efs _netdev,tls,_netdev 0 0Для NFS-варианта запись может выглядеть так:
fs-218e3690.efs.eu-west-3.amazonaws.com:/ /home/ubuntu/efs nfs4 defaults,_netdev 0 0После изменения /etc/fstab проверьте командой:
sudo mount -aЕсли возникают ошибки, проверьте systemd journal и логи монтирования.
Проверка и отладка
Проверка базовой доступности:
df -h | grep efs
ls -la /home/ubuntu/efs
touch /home/ubuntu/efs/testfile && echo OK > /home/ubuntu/efs/testfile && cat /home/ubuntu/efs/testfileПолезные команды для отладки:
- просмотр syslog и journalctl для ошибок монтирования;
- telnet host 2049 или nc -zv host 2049 для проверки сетевого доступа на порт NFS;
- проверка правил security group и маршрутизации между подсетями.
Типичные причины проблем:
- неверный security group (нет разрешения на порт 2049);
- mount target ещё не в статусе Available;
- проблема с маршрутами VPC или ACL подсети;
- DNS-имя EFS не резолвится внутри VPC (проверьте настройки DNS VPC).
Рекомендации по безопасности
- Ограничьте источник доступа к порту 2049 только тем security group, которым требуется доступ.
- Используйте TLS для шифрования транспорта, если требуется защита данных в полёте.
- Включите шифрование данных at-rest при создании EFS, если требуется конфиденциальность на уровне хранения.
- Контролируйте права POSIX в точке монтирования — EFS использует POSIX-права, назначаемые на уровне файлов и директорий.
Альтернативы и когда EFS может не подойти
- Если вам нужен блочный диск, используйте EBS (Elastic Block Store).
- Для объектного хранения и доступов по HTTP(S) используйте Amazon S3.
- Если приложения требуют низкой задержки локального диска и высокой производительности на одном инстансе, EBS или локальные NVMe могут быть предпочтительнее.
EFS хорош для совместного доступа нескольких инстансов и для рабочих нагрузок с характерной файловой моделью.
Роль‑ориентированные чек‑листы
DevOps / Системный администратор:
- Создать EFS и mount targets в нужных подсетях.
- Обеспечить правильные security group и маршруты.
- Настроить автоматическое монтирование и мониторинг.
Разработчик:
- Проверить доступность файловой системы с тестовой записи/чтения.
- Убедиться, что права POSIX соответствуют требованиям приложения.
Архитектор:
- Оценить требования по производительности и выбор throughput/режима.
- Решить, нужно ли использовать lifecycle policy для хранения в Infrequent Access.
Критерии приёмки
- Файловая система создана и mount target в состоянии Available.
- EC2-инстанс успешно монтирует EFS и выполняет операции чтения/записи.
- Ограничения безопасности соблюдены (port 2049 открыт только для нужных источников).
Мини‑методология развертывания (шаги)
- Создать EFS и убедиться, что mount targets созданы в нужных подсетях.
- Настроить security group (разрешить NFS между EC2 и EFS).
- Установить efs-utils на Ubuntu и проверить монтирование вручную.
- Добавить запись в /etc/fstab для автозагрузки и протестировать reboot.
- Настроить мониторинг и бэкапы, при необходимости включить lifecycle policy.
Короткая проверка после развертывания
- Создайте файл в /home/ubuntu/efs на одном инстансе и прочитайте на другом.
- Проверьте права и UID/GID, чтобы приложения корректно работали в распределённой среде.
Заключение
Мы рассмотрели создание Amazon EFS в консоли AWS и несколько способов монтирования на Ubuntu EC2: через efs-utils (рекомендуется), через стандартный NFS-клиент и с использованием TLS. Также привели советы по безопасности, отладке и автоматизации монтирования. EFS удобно использовать, когда требуется общая POSIX-совместимая файловая система для множества инстансов.
Важно протестировать выбранную конфигурацию под вашей рабочей нагрузкой и убедиться, что параметры throughput и режим производительности соответствуют ожиданиям.
В следующем шаге можно автоматизировать развертывание с помощью Terraform или CloudFormation и добавить мониторинг (CloudWatch) для метрик использования и производительности.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента