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

Photo of author

By maciekx

W środowiskach, gdzie aplikacje działają na wielu serwerach i wymagają dostępu do tych samych plików, kluczowe staje się wdrożenie współdzielonego systemu plików. Jednym z rozwiązań jest wykorzystanie NFS (Network File System), które umożliwia udostępnianie zasobów między różnymi maszynami.

Konfiguracja NFS, choć umożliwia dzielenie się plikami w obrębie sieci, często wymaga sporej wiedzy administracyjnej i może być czasochłonna, szczególnie w tradycyjnych infrastrukturach, gdzie konieczna jest współpraca wielu zespołów. Jednak, korzystając z AWS, proces ten można znacznie uprościć i przyspieszyć dzięki usłudze EFS (Elastic File System).

AWS EFS to usługa, która pozwala na tworzenie skalowalnej przestrzeni dyskowej dla instancji EC2. Nie musisz już martwić się o szacowanie potrzebnej pojemności, ponieważ EFS elastycznie dostosowuje się do bieżącego zapotrzebowania, zwiększając lub zmniejszając swoją wielkość w zależności od potrzeb.

Poniższa ilustracja, zaczerpnięta z zasobów AWS, pomoże zrozumieć, jak działa ta usługa.

EFS oferuje szereg zalet, między innymi:

  • Pełne zarządzanie po stronie AWS.
  • Model płatności oparty na rzeczywistym zużyciu, co pozwala na optymalizację kosztów.
  • Wysoką dostępność i trwałość danych.
  • Automatyczne skalowanie w górę i w dół.
  • Elastyczną wydajność, dopasowaną do aktualnych potrzeb.

W dalszej części tego artykułu pokażę, jak utworzyć system EFS i zamontować go na dwóch instancjach EC2 Ubuntu.

Przejdźmy do konfiguracji:

  • Zaloguj się do konsoli AWS.
  • W sekcji „Usługi” odszukaj i wybierz „EFS” w kategorii „Magazyn” (link bezpośredni).
  • Kliknij przycisk „Utwórz system plików”.

  • AWS automatycznie przydzieli adres IP w wybranej strefie dostępności. Jeśli zajdzie taka potrzeba, możesz to zmienić w kolejnym kroku.

  • Dodaj tag (opcjonalnie), a następnie wybierz tryb wydajności pomiędzy „Ogólne przeznaczenie” lub „Maks. we/wy”.

  • Sprawdź ustawienia. Jeżeli wszystko się zgadza, kliknij przycisk „Utwórz system plików”.

Po kilku sekundach system plików zostanie utworzony i zobaczysz odpowiedni komunikat.

Gratulacje! Twój system plików EFS jest gotowy. Możesz go zamontować na instancjach EC2, które mają zainstalowanego klienta NFSv4.1. Istnieje również możliwość montowania z serwerów lokalnych poprzez połączenie AWS Direct Connect.

Na liście dostępnych systemów plików zobaczysz nowo utworzony EFS.

To wszystko! System plików EFS został utworzony i jest gotowy do montowania na instancjach EC2.

Montowanie EFS na EC2

Zanim przystąpisz do montowania, musisz zainstalować klienta NFS. Szczegółowe instrukcje znajdziesz, rozwijając listę i wybierając opcję „Instrukcje montażu Amazon EC2”.

Zobaczmy, jak to wygląda w praktyce:

  • Zaloguj się do obu instancji EC2 i zainstaluj klienta NFS. W przypadku systemu Ubuntu użyjemy następującego polecenia:
apt-get install nfs-common
  • Następnie utwórz folder, w którym chcesz zamontować system EFS.

Na przykład, /aplikacje:

cd /
mkdir apps

Teraz zamontuj system plików, używając polecenia, które znajdziesz w instrukcjach.

Przykładowe polecenie:

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 podczas montowania wystąpią problemy, zapoznaj się z przewodnikiem rozwiązywania problemów. Nie zapomnij również sprawdzić konfiguracji grup bezpieczeństwa. Upewnij się, że:

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

Po chwili folder /apps powinien być zamontowany. Możesz to sprawdzić za pomocą polecenia 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 zaloguj się na drugi serwer, na którym ma być dostępny folder /apps i powtórz proces tworzenia folderu i montowania EFS.

Po zamontowaniu EFS na obu serwerach folder /apps powinien być dostępny na obu maszynach.

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

Proste, prawda?

Przeprowadziłem testy, tworząc kilka plików i ogólna wydajność wygląda dobrze. AWS EFS to obiecujące rozwiązanie, które warto wypróbować, jeśli potrzebujesz współdzielonego systemu plików w instancjach EC2.

Chcesz dowiedzieć się więcej o AWS? Sprawdź ten kurs na Udemy.

Spodobał Ci się ten artykuł? Podziel się nim ze znajomymi!


newsblog.pl