Jak wdrożyć AWS EFS, aby współdzielić system plików między EC2?

Jeśli pracujesz w środowisku aplikacji wieloserwerowych, w którym istnieje wymóg współdzielenia systemu plików między wieloma serwerami, musisz skonfigurować NFS (Network File System).

NFS umożliwia udostępnianie systemu plików na więcej niż jednym serwerze, ale implementacja wymaga pewnych umiejętności administracyjnych.

W tradycyjnym środowisku infrastrukturalnym może być konieczne zaangażowanie wielu zespołów, a utworzenie NFS zajmie trochę czasu. Ale jeśli używasz AWS, możesz to zrobić w kilka minut dzięki usłudze EFS (Elastic File System).

AWS EFS pozwala tworzyć skalowalne przechowywanie plików do wykorzystania w EC2. Nie musisz przejmować się prognozowaniem pojemności, ponieważ można je skalować w górę lub w dół na żądanie.

Szybka ilustracja została zaczerpnięta ze strony AWS, aby dać wyobrażenie o tym, jak to działa.

Niektóre z zalet EFS to:

  • W pełni zarządzany przez AWS.
  • Niski koszt, zapłać za to, z czego korzystasz.
  • Wysoka dostępność i trwałość
  • Automatycznie skaluj w górę lub w dół.
  • Skalowalna wydajność

Mam uruchomione dwie instancje EC2 Ubuntu iw tym samouczku stworzę jeden EFS, a następnie zamontuję go na obu serwerach EC2.

Zacznijmy to.

  • Zaloguj się do konsoli AWS
  • Przejdź do Usługi i wybierz EFS w magazynie (link bezpośredni)
  • Kliknij „Utwórz system plików”.

  • AWS automatycznie przypisze adres IP w strefie dostępności. Możesz to zrobić na następnym ekranie, jeśli chcesz to zmienić.

  • Dodaj znacznik, jeśli chcesz i wybierz tryb wydajności między Ogólnym przeznaczeniem lub Maks. we/wy

  • Sprawdź konfigurację, a jeśli wszystko jest w porządku, kliknij „Utwórz system plików”.

Może to potrwać kilka sekund, a po zakończeniu otrzymasz komunikat o sukcesie.

Powodzenie!

Utworzyłeś system plików. System plików można zamontować z instancji EC2 z zainstalowanym klientem NFSv4.1. Możesz również zainstalować system plików z serwera lokalnego za pośrednictwem połączenia AWS Direct Connect.

Na liście będzie można zobaczyć nowo utworzony elastyczny system plików.

To kończy, że utworzyłeś EFS i jesteś gotowy do zamontowania na instancjach EC2.

Montaż EFS na EC2

Przed zamontowaniem musisz zainstalować klienta NFS. Jeśli rozwiniesz listę i klikniesz „Instrukcje montażu Amazon EC2”, otrzymasz szczegółowe informacje.

Ale zobaczmy, jak to będzie.

  • Zaloguj się do obu instancji EC2 i zainstaluj klienta NFS. Mam Ubuntu, więc użyję następujących.
apt-get install nfs-common
  • Stwórzmy folder, w którym chcesz zamontować EFS.

Np.: /aplikacje

cd / 
mkdir apps

Zamontuj system plików za pomocą polecenia podanego w instrukcjach.

Były:

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

Uwaga: Jeśli napotkasz jakiekolwiek problemy podczas montowania, zapoznaj się z tym podręcznik rozwiązywania problemówi nie zapomnij sprawdzić grup zabezpieczeń, aby upewnić się, że są następujące.

  • Port NFS (2049) jest dozwolony w regułach przychodzących instancji EC2
  • Grupy bezpieczeństwa EC2 są dozwolone w grupach bezpieczeństwa EFS

Zajmie to kilka sekund, a zauważysz, że /apps jest zamontowany, jeśli wykonasz polecenie 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]:/#

Teraz musisz zalogować się na inny serwer, na którym chcesz mieć dostępne /apps i powtórzyć tworzenie folderu i montowanie EFS.

Aby to sprawdzić, zamontowałem EFS na innym serwerze i widzę /apps są dostępne na obu serwerach.

[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#

To proste, prawda?

Próbowałem utworzyć kilka plików i ogólnie wydajność wygląda dobrze. AWS EFS wygląda obiecująco, a jeśli potrzebujesz współużytkowania systemu plików w instancjach EC2, wypróbuj go, a jestem pewien, że ci się spodoba.

Chcesz dowiedzieć się więcej o AWS? Sprawdź to Kurs Udemy.

Podobał Ci się artykuł? Co powiesz na dzielenie się ze światem?