Еластична файлова система (EFS) монтується поза AWS


23

У мене є сервер, який знаходиться поза межами AWS. Я хотів би мати можливість встановити на ньому об'єм EFS, але я не впевнений, чи можливо це.

Можливо, якщо ви створюєте VPC, а ви створюєте тунель над VPN?

Хтось знає, чи можливо це?


Це, безумовно, можливо ... Я вже деякий час використовую EFS за межами AWS над тунелем TLS ... але є трохи "трюк", який я вважаю, що вам потрібно буде здійснити, щоб зробити це робота. Я підтверджую, що те, що я роблю це, насправді є необхідним (минув час, коли я його встановив) або чи можливо без цього, і я опублікую відповідь, як тільки можу підтвердити.
Michael - sqlbot

EFS призначена для спільної файлової системи для декількох екземплярів EC2. Зовні вам слід подумати про використання S3 (який схожий на файлову систему, насправді це сховище об’єктів) або, можливо, невеликий екземпляр EC2 з екземпляром EBS. Це може бути дешевше, ніж EFS - EBS на SSD становить 1/3, ціна EFS, EBS на магнітному - 1/6, вартість EFS, а S3 - 1/10 від вартості EFS. Чого саме ви намагаєтеся досягти, щоб зробити EFS найкращим варіантом?
Тім

Я думав, що оскільки його називають файловою системою ELASTIC, її легко буде підключити до AWS. Крім того - якщо я хотів зробити резервну копію файлів за межами AWS, це буде важко, якщо не неможливо зробити з S3. З EFS я можу просто встановити його на екземпляр EC2 і виконати резервне копіювання. Але якщо їм обом потрібен VPN, я думаю, це має дуже незначну різницю ...
Адам,

S3 легко доступний ззовні AWS, за дизайном, набагато простіше для інтеграції / резервного копіювання / все, що насправді - надзвичайно гнучкий. EFS розроблений як спільна файлова система між екземплярами EC2, тому, ймовірно, буде складніше використовувати поза AWS, ймовірно, вимагати екземпляр EC2 як проксі. Не потрібно VPN. Запропонуйте вам обговорити випадки використання з кимось кваліфікованим / досвідченим, а не робити припущення та стрибати.
Тім

Відповіді:


40

Важливі оновлення:

У жовтні 2018 року AWS розширила можливості мережевої технології, що лежить в основі EFS, так що тепер вона функціонує впорядковано через керовані VPN-з'єднання та міжрегіональний VPC, не вдаючись до докладної розробки проксі, описаної нижче.

https://aws.amazon.com/about-aws/whats-new/2018/10/amazon-efs-now-supports-aws-vpn-and-inter-region-vpc-peering/

В кінці 2016 року EFS додала підтримку підключення через схеми AWS Direct Connect.

https://aws.amazon.com/blogs/aws/amazon-efs-update-on-premises-access-via-direct-connect-vpc/


Зауваження викликали кілька цікавих питань, оскільки в моєму першому прочитанні питання я, можливо, припустив більше знайомства з EFS, ніж ви можете.

Отже, спочатку трохи тла:

"Еластичний" в системі еластичних файлів відноситься насамперед до автоматичного масштабування місця зберігання та пропускної здатності, а не до зовнішньої гнучкості доступу.

Здається, EFS не має жодних значущих обмежень щодо кількості даних, які можна зберігати. Задокументований максимальний розмір будь-якого одного файлу на томі EFS становить 52,673,613,135,872 байт (52 TiB) . Більшість інших меж аналогічно щедрі.

EFS особливо "еластичний" у способі його виставлення рахунків. На відміну від файлових систем на томах EBS, простір не виділяється на EFS, і ви платите лише за те, що зберігаєте щорічно в середньому. Ваші збори зростають і зменшуються (вони "еластичні") залежно від того, скільки ви зберегли. Коли ви видаляєте файли, ви припиняєте платити за місце, яке вони займали протягом години. Якщо ви зберігаєте 1 Гб протягом 750 годин (≅1 місяць), а потім видаляєте його, або якщо ви зберігаєте 375 Гб протягом 2 годин, а потім видаляєте, ваш щомісячний рахунок буде таким самим ... 0,30 долара. Це, звичайно, зовсім інше, ніж EBS, який із задоволенням виставить вам $ 37,50 за зберігання 375 Гб 0x00протягом решти годин у місяці.

Модель ціноутворення на зберігання S3 майже така ж, як і EFS, оскільки виставлення рахунків за зберігання припиняється, як тільки ви видаляєте об'єкт, а вартість становить ~ 1/10 вартість EFS, але, як я та інші згадували багато разів, S3 не є файлова система. Такі утиліти, як s3fs-fuse, намагаються надати "імпедансний міст", але є притаманні труднощі при спробі трактувати щось, що насправді не є файловою системою, як ніби це (можлива послідовність перезаписів не є найменшою з них). Отже, якщо справжня "файлова система" - це те, що вам потрібно, і це для програми, де доступ повинен бути спільним, або потрібний простір для зберігання важко визначити або ви хочете, щоб він масштабувався за потребою, EFS може бути корисним.

І це виглядає круто, коли у вас 8,0 Ебі вільного місця.

$ df -h | egrep '^Filesystem|efs'
Filesystem                                            Size  Used Avail Use% Mounted on
us-west-2a.fs-5ca1ab1e.efs.us-west-2.amazonaws.com:/  8.0E  121G  8.0E   1% /srv/efs/fs-5ca1ab1e
us-west-2a.fs-acce55ed.efs.us-west-2.amazonaws.com:/  8.0E  7.2G  8.0E   1% /srv/efs/fs-acce55ed

Але, звичайно, важливо використовувати службу зберігання, найбільш відповідну вашим програмам. Кожен із варіантів має свої дійсні випадки використання. EFS, мабуть, є найбільш спеціалізованим із рішень для зберігання даних, пропонованих AWS, і має більш вузький набір випадків використання, ніж EBS або S3.


Але чи можете ви використовувати його за межами VPC?

Офіційна відповідь - ні :

Монтаж файлової системи через приватні механізми підключення VPC, такі як VPN-з'єднання, VPC peering та AWS Direct Connect, не підтримується.

- http://docs.aws.amazon.com/efs/latest/ug/limits.html

Наразі EFS обмежений лише доступом до EC2 Linux. Це теж всередині VPC. Більше можливостей буде додано незабаром. Ви можете постійно стежити за новинами AWS, щоб відкрити нові функції.

- https://forums.aws.amazon.com/thread.jspa?messageID=732749

Однак практична відповідь - так , хоча це не офіційно підтримувана конфігурація. Для того, щоб це працювало, потрібні деякі спеціальні кроки.

Кожній файловій системі EFS присвоюється IP-адреса кінцевої точки у вашому VPC за допомогою еластичних мережевих інтерфейсів (ENI), як правило, одна на кожну зону доступності, і ви хочете бути впевненими, що змонтуєте її в зоні доступності, що відповідає екземпляру, не лише з міркувань продуктивності, але й також тому, що плата за пропускну здатність застосовується при транспортуванні даних через межі зони доступності.

Цікавою річчю цих ENI є те, що вони, як видається, не використовують таблиці маршрутів для підмереж, до яких вони приєднані. Здається, вони можуть реагувати лише на випадки, що знаходяться всередині VPC, незалежно від налаштувань групи безпеки (кожна файлова система EFS має власну групу безпеки для контролю доступу).

Оскільки жодні зовнішні маршрути не доступні, я не можу отримати доступ до кінцевих точок EFS безпосередньо через апаратний VPN ... тому я звернувся до свого старого друга HAProxy, який дійсно (як @Tim передбачив) необхідний, щоб зробити цю роботу. Це проста конфігурація, оскільки EFS використовує лише порт TCP 2049.

Я використовую HAProxy на t2.nano (HAProxy дуже ефективний) з конфігурацією, яка виглядає приблизно так:

listen fs-8d06f00d-us-east-1
    bind :2049
    mode tcp
    option tcplog
    timeout tunnel 300000 
    server fs-8d06f00d-us-east-1b us-east-1b.fs-8d06f00d.efs.us-east-1.amazonaws.com:2049 check inter 60000 fastinter 15000 downinter 5000
    server fs-8d06f00d-us-east-1c us-east-1c.fs-8d06f00d.efs.us-east-1.amazonaws.com:2049 check inter 60000 fastinter 15000 downinter 5000 backup
    server fs-8d06f00d-us-east-1d us-east-1d.fs-8d06f00d.efs.us-east-1.amazonaws.com:2049 check inter 60000 fastinter 15000 downinter 5000 backup

Цей сервер знаходиться у нас-схід-1b, тому він використовує кінцеву точку us-east-1b як основну, інші два як резервні копії, якщо кінцева точка в 1b коли-небудь не проводить перевірку здоров’я.

Якщо у вашому VPC є VPN, то ви змонтуєте гучність, використовуючи IP-адресу цього проксі-екземпляра як цільову (замість того, щоб використовувати кінцеву точку EFS безпосередньо), і voilà ви встановили файлову систему EFS за межами VPC.

Я успішно встановив його на зовнішніх машинах Ubuntu, а також на серверах Solaris¹ (де EFS виявився дуже зручним для прискорення їх виведення з експлуатації, полегшивши міграцію служб подалі від них).

У певних ситуаціях, наприклад, переміщення даних в AWS або паралельне використання застарілих та хмарних систем на конкретних даних під час міграції, EFS здається переможцем.

Звичайно, застарілі системи, які мають більший час в обидва кінці, не будуть працювати так добре, як випадки EC2, але цього можна очікувати - винятків із законів фізики немає. Незважаючи на це, EFS та шлюз HAProxy здаються стабільним рішенням для того, щоб він працював зовні.

Якщо у вас немає VPN, пара HAProxy-машин, одна в AWS та друга у вашому центрі даних, також може тунелювати EFS через TLS, встановлюючи індивідуальне TCP-з'єднання з корисним навантаженням, загорнутим у TLS для транспортування кожного окремого EFS підключення через Інтернет. Технічно не VPN, але зашифроване тунелювання з'єднань. Це також, здається, працює досить добре.


OSolaris 10 за замовчуванням дещо зламаний - спочатку, як видається, root не має спеціальних привілеїв - файли на томі EFS, створені коренем, є власністю root, але не можуть бути chownвідредаговані іншим користувачем від Solaris machine ( Operation not permitted), хоча все працює так, як очікували від клієнтів Ubuntu. Рішенням в цьому випадку є перемогти демона NFS-ідентифікатора на карті Solaris за допомогою svcadm disable svc:/network/nfs/mapid:default. Якщо зупинити цю послугу, все працює як слід. Крім того, /usr/sbin/quotaпотрібно вимкнути виклик кожного входу /etc/profile. Можливо, є кращі чи правильніші рішення, але це Solaris, тому я не досить цікавий для дослідження.


2
Це відмінна відповідь, але я вважаю, що ви поставили неправильне запитання. Я можу зрубати дерево виделкою, але є кращі інструменти для роботи.
Тім

Іноді мені цікаво, чи хтось помітив будь-яке з 3-х кумедних маленьких писанок, які я включив у цю відповідь.
Майкл - sqlbot

4
5ca1ab1e (масштабований) та Ac55ed (доступний) та 8d06f00d (собачий корм)?
runamok

2
Це "їли собачу їжу" ... але досить близько, @runamok :)
Michael - sqlbot

3
Я хотів би бачити, як хтось розсипає дерево виделкою
Jam Risser

0

Станом на 20 грудня 2016 року Amazon оголосила AWS Direct Connect, яку можна використовувати для монтажу файлової системи EFS на локальних серверах. Таким чином, в основному є нативна функція, яка дозволяє використовувати AWS EFS поза VPC.

В якості обов'язкової умови вам потрібно буде включити та встановити з'єднання AWS Direct Connect, а потім використовувати nfs-utils, як слід використовувати під час монтажу EFS в екземплярах EC2.

Більше інформації можна знайти за наступною URL-адресою . Я щойно опублікував це, тому що я також шукав це майбутнє, щоб інші усвідомлювали, що існує вроджене рішення для підключення EFS поза VPC.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.