Спільне використання файлової системи між серверами з AWS EFS
У середовищі з багатьма серверами, де потрібен загальний доступ до файлів, необхідно налаштувати NFS (мережеву файлову систему). Хоча NFS дозволяє використовувати файлову систему спільно між кількома серверами, її впровадження вимагає певного досвіду в адмініструванні.
У традиційній інфраструктурі для налаштування NFS може знадобитися залучення різних команд та витрата значного часу. Однак, якщо ви користуєтеся AWS, ви можете реалізувати це за лічені хвилини, використовуючи сервіс EFS (Elastic File System).
AWS EFS надає масштабоване файлове сховище, призначене для використання з EC2. Вам не потрібно турбуватися про прогнозування обсягів зберігання, оскільки ресурс може динамічно збільшуватися або зменшуватися залежно від потреби.
Для наочності, нижче наведено ілюстрацію з офіційного сайту AWS, що демонструє принцип роботи EFS:
Основні переваги EFS:
- Повне керування з боку AWS.
- Оплата за фактичне використання, що робить сервіс економічно вигідним.
- Висока доступність та надійність зберігання даних.
- Автоматичне масштабування залежно від потреб.
- Гнучка продуктивність.
В цій інструкції я продемонструю, як створити один EFS та підключити його до двох запущених інстансів EC2 Ubuntu.
Розпочнімо:
- Авторизуйтесь у консолі AWS.
- Перейдіть у розділ “Сервіси” та виберіть EFS у категорії “Сховище” (пряме посилання).
- Натисніть “Створити файлову систему”.
- AWS автоматично призначить IP-адресу у зоні доступності. Змінити це можна на наступному кроці.
- За потреби додайте тег і виберіть режим продуктивності між “Загальним призначенням” та “Максимальним вводом/виводом”.
- Перевірте конфігурацію і, якщо все гаразд, натисніть “Створити файлову систему”.
Процес створення може зайняти деякий час. Після завершення ви отримаєте повідомлення про успішне створення.
Вітаємо! Ви створили файлову систему. Тепер ви можете підключити її до інстансу EC2, де встановлено клієнт NFSv4.1. Також можливе підключення з локальних серверів через з’єднання AWS Direct Connect.
Створена файлова система відобразиться у вашому списку.
Отже, ви створили EFS, і тепер все готово до підключення на інстансах EC2.
Підключення EFS до EC2
Перед підключенням необхідно встановити клієнт NFS. Розгорнувши список і натиснувши “Інструкції з підключення Amazon EC2”, ви отримаєте необхідну інформацію.
Розглянемо цей процес детальніше:
- Зайдіть на обидва інстанси EC2 та встановіть клієнт NFS. Оскільки у мене Ubuntu, я використовуватиму наступну команду:
apt-get install nfs-common
- Створіть каталог, в який буде підключено EFS.
Наприклад: /apps
cd /
mkdir apps
Змонтуйте файлову систему, використовуючи команду з інструкції.
Наприклад:
mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2 fs-4fd14a06.efs.us-east-1.amazonaws.com:/ apps
Примітка: Якщо виникли труднощі з підключенням, зверніться до посібника з усунення несправностей. Також не забудьте перевірити налаштування груп безпеки:
- Порт NFS (2049) має бути дозволений у правилах вхідного трафіку інстансу EC2.
- Групи безпеки EC2 повинні бути дозволені у групах безпеки EFS.
Після виконання команди ви побачите, що /apps підключено, якщо виконати df -h:
[email protected]:/# df -h | grep apps
fs-4fd14a06.efs.us-east-1.amazonaws.com:/ 8.0E 0 8.0E 0% /apps
[email protected]:/#
Тепер необхідно зайти на інший сервер, де також потрібен доступ до /apps, та повторити процедуру створення каталогу та підключення EFS.
Щоб перевірити, я підключив свій EFS на іншому сервері, і бачу, що /apps доступний на обох серверах.
[email protected]:/apps# df -h | grep apps
fs-4fd14a06.efs.us-east-1.amazonaws.com:/ 8.0E 0 8.0E 0%
/apps [email protected]:/apps#
Все доволі просто, чи не так?
Я спробував створити декілька файлів, і продуктивність загалом виглядає добре. AWS EFS — це перспективне рішення, і якщо вам потрібен спільний доступ до файлової системи між інстансами EC2, спробуйте, я впевнений, що ви будете задоволені.
Хочете дізнатися більше про AWS? Перегляньте цей Курс Udemy.
Чи сподобалася вам стаття? Поділіться нею зі світом!