Ответ
Для создания общей файловой системы, доступной для множества инстансов EC2 одновременно, в AWS используется сервис Amazon Elastic File System (EFS). Это полностью управляемый, бессерверный сетевой файловый сервис (NFSv4), который автоматически масштабируется.
Ключевые характеристики и сценарии использования:
- Общий доступ: Одна файловая система EFS может быть смонтирована на инстансах EC2 в разных Availability Zones (AZ) внутри одного региона, обеспечивая согласованный доступ к данным.
- Использование с контейнерами: Идеально подходит для Kubernetes (EKS) в качестве PersistentVolume для подов, которым нужен общий доступ к данным (например, для контента веб-сервера или общих конфигураций).
- Автомасштабирование: Платите только за используемое место. Пропускная способность масштабируется с размером файловой системы.
Практический пример: Монтирование EFS на инстанс EC2 с Amazon Linux 2
-
Создание EFS (через AWS CLI):
# Создание файловой системы с политикой жизненного цикла (перемещение в Infrequent Access через 30 дней) aws efs create-file-system --performance-mode generalPurpose --throughput-mode bursting --lifecycle-policies "TransitionToIA=AFTER_30_DAYS" --tags Key=Name,Value=MySharedFS -
Создание точек монтирования (Mount Targets) в каждой используемой подсети.
-
Монтирование на инстансе EC2:
# Установка утилиты для монтирования EFS sudo yum install -y amazon-efs-utils # Создание директории для монтирования sudo mkdir /mnt/efs # Монтирование с использованием стандартного TLS-транспорта (рекомендуется) sudo mount -t efs -o tls,accesspoint=fsap-12345678 fs-id:/ /mnt/efs # Для автоматического монтирования при перезагрузке добавить в /etc/fstab echo "fs-id:/ /mnt/efs efs _netdev,tls,accesspoint=fsap-12345678 0 0" | sudo tee -a /etc/fstab
Сравнение с альтернативами в AWS:
| Сервис | Модель доступа | Лучший сценарий использования |
|---|---|---|
| EFS | Многопользовательский, NFS | Общие домашние директории, контент веб-серверов, хранилище для CI/CD (например, общие кэши). |
| EBS | Только один инстанс (если не использовать специальные решения) | Базы данных, загрузочные тома, приложения, требующие низкой задержки и высокой IOPS. |
| FSx for Lustre | Высокопроизводительный параллельный доступ (HPC) | Модели машинного обучения, финансовое моделирование, обработка медиа. |
| FSx for Windows File Server | Многопользовательский, SMB | Нагрузки, ориентированные на Windows (AD, .NET приложения). |
Для обеспечения высокой доступности EFS сама по себе развертывается в нескольких AZ. Для повышения производительности можно выбрать режим пропускной способности Provisioned вместо Bursting.