Amazon EFS или Elastic File System — файловое хранилище, которое можно использовать с интансами EC2. Можно рассматривать как NFS в облаке AWS.
Amazon EFS — файловое хранилище для EC2
Основные преимущества использования EFS:
- малые операционные задержки
- высокая пропускная способность
Как начать пользоваться:
Для инстансов присваивается efs security group, разрешающая доступ к порту 2049
Создается файловая система EFS
Создаем mount target
Устанавливается nfs клиент на ec2 машину
Каталог для монтирования и монтирование файловой системы EFS
Чтобы выполнить все действия нужно знать VPC ID, EC2 security group, EC2 sebnet ID
Значения получаются следующими командами
ws ec2 describe-vpcs
Из вывода нужно взять vpc id
aws ec2 describe-instances
Здесь будут security group ID и subnet ID
Создаем security group
aws ec2 create-security-group --region us-west-2 --group-name efs-sg --description "EFS Security Group" --vpc-id vps-dffdkngdfjgn
В качестве vpc id в примере указана последовательность dffdkngdfjgn
Добавляем правило в firewall
aws ec2 authorize-security-group-ingress --group-id ID protocol tcp --port 2049 --source-group ID2 region --us-west-2
ID security-group получен на предыдущем шаге
Проверяем
aws ec2 describe-security-groups --group-id ID
Создание файловой системы
aws ec2 create-file-system --creation-token UNIQUTOKEN --regios us-west-2
Получен уникальный идентификатор.
Создаем mount target
aws ec2 create-mount-target --file-system-id FSID --subnet-id fgfdfvdfv --source-group ID2 --regios us-west-2
FSID — копируем значение с предыдущего шага, вставляем.
В результате имеем mount target id и идентификатор EFS mount
aws efs describe-mount-targets --mount-target-id jnjnjn
Теперь монтируем на ec2 сервере
На сервере (CentOS 7):
curl -s http://ip/latest/meta-data/placement/availability-zone
## EFS : us-west-2a.OurfsID.efs.us-west-2a.amazonaws.com/
//availability-zone.file-system-id.efs.aws-region.amazonws.com:/
В выводе 'us-west-2a'
Теперь ставим клиент
yum instll nfs-utils
Создаем точку монтирования
mkdir /efsshare
Монтируем
mount -t nfs4 -o nfsvers=4.1,rsize=10408576,wsize=10408576,hard,timeo=600,retrans=2 us-west-2a.OurfsID.efs.us-west-2a.amazonaws.com:/ /efsshare
df покажет 6 exabytes, использовать можно любой объем и платить только за него.
df -h /efsshare
Добавляем строку в /etc/fstab чтобы раздел примонтировался после перезагрузки машины
mcedit /etc/fstab
us-west-2a.OurfsID.efs.us-west-2a.amazonaws.com:/ /efsshare nfs4 nfsvers=4.1,rsize=10408576,wsize=10408576,hard,timeo=600,retrans=2 0 0
Читайте про автоматическое монтирование дисков и разделов с настройкой в /etc/fstab и про управление виртуальными машинами в AWS