Elastic Compute Cloud (EC2) wyjaśnione w prosty sposób

Photo of author

By maciekx

W przeszłości, moc obliczeniowa była zależna od lokalnej infrastruktury sprzętowej. Aktualnie, gdy twoje oprogramowanie działa w chmurze, ta odpowiedzialność spoczywa na usłudze internetowej Elastic Compute Cloud (EC2).

EC2 oferuje elastyczną moc obliczeniową w środowisku chmurowym. Użytkownicy mają możliwość wypożyczania wirtualnych maszyn, czyli instancji, na których uruchamiają swoje aplikacje. Instancje te mogą być dostosowane pod kątem konfiguracji, systemów operacyjnych, mocy obliczeniowej i pojemności pamięci.

EC2 stanowi kluczowy element Amazon Web Services (AWS), dzięki czemu jest szeroko stosowany w niemal każdym projekcie realizowanym w chmurze. Wyjątkiem jest sytuacja, gdy preferujesz architekturę bezserwerową, gdzie EC2 nie znajduje zastosowania.

Najważniejsze elementy EC2

Źródło: docs.aws.amazon.com

Każda instancja AWS EC2, którą wykorzystasz w projekcie, musi być oparta na innych komponentach AWS, które definiują dokładne parametry konfiguracji.

#1. Instancje

Instancja EC2 to wirtualna maszyna funkcjonująca w chmurze. Można ją skonfigurować i uruchomić w różnorodnych konfiguracjach. Konieczne jest określenie systemu operacyjnego, jaki będzie używany na instancji, oraz jej mocy obliczeniowej, obejmującej procesor i pamięć RAM.

Dodatkowo, można zdefiniować ilość pamięci, która zostanie na stałe przypisana do instancji EC2.

#2. Obrazy maszyn Amazon (AMI)

AMI to gotowe szablony, które zawierają wszystkie niezbędne informacje do prawidłowego uruchomienia instancji. To tutaj wybierasz system operacyjny, na którym będą działać twoje aplikacje, określasz konfigurację serwera aplikacji oraz wybierasz aplikacje, które mają zostać zainstalowane.

#3. Elastyczny magazyn blokowy (EBS)

EBS to usługa pamięci masowej, która zapewnia trwałe woluminy do użytku z instancjami EC2. To w tym miejscu przechowywane są wszystkie dane aplikacji, jak również informacje o użytkownikach, podczas korzystania z aplikacji uruchomionych na instancjach EC2.

#4. Grupy zabezpieczeń

Każda instancja EC2 wymaga kontrolowanego dostępu ze względów bezpieczeństwa. Dotyczy to komunikacji z zewnętrznego świata do instancji EC2 (ruch wychodzący) oraz komunikacji pomiędzy usługami AWS w obrębie infrastruktury chmurowej (ruch przychodzący).

#5. Pary kluczy

Aby podnieść poziom bezpieczeństwa, generuje się pary kluczy publicznych i prywatnych, które są wykorzystywane do bezpiecznego łączenia się z instancjami EC2.

#6. Elastyczne adresy IP

Aby umożliwić dostęp do nowej instancji EC2 z internetu zewnętrznego lub z poziomu własnej infrastruktury chmurowej, konieczne jest przypisanie instancji EC2 statycznego adresu IP. Od tego momentu wirtualna maszyna z instancją EC2 staje się dostępna.

#7. Grupy rozmieszczenia

Umożliwiają tworzenie logicznych grup instancji, zaprojektowanych, aby zapewnić połączenia sieciowe o niskich opóźnieniach i dużej przepustowości. Mają zastosowanie zarówno ze względów organizacyjnych, jak i wydajnościowych.

#8. Automatyczne skalowanie

Ta usługa, charakterystyczna dla różnych dostawców usług w chmurze, automatycznie dostosowuje liczbę instancji EC2 w grupie w zależności od aktualnego zapotrzebowania na moc obliczeniową. Automatyczne skalowanie umożliwia mnożenie instancji EC2 lub dostosowanie ich mocy obliczeniowej, aby obsłużyć zwiększone obciążenie.

W przypadku niższego zapotrzebowania możliwe jest zredukowanie liczby lub mocy instancji. Głównym celem jest uniknięcie spowolnień podczas szczytowego obciążenia, a także oszczędność kosztów w okresach mniejszej aktywności.

#9. Moduły równoważenia obciążenia

Usługa ta rozdziela ruch przychodzący pomiędzy wiele instancji EC2, co przekłada się na większą dostępność i skalowalność systemu.

#10. Wirtualna chmura prywatna (VPC)

VPC to wydzielona, wirtualna sieć, która zapewnia bezpieczne i izolowane środowisko dla instancji EC2. Pozwala na organizowanie instancji EC2 w obrębie tych samych lub różnych VPC, a następnie na definiowanie reguł ruchu przychodzącego i wychodzącego pomiędzy nimi, co przekłada się również na kontrolę komunikacji między instancjami EC2 w infrastrukturze chmurowej.

Często niektóre instancje EC2 powinny być prywatne i dostępne tylko dla kodu aplikacji, podczas gdy inne muszą być dostępne przez Internet. VPC jest idealnym rozwiązaniem dla tego typu potrzeb.

Główne cechy EC2

Źródło: aws.amazon.com

Instancje EC2 oferują skalowalną moc obliczeniową w chmurze AWS. Firmy mogą szybko uruchamiać wirtualne maszyny z wymaganą mocą obliczeniową i pojemnością pamięci, bez konieczności inwestowania w fizyczny sprzęt. Jest to istotna zaleta infrastruktury chmurowej, a EC2 odgrywa tu kluczową rolę.

Instancje EC2 są często używane do hostowania różnorodnych aplikacji lub stron internetowych w chmurze. Mogą obsługiwać zadania wsadowe, przetwarzanie w czasie rzeczywistym, aplikacje internetowe lub mobilne.

Zastosowanie EC2 jest bardzo szerokie. Można wykorzystywać je do obliczeń, uczenia maszynowego, gier, środowisk programistycznych lub testowych. W każdym z tych przypadków instancje EC2 oferują szereg korzyści.

Istotne jest również to, że instancje EC2 można łatwo tworzyć i usuwać w zależności od potrzeb. Dzięki temu oszczędza się koszty związane z infrastrukturą programistyczną i testową w czasie, gdy nie jest ona potrzebna. Możliwość szybkiego uruchamiania i zamykania połączeń z infrastrukturą ma wiele zastosowań biznesowych.

Podstawy przetwarzania w chmurze

W kontekście omówienia EC2, warto krótko wyjaśnić, czym jest przetwarzanie w chmurze.

Przetwarzanie w chmurze to model dostarczania zasobów obliczeniowych przez Internet, na żądanie i jako usługa. Pozwala na dostęp do mocy obliczeniowej, infrastruktury i aplikacji bez konieczności inwestowania we własny sprzęt. Opiera się na kilku zasadach:

  • Użytkownicy mają dostęp do zasobów na żądanie, w dowolnym momencie, bez potrzeby przechodzenia przez długi proces zakupu.
  • Zasoby chmury są dostępne z każdego miejsca i urządzenia (laptopy, komputery, tablety, telefony).
  • Zasoby obliczeniowe są współdzielone i dynamicznie alokowane w odpowiedzi na zmieniające się wymagania.
  • Zasoby można szybko skalować w górę lub w dół, w zależności od aktualnego zapotrzebowania.
  • Przetwarzanie w chmurze opiera się na modelu płatności za faktyczne zużycie, gdzie użytkownicy płacą tylko za zasoby, z których rzeczywiście korzystają. Ponadto zużycie energii jest monitorowane w czasie rzeczywistym.

Modele usług przetwarzania w chmurze

Przetwarzanie w chmurze można podzielić na trzy główne modele:

  • Infrastruktura jako usługa (IaaS) – udostępnia zwirtualizowane zasoby, takie jak serwery, pamięć masową i sieć, jako usługę. Stworzenie kompletnego rozwiązania leży w gestii użytkownika.
  • Platforma jako usługa (PaaS) – oferuje pełną platformę do tworzenia, wdrażania i zarządzania aplikacjami. Użytkownik nie musi się martwić o szczegóły infrastruktury.
  • Oprogramowanie jako usługa (SaaS) – udostępnia gotowe aplikacje, takie jak poczta e-mail, CRM czy narzędzia zwiększające produktywność, w formie usługi. Użytkownik korzysta z istniejących już rozwiązań.
  • Modele wdrażania przetwarzania w chmurze

    Przetwarzanie w chmurze różni się również sposobem, w jaki udostępniane i wykorzystywane są zasoby:

  • Chmura publiczna – zasoby są dostarczane przez zewnętrznego dostawcę (AWS, Microsoft Azure, Google Cloud) i są dostępne przez Internet.
  • Chmura prywatna – organizacja buduje własne centrum danych, a infrastruktura jest dostępna tylko w sieci tej organizacji.
  • Chmura hybrydowa – łączy zasoby chmury publicznej i prywatnej, tworząc spójną, wzajemnie połączoną infrastrukturę.
  • Chmura multi-cloud – organizacja korzysta z usług wielu dostawców w chmurze, aby zaspokoić specyficzne potrzeby biznesowe. Na przykład, można połączyć usługi Amazon Cloud i SAP Datawarehouse Cloud, aby zbudować rozwiązanie oparte na danych transakcyjnych z SAP i jeziorze danych w AWS.
  • Elastyczność EC2

    Źródło: aws.amazon.com

    Elastyczność jest kluczową cechą przetwarzania w chmurze. Oznacza zdolność infrastruktury chmurowej do dynamicznego przydzielania i zwalniania zasobów obliczeniowych w odpowiedzi na zmieniające się potrzeby. Elastyczność pozwala na skalowanie infrastruktury w górę lub w dół, bez konieczności inwestowania w dodatkowy sprzęt.

    Skalowalność to kolejny ważny aspekt chmury – oznacza zdolność systemu do obsługi rosnącego obciążenia bez utraty wydajności.

    Na przykład, w przypadku nagłego wzrostu ruchu na stronie internetowej spowodowanego wprowadzeniem nowego produktu, skalowalność umożliwia szybkie zwiększenie zasobów, aby obsłużyć wzmożony ruch.

    Skalowalność osiągana jest poprzez wykorzystanie elastycznych zasobów, takich jak maszyny wirtualne, pamięć masowa i sieć, które można szybko i łatwo dostosować.

    Automatyczne skalowanie jest funkcją, która wykorzystuje możliwości skalowania i automatyzuje je w oparciu o zdefiniowane parametry obciążenia. Automatycznie dostosowuje liczbę wykorzystywanych zasobów obliczeniowych. Eliminuje to konieczność ręcznego monitorowania i dostosowywania zasobów. Skalowanie może być oparte na różnych metrykach, takich jak wykorzystanie procesora, ruch sieciowy czy czas odpowiedzi aplikacji.

    Zasoby przydzielane są dynamicznie i w czasie rzeczywistym, co pozwala na optymalizację wykorzystania infrastruktury. Zasoby są alokowane tylko wtedy, gdy są potrzebne i zwalniane, gdy nie są już używane.

    Dynamiczna alokacja zasobów jest kluczową cechą chmury obliczeniowej, ponieważ umożliwia osiągnięcie wysokiego poziomu wydajności przy minimalizacji kosztów.

    Korzyści z EC2

    Niektóre z zalet EC2 są oczywiste. W podsumowaniu, kluczowe korzyści to:

    Elastyczność

    EC2 umożliwia łatwe skalowanie zasobów obliczeniowych w górę lub w dół, w zależności od aktualnych potrzeb. Instancje można uruchamiać, usuwać, wstrzymywać i wznawiać w dowolnym momencie. Ponadto, zawsze istnieje możliwość tworzenia kopii zapasowych.

    Efektywność kosztowa

    Elastyczność EC2 przekłada się na oszczędność kosztów związanych z infrastrukturą. Poprawna konfiguracja instancji EC2 zapewnia, że działają tylko wtedy, gdy są potrzebne, minimalizując niepotrzebne wydatki.

    Wysoka dostępność

    EC2 oferuje infrastrukturę o wysokiej dostępności, minimalizując przestoje i zapewniając stały dostęp do aplikacji i usług.

    Niezawodność

    EC2 to niezawodna infrastruktura, która działa bez przerw i zapewnia stałą dostępność i wydajność aplikacji i usług.

    Dostępność

    Dostęp do EC2 możliwy jest z dowolnego miejsca i urządzenia, takiego jak komputer, laptop, tablet lub smartfon. Możliwe jest również wprowadzenie dowolnych ograniczeń dostępu.

    Globalny zasięg

    EC2 jest dostępny w wielu regionach na całym świecie, co umożliwia wdrażanie aplikacji i usług bliżej użytkowników oraz przestrzeganie lokalnych przepisów dotyczących ochrony danych.

    Zwinność

    EC2 oferuje elastyczną infrastrukturę, która pozwala na szybkie reagowanie na zmieniające się warunki rynkowe i przyspieszenie innowacji.

    Bezpieczeństwo danych

    EC2 zapewnia bezpieczną infrastrukturę, która chroni dane i aplikacje przed nieautoryzowanym dostępem i zagrożeniami cybernetycznymi.

    Zgodność

    EC2 spełnia wiele standardów i przepisów branżowych, w tym HIPAA, PCI DSS i RODO.

    Współpraca

    EC2 tworzy środowisko współpracy, w którym zespoły mogą pracować nad projektami oraz dzielić się zasobami i danymi.

    Wyzwania związane z EC2

    Korzystanie z EC2 wiąże się również z pewnymi wyzwaniami, które warto rozważyć.

    #1. Zarządzanie kosztami

    Model kosztowy AWS jest złożony, a ceny EC2 nie są tu wyjątkiem. Należy uważnie zarządzać wykorzystaniem zasobów, aby uniknąć nieoczekiwanych kosztów. Niezbędne są narzędzia do ciągłego monitorowania kosztów, takie jak AWS Cost Explorer czy AWS Trusted Advisor.

    #2. Bezpieczeństwo

    Choć EC2 zapewnia bezpieczną infrastrukturę, to użytkownik jest odpowiedzialny za ochronę swoich aplikacji i danych. Konieczne jest wdrożenie odpowiednich praktyk bezpieczeństwa, takich jak silne hasła, szyfrowanie danych i kontrola dostępu.

    #3. Zgodność

    Korzystając z EC2, należy upewnić się, że użytkowanie jest zgodne ze standardami i przepisami branżowymi. Wymaga to regularnego przeglądania dokumentacji dotyczącej zgodności AWS oraz współpracy z ekspertami ds. zgodności AWS.

    #4. Wydajność

    Na wydajność EC2 mogą wpływać różne czynniki, takie jak opóźnienia sieci, operacje we/wy dysku czy wykorzystanie procesora. Należy monitorować wydajność infrastruktury i korzystać z narzędzi optymalizacji, takich jak AWS CloudWatch i AWS X-Ray.

    #5. Dostępność

    Chociaż EC2 oferuje infrastrukturę o wysokiej dostępności, konieczne jest zapewnienie, aby aplikacje i usługi również były zaprojektowane z myślą o wysokiej dostępności. Warto wykorzystać usługi AWS, takie jak Elastic Load Balancing czy Auto Scaling.

    #6. Transfer danych

    Transfer danych między instancjami EC2 a innymi usługami AWS może generować dodatkowe koszty, o czym należy pamiętać. Nie dotyczy to tylko wymiany danych z Internetem. Warto używać Amazon S3 i Amazon CloudFront, aby zminimalizować koszty transferu danych.

    #7. Uzależnienie od dostawcy

    Warto mieć na uwadze potencjalne uzależnienie od dostawcy podczas korzystania z EC2. Należy projektować aplikacje i usługi w sposób umożliwiający ich przenoszenie między różnymi dostawcami usług w chmurze. Wykorzystanie otwartych standardów i API zapewnia interoperacyjność i niezależność od konkretnej platformy.

    EC2 i przyszłe trendy

    Źródło: aws.amazon.com

    Jakie trendy i innowacje będą kształtować przyszłość EC2? Oto kilka z nich.

    Bezserwerowość

    Przetwarzanie bezserwerowe to stosunkowo nowy paradygmat, który zyskuje na popularności. Programiści mogą uruchamiać kod bez konieczności zarządzania serwerami. Usługi AWS Lambda lub AWS Step Functions są przykładem bezserwerowych usług, które mogą być oparte na EC2.

    Uczenie maszynowe

    EC2 to dobra infrastruktura do uruchamiania modeli uczenia maszynowego, prognoz i innych obciążeń. W ciągu kilku minut można generować rozbudowane jeziora danych. AWS oferuje również gotowe usługi uczenia maszynowego, takie jak Amazon SageMaker i Amazon Rekognition, które bazują na EC2.

    Przetwarzanie brzegowe

    Przetwarzanie brzegowe to paradygmat przetwarzania danych bliżej źródła, a nie w centralnym centrum danych. Operacje ładowania danych są wykonywane w miejscu ich generowania. Następnie dane, za pośrednictwem usług buforowania, są przesyłane do centralnego magazynu danych. AWS oferuje szereg usług przetwarzania brzegowego, takich jak AWS Greengrass i AWS IoT, które mogą być wdrożone w oparciu o EC2.

    Konteneryzacja

    Konteneryzacja polega na pakowaniu aplikacji i usług w kontenery, które można łatwo wdrażać i zarządzać. Zapewnia kompatybilność przy przemieszczaniu usług między instancjami lub infrastrukturami. AWS oferuje usługi konteneryzacji, takie jak Amazon ECS i Amazon EKS, oparte na EC2.

    Obliczenia kwantowe

    Obliczenia kwantowe to paradygmat wykorzystujący zjawiska mechaniki kwantowej do wykonywania obliczeń. AWS oferuje usługi obliczeń kwantowych, takie jak Amazon Braket, które mogą współdziałać z EC2.

    Podsumowanie

    EC2 to fundamentalny element każdej poważnej infrastruktury chmurowej. Choć zazwyczaj pojawia się na liście 3 usług generujących najwyższe koszty, to jest to uzasadnione.

    EC2 stanowi szkielet infrastruktury chmurowej, na którym opierają się wszystkie pozostałe usługi. Zrozumienie EC2 jest kluczowe dla sukcesu w świecie przetwarzania w chmurze.

    Warto również zapoznać się z najlepszymi praktykami dotyczącymi bezpieczeństwa AWS EC2.


    newsblog.pl