Гид по технологиям

EFS + ECS: подключение общего тома

• 5 min read • AWS • Обновлено 18 Nov 2025
EFS + ECS: подключение общего тома
EFS + ECS: подключение общего тома

Схема подключения EFS и ECS

Быстрые ссылки

  • Почему это полезно?
  • Создание файловой системы EFS
  • Локальное монтирование и предзагрузка данных
  • Подключение к развертыванию ECS
  • Устранение неполадок и безопасность

Почему это полезно?

Amazon Elastic File System (EFS) — это полностью управляемая серверная сеть общего файлового хранилища, которую можно одновременно примонтировать к множеству экземпляров или контейнеров. В сочетании с Amazon ECS (Elastic Container Service) EFS решает типичную проблему контейнеров: отсутствие постоянного локального дискового хранилища.

Коротко:

  • EFS даёт долговечность и совместный доступ к файлам между задачами.
  • Подходит для статического контента сайтов, общих артефактов, логов и кешей.
  • Упрощает миграцию и масштабирование, так как данные не привязаны к конкретному экземпляру ECS.

Важно: EFS — это сетевое хранилище, поэтому задержки и пропускная способность зависят от сети и выбранных параметров (Throughput mode). Для высокочувствительных к задержкам сценариев стоит протестировать производительность.

Создание файловой системы EFS

  1. Перейдите в AWS Management Console → EFS → Create file system.
  2. Укажите имя (Tag) и выберите VPC, где располагаются ваши кластеры ECS.
  3. Создайте точки монтирования (mount targets) в нужных подсетях, чтобы ECS-таски могли достучаться до EFS.
  4. Обратите внимание на File System ID — он потребуется дальше.

Форма создания файловой системы EFS с выбором VPC

Выбор VPC и подсетей для точек монтирования EFS

Идентификатор файловой системы (File System ID) в консоли EFS

Совет: создавайте точки монтирования в каждой подсети, где у вас будут задачи ECS, чтобы избежать сетевых ограничений.

Локальное монтирование и предзагрузка данных

Если нужно предварительно загрузить файлы в EFS или вручную проверить содержимое, можно примонтировать том к EC2-инстансу.

Установите утилиты:

sudo yum install -y amazon-efs-utils

Затем примонтируйте, подставив ваш File System ID:

sudo mount -t efs fs-12345678:/ /mnt/efs

Убедитесь, что установлены nfs-utils, и что Security Group вашей точки монтирования разрешает трафик NFS (порт 2049) с EC2 и из VPC, где работают ECS задачи.

Важно: EFS использует NFSv4.1; убедитесь, что в параметрах монтирования используются совместимые опции.

Подключение к развертыванию ECS

Чтобы использовать EFS в задачах ECS, откройте консоль ECS и создайте/отредактируйте task definition. В нижней части выберите “Configure via JSON” и замените пустой ключ “volumes” на JSON-конфигурацию, похожую на следующую. Не забудьте заменить адрес на ваш.

"volumes": [
  {
    "name": "efs-demo",
    "host": null,
    "dockerVolumeConfiguration": {
      "autoprovision": true,
      "labels": null,
      "scope": "shared",
      "driver": "local",
      "driverOpts": {
        "type": "nfs",
        "device": ":/",
        "o": "addr=fs-XXXXXX.efs.us-east-1.amazonaws.com,nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport"
      }
    }
  }
],
"family": "nginx",

Замените fs-XXXXXX.efs.us-east-1.amazonaws.com на DNS-имя вашей файловой системы EFS (можно найти в консоли EFS).

После сохранения вы увидите новый том в списке volumes в определении задачи.

Новый том EFS в определении задачи ECS

Далее в определении контейнера нажмите Add Container или отредактируйте существующий контейнер. В секции Storage And Logging выберите созданный том и укажите путь в контейнере (container path), например /usr/share/nginx/html.

Добавление точки монтирования в контейнере ECS

Сохраните task definition и запустите сервис/задачу. Все контейнеры, использующие этот том, получат доступ к единому файловому дереву.

Примеры использования и ограничения

Когда это работает хорошо:

  • Статический контент сайтов (HTML, изображения)
  • Общие конфигурации и шаблоны
  • Совместные кеши или очереди на файловой системе

Когда это может не подойти:

  • Высокопроизводительные случайные I/O операции требуют локального SSD
  • Сценарии с высокими пиковыми нагрузками на запись, где требуются специальные показатели IOPS
  • Если контейнеры развернуты в разных AWS регионах — EFS работает в пределах региона

Безопасность и сетевые настройки

  • Security Groups: разрешите порт 2049 (NFS) между вашими задачами/инстансами и точками монтирования EFS.
  • IAM и политики: управление доступом к консоли EFS через IAM, но само монтирование контролируется сетевыми правилами и правами файловой системы (POSIX).
  • POSIX-права: внутри тома используют обычные UNIX-права — убедитесь, что uid/gid контейнеров согласованы для доступа.
  • Шифрование: включайте шифрование данных в покое (EFS предлагает опцию) и шифрование in-transit при необходимости.

Рекомендация: используйте least privilege в Security Groups и проверяйте, что только нужные подсети/службы имеют доступ к NFS.

Альтернативы

  • Amazon S3 + s3fs или SDK: хорошо для статического контента, но поведение и семантика файлов отличаются (лучше для объектов, а не POSIX).
  • EBS с файловой системой и файловым шарингом через NFS на EC2: более контролируемая, но требует управления EC2 и доступности.
  • Сетевые файловые системы сторонних поставщиков на EC2: когда нужны специфические характеристики производительности.

Модель принятия решений (простая)

Mermaid (логика выбора):

flowchart TD
  A[Нужно ли совместное POSIX-совместимое хранилище?] -->|Да| B{Требуется ли высокая IOPS/латентность?}
  B -->|Да| C[Рассмотреть EBS/локальные SSD или специализированное решение]
  B -->|Нет| D[Использовать EFS]
  A -->|Нет| E[Рассмотреть S3 или локальные тома контейнеров]

Роль‑ориентированные чек-листы

Для разработчика:

  • Указать корректный container path.
  • Проверить права доступа (uid/gid).
  • Тестировать работу с файловой системой локально (через EC2).

Для инженера DevOps:

  • Создать точки монтирования для всех нужных подсетей.
  • Настроить Security Groups для порта 2049.
  • Подготовить task definition и протестировать в staging.

Для инженера по безопасности:

  • Проверить шифрование данных в покое и при передаче.
  • Убедиться в принципе наименьших привилегий в сетевых правилах.

Устранение неполадок

Проблемы и что проверить:

  • Контейнер не видит файлы: проверьте mount point и права в контейнере.
  • Таймауты NFS: проверьте сетевые правила и доступность mount target в той же подсети.
  • Медленная работа: замеряйте задержку и throughput; при необходимости измените режим пропускной способности EFS.

Мини‑методология: быстрый план внедрения

  1. Создать EFS и точки монтирования в нужных подсетях.
  2. Примонтировать к EC2 и предзагрузить файлы, проверить POSIX-права.
  3. Подготовить task definition с JSON-томом и добавить mount point в контейнер.
  4. Запустить тестовые задачи в staging и прогнать нагрузочный тест.
  5. Перенести в production и мониторить производительность.

Критерии приёмки

  • Контейнеры в staging видят и читают файлы из тома.
  • Права и владение файлов соответствуют требованиям приложения.
  • Нет сетевых ошибок NFS в логах.
  • Производительность соответствует ожиданиям на тестовой нагрузке.

Глоссарий (в одну строку)

EFS — управляемая сетьвая файловая система AWS; ECS — служба управления контейнерами в AWS; NFS — сетевой протокол файловой системы.

Итог

EFS — удобный способ предоставить контейнерам ECS единое POSIX-совместимое хранилище, особенно для статического контента и совместного доступа к файлам. Важно учитывать сетевые требования, права доступа и ограничения по производительности; для критичных по задержке сценариев рассмотрите альтернативы.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро