AWS – Jak zarządzać i skalować w chmurze?
Jak zarządzać środowiskami chmurowymi w takich procesach, jak migracja aplikacji, automatyczne wdrażanie czy tworzenie stabilnych i bezpiecznych środowisk? W projektach Studio Software przygotowujemy środowisko produkcyjne z wykorzystaniem usług AWS oraz kontenerów Docker.
Aby nasze projekty były na jak najwyższym poziomie, w ramach rozwoju wiedzy pracowników bierzemy udział w wielu szkoleniach technicznych. W związku z tym na przełomie 2021 i 2022 roku zorganizowaliśmy specjalne warsztaty z tematu rozszerzonych usług AWS we współpracy z firmą Noble Prog. Celem tych spotkań było skupienie się na wiedzy z zakresu elastycznego skalowania aplikacji i stworzeniu serwerów pod konkretne aplikacje webowe.
Poniżej omówimy kilka kluczowych zagadnień omawianych na szkoleniu pod kątem skalowalności działań w chmurze.
Spis treści
Uruchamianie zasobów AWS, a bezpieczeństwo
VPC czyli Virtual Private Cloud jest usługą, która umożliwia uruchamianie zasobów AWS w zdefiniowanej sieci wirtualnej. Głównym celem działania jest zapewnienie pełnej kontroli nad środowiskiem sieci wirtualnej, w tym rozmieszczeniem zasobów, łącznością i bezpieczeństwem. Konfigurując VPC dodajemy do tego takie zasoby, jak instancje Amazon Elastic Compute Cloud (EC2) i Amazon Relational Database Service (RDS). Określamy również kwestie bezpieczeństwa, komunikacji między kontami, strefami dostępności lub regionami AWS.
Skalowanie AWS, czyli konfiguracja EC2
Konfigurując usługę Amazon EC2 (Amazon Elastic Compute Cloud) mamy możliwość zapewnienia elastycznej i skalowalnej mocy obliczeniowej w chmurze. Kiedy jest to szczególnie potrzebne? W szczególności w sytuacji gdy nie potrzebujemy inwestować we własne systemy. Dzięki czemu można szybciej wdrażać aplikacje, konfigurować zabezpieczenia i sieci czy zarządzać pamięcią masową. Amazon EC2 wpływa na możliwość skalowania mocy obliczeniowej w górę lub w dół, szczególnie w sytuacji gdy mierzymy się ze zmianami jego natężenia zarówno w czasie szczytu, jak i spadku popularności aplikacji.
Poniżej jeden z przykładów wielu ćwiczeń przeprowadzanych podczas szkoleń AWS.
Elastyczne zarządzanie obciążeniem serwerów w chmurze
Podczas szkolenia omawialiśmy również szeroko temat tworzenia skalowalnej infrastruktury, tak by elastycznie równoważyć obciążenia. Funkcja Elastic Cloud Balancing automatycznie rozdziela ruch przychodzący na wiele obiektów docelowych, takich jak wystąpienia EC2, kontenery i adresy IP, w co najmniej jednej strefie dostępności.
Co więcej, EC2 monitoruje stan zarejestrowanych celów i kieruje ruch tylko do nieobciążonych miejsc. Elastyczne równoważenie obciążenia jest bardzo istotne gdy ruch przychodzący zmienia się w czasie. Może automatycznie skalować się do większości obciążeń.
Korzystanie z modułu równoważenia obciążenia zwiększa dostępność i odporność na błędy aplikacji. W tym celu analizowaliśmy konfiguracje dodawania i usuwania zasobów obliczeniowych z systemu równoważenia obciążenia, kontroli monitoringu kondycji zasobów, tworzenia grup autoskalujących, czy też przenoszenia pracy związanej z szyfrowaniem systemu równoważenia obciążenia.
Wdrażanie S3 jako funkcji dostępności danych
Innym tematem była analiza działania usługi S3 Amazon Simple Storage Service (S3) Replication. Jako w pełni zarządzana i niedroga funkcja, replikuje obiekty między zasobami. Daje ona dużą elastyczność i funkcjonalność w pamięci masowej w chmurze, zapewniając kontrolę niezbędną do wysokiej dostępności danych i innych potrzeb biznesowych. Na przykład dzięki tej usłudze można skonfigurować usługę Amazon S3 do automatycznej replikacji obiektów w różnych regionach AWS, dzięki czemu nie musimy się martwić awariami w konkretnym regionie. Co więcej, usługa S3 umożliwia analizę opóźnień w celu szybkiej weryfikacji i korygowania problemów z konfiguracją.
Elastic BeanStalk jako kolejna odsłona elastyczności usług AWS
Przeprowadzaliśmy również praktyczne warsztaty podczas których tworzyliśmy aplikację dla naszego klienta, następnie przeprowadzaliśmy migrację do chmury. Funkcja Elastic Beanstalk ułatwia zarządzanie w chmurze bez konieczności poznawania całej infrastruktury, która obsługuje te aplikacje. W ten sposób zmniejsza złożoność zarządzania nie ograniczając możliwości wyboru i kontroli. Wystarczy przesłać aplikację, a usługa Elastic Beanstalk automatycznie zajmie się szczegółami udostępniania pojemności, równoważenia obciążenia, skalowania i monitorowania kondycji aplikacji.
To tylko niektóre z wielu zagadnień dotyczących elastycznego skalowania aplikacji w chmurze, które poruszyliśmy w trakcie szkoleń i warsztatów. Wierzymy, że aktualizacja i poszerzanie zagadnień dotyczących konfiguracji usług AWS ma wpływ na wysoką jakość wdrożonych projektów i skalowalny rozwój organizacji.