Współdzielona pamięć masowa w AWS: jak dobrać właściwe rozwiązanie
2022-05-09 10:07:23Jeś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ć!
Źródła:
Canalys – Global cloud services spend exceeds US$50 billion in Q4 2021
https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html
https://docs.aws.amazon.com/efs/latest/ug/whatisefs.html
https://aws.amazon.com/fsx/