Back
dot dot dot

Współdzielona pamięć masowa w AWS: jak dobrać właściwe rozwiązanie

2022-05-09 10:07:23

Jeśli sądzisz, że chmura zyskuje na popularności, to masz rację. 

Najnowsze dane dowodzą, że wciąż istnieje duży popyt na usługi oparte na infrastrukturze chmurowej. Według agencji analitycznej Canalys tylko w IV kwartale 2021 roku wartość inwestycji w chmurę na całym świecie sięgnęła 50 miliardów dolarów, co stanowi nowy kamień milowy i oznacza, że w ciągu całego roku kwota tych wydatków sięgnęła 191,7 miliarda dolarów.

Nie zaskakuje fakt, że na rynku dominuje wielka trójka, a udział samej firmy Amazon Web Services (AWS) wynosi 33%.  

AWS jest popularnym wyborem wśród klientów Tenesys. W związku z tym klienci często pytają nas o różne aspekty migracji, tworzenia środowiska oraz zarządzania zasobami i usługami w chmurze Amazon.

Dlatego dziś chciałbym omówić kwestię rozwiązań współdzielonej pamięci masowej w AWS. 

Zanim jednak zaczniemy, odpowiedzmy sobie na podstawowe pytanie. 

Dlaczego pamięć masowa w chmurze jest tak istotna?

Krótko mówiąc, chodzi o łatwość skalowania, która jest krytycznym aspektem architektury aplikacji. 

 

AWS oferuje użytkownikom do wyboru szereg usług, takich jak Elastic Kubernetes Service (EKS), Elastic Container Service (ECS) i Auto Scaling Group (ASG). Wszystkie one umożliwiają skalowanie aplikacji i dostosowywanie zasobów do obciążeń, które mają być uruchamiane w chmurze. 

 

Usługi EKS, ECS i ASG powinny wystarczyć, jeśli aplikacja składa się z bezstanowych mikrousług. Oczywiście wciąż trzeba brać pod uwagę takie kwestie, jak współdzielona baza danych dla mikrousług czy buforowanie treści. Tu jednak z pomocą mogą przyjść takie rozwiązania, jak CloudFront, RDS czy ElasticCache. 

 

Wreszcie potrzebujesz również wydajnej, skalowalnej i wysoce dostępnej pamięci masowej dla swoich plików. Oczywistym wyborem, który zwykle przychodzi na myśl w przypadku tego zadania, jest usługa Amazon Simple Storage Service (AWS S3). Jest to usługa obiektowej pamięci masowej, którą cechują skalowalność, dostępność danych, bezpieczeństwo i wydajność.

 

Co jednak zrobić, jeśli nasza aplikacja nie obsługuje obiektowej pamięci masowej i umożliwia zapisywanie plików jedynie w folderach utworzonych na poziomie systemu operacyjnego. 

 

I jak w takiej sytuacji zapewnić współdzielenie danych między poszczególnymi mikrousługami lub instancjami EC2? 

Na ratunek przychodzą rozwiązania współdzielonej pamięci masowej AWS

AWS odpowiada na to wyzwanie, oferując cztery różne rozwiązania:

● Elastic Files System (EFS) — elastyczny system plików będący odpowiednikiem protokołu sieciowego udostępniania plików NFS znanego z systemu Linux.  

● FSx — podobnie jak poprzednik, jest sieciowym systemem udostępniania plików opartym na systemach plików NetApp ONTAP, OpenZFS, Windows File Server i Lustre.

● FSx for Lustre — sieciowy system plików wykorzystujący klastrowy system plików Lustre, który umożliwia współdzielenie udostępnianie petabajtów danych z szybkością 100 GB/s. 

● Elastic Block Storage (EBS Multi-attach) — stanowi pomysł firmy Amazon na jednoczesne podłączanie urządzenia blokowego do wielu maszyn wirtualnych.

W dalszej części tego artykułu znajdziesz informacje potrzebne do stwierdzenia, które z tych rozwiązań współdzielonej pamięci masowej AWS będzie najskuteczniejsze i najtańsze w przypadku Twojego projektu. Omówię cechy i wydajność każdego z nich, aby dać Ci lepsze pojęcie o każdym z nich i ułatwić wybór odpowiedniego. 

Specyfika rozwiązań w zakresie współdzielonej pamięci masowej AWS 

 

Rozwiązanie 1: Elastic Files System (EFS)

Amazon Elastic File System to usługa sieciowego systemu plików, którą charakteryzują elastyczność i łatwość użycia, zarówno w środowisku innych usług w chmurze AWS, jak i zasobów lokalnych. 

Usługa ta umożliwia skalowanie na żądanie magazynów zawierających petabajty danych, a także automatyczne skalowanie przestrzeni w miarę dodawania lub usuwania plików. Funkcja ta eliminuje konieczność ciągłego monitorowania pojemności i zarządzania nią w celu odpowiedniego dostosowania ilości przechowywanych danych. 

Amazon EFS ma prosty interfejs, który ułatwia szybkie i łatwe tworzenie oraz konfigurowanie zasobów systemu plików. Dzięki pełnej integracji z usługą CloudWatch użytkownicy nie muszą już wdrażać, instalować poprawek, utrzymywać ani monitorować złożonych konfiguracji systemów plików.

Amazon EFS obsługuje protokół Network File System w wersji 4 (NFSv4.1 i NFSv4.0), dzięki czemu bezproblemowo współpracuje z większością aplikacji, narzędzi i systemów operacyjnych. Takie usługi, jak Amazon EC2, Amazon ECS i AWS Lambda, mogą równocześnie korzystać z zasobów systemu plików Amazon EFS, tworząc w ten sposób wspólne źródło danych.

Rozwiązanie 2: FSx i FSx for Lustre

Amazon FSx jest usługą współdzielonej pamięci masowej plików o szerokim wachlarzu zastosowań w aplikacjach opartych na najpopularniejszych systemach operacyjnych — Linux, Windows i macOS. 

Usługa Amazon FSx zapewnia ultra-niskie opóźnienia — poniżej milisekundy — oraz wysoką przepustowość, dzięki czemu spełni wymagania wydajnościowe nawet najbardziej wymagających procesów. 

FSx łączy w sobie możliwości powszechnie stosowanych systemów plików z łatwością obsługi właściwą dla interfejsów AWS. W efekcie ułatwia to migrację starszych aplikacji do chmury AWS oraz tworzenie nowych aplikacji wymagających wydajnej, współdzielonej przestrzeni danych.

W ramach usługi można korzystać z takich systemów plików, jak NetApp ONTAP, OpenZFS, Windows File Server i Lustre.

Rozwiązanie 3: EBS Multi-attach

W przeciwieństwie do dwóch pozostałych rozwiązań współdzielonej pamięci masowej AWS, EBS Multi-Attach to usługa Elastic Block Storage. 

Oznacza to, że umożliwia ona podłączenie pojedynczego urządzenia blokowego — dysku SSD z aprowizacją IOPS (io1/io2) — do wielu maszyn wirtualnych znajdujących się w tej samej strefie dostępności. 

Do każdej instancji lub grupy instancji można dodać wiele woluminów typu multi-attach. Każda instancja z dołączonym woluminem ma pełne prawa do odczytu i zapisu plików na woluminie współdzielonym. 

Opcja Multi-Attach pozwala uzyskać wysoką dostępność aplikacji w klastrach aplikacji opartych na systemie Linux, wymagających równoległych operacji zapisu.

Podsumowując, w ofercie AWS do wyboru jest wiele rozwiązań w zakresie współdzielonej pamięci masowej. Wybór konkretnego rozwiązania zależy oczywiście od określonych wymagań projektowych. 

Skontaktuj się z nami, aby porozmawiać o współdzielonej pamięci masowej lub innych kwestiach związanych z potrzebami Twojej firmy w dziedzinie chmury obliczeniowej. Nasz zespół  ekspertów z przyjemnością udzieli Ci wsparcia. 

O autorze: Łukasz Ratajczyk jest CTO w Tenesys. Jest w branży od wielu lat i ma duże doświadczenie. Łukasz robi wiele ważnych rzeczy, ale nigdy nie mówi o nich zbyt wiele, dlatego zaczął pisać!

previous next
scroll