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

Kiedyś moc obliczeniowa była zadaniem lokalnej infrastruktury sprzętowej. Teraz – jeśli Twoje oprogramowanie znajduje się w chmurze – staje się zadaniem usługi internetowej Elastic Compute Cloud (EC2).

EC2 zapewnia zmienną moc obliczeniową w chmurze. Użytkownicy mogą wynajmować wirtualne komputery wraz z instancjami, na których uruchamiają swoje aplikacje. Instancje mogą mieć różną konfigurację, różne systemy operacyjne, moc obliczeniową i pojemność pamięci.

EC2 jest głównym składnikiem Amazon Web Services (AWS). Dzięki temu znajduje szerokie zastosowanie przy niemal każdej możliwej realizacji projektu w chmurze. Oczywiście, chyba że zależy Ci na architekturze bezserwerowej, w którym to przypadku EC2 wręcz nie wchodzi w grę.

Kluczowe elementy EC2

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

Każdy AWS EC2, którego zdecydujesz się użyć w swoim projekcie, musi składać się z innych komponentów AWS. Określają one dokładne parametry Twojej konfiguracji.

#1. Instancje

Instancja EC2 to w zasadzie interpretacja maszyny wirtualnej w chmurze. Instancję można przygotować i uruchomić w różnych konfiguracjach. Musisz także zdefiniować konkretny system operacyjny dla instancji oraz siłę instancji (ilość procesora, pamięci RAM itp.).

Na koniec możesz określić ilość pamięci, która powinna być na stałe przyłączona do instancji EC2.

#2. Obrazy maszyn Amazon (AMI)

AMI to prekonfigurowany szablon zawierający wszystkie informacje niezbędne do pomyślnego uruchomienia instancji. Tutaj faktycznie określasz, na jakim systemie operacyjnym chcesz uruchamiać aplikacje, jak będzie wyglądał serwer aplikacji i jakie dokładnie aplikacje mają zostać zainstalowane.

#3. Magazyn bloków elastycznych (EBS)

Jest to usługa pamięci masowej, która zapewnia trwałe woluminy pamięci do wykorzystania z instancją EC2. W tym miejscu będą przechowywane wszystkie dane aplikacji, a także dane klientów, gdy aplikacje w instancjach EC2 będą używane.

#4. Grupy zabezpieczeń

Dla każdej instancji EC2 będziesz wymagał kontrolowanego dostępu bezpieczeństwa. Dotyczy to komunikacji ze świata zewnętrznego do instancji EC2 (ruch wychodzący), jak również pomiędzy usługami AWS w Twojej infrastrukturze chmurowej (ruch przychodzący).

#5. Kluczowe pary

Aby zwiększyć bezpieczeństwo, musisz wygenerować pary kluczy publicznych i prywatnych, których będziesz używać do bezpiecznego łączenia się z instancjami EC2.

#6. Elastyczne adresy IP

Aby umożliwić Ci dostęp do nowej instancji EC2 z zewnętrznego Internetu lub nawet odwoływanie się do nich w ramach Twojej infrastruktury w chmurze, musisz przypisać instancjom EC2 statyczny adres IP. Od tego momentu dostępna jest maszyna wirtualna z instancją EC2.

#7. Grupy rozmieszczenia

Za ich pomocą można tworzyć logiczne grupy instancji. Zostały one zaprojektowane w celu zapewnienia połączeń sieciowych o małych opóźnieniach i dużej przepustowości. Służy to zarówno ze względów organizacyjnych, jak i wydajnościowych.

#8. Automatyczne skalowanie

Jest to usługa – dość wyjątkowa wśród różnych dostawców usług w chmurze – która automatycznie dostosowuje liczbę instancji EC2 w grupie w oparciu o Twoje potrzeby w zakresie obciążenia pracą. Oznacza to, że po włączeniu automatycznego skalowania instancje EC2 będą mogły być mnożone lub skalowane sprzętowo, aby sprostać zwiększonemu zapotrzebowaniu.

Alternatywnie możesz zmniejszyć lub zmniejszyć skalę, jeśli zapotrzebowanie jest znacznie niższe niż zwykle. Głównym tego powodem jest to, aby nie zwalniać podczas szczytowego obciążenia. Ale także po to, aby zaoszczędzić pieniądze, gdy nie ma zbyt wiele do zrobienia.

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

Mówiąc najprościej, jest to usługa, która rozdziela ruch przychodzący na wiele instancji EC2, poprawiając w ten sposób dostępność i skalowalność.

#10. Wirtualna chmura prywatna (VPC)

VPC to logicznie wydzielona sieć wirtualna, która zapewnia bezpieczne i izolowane środowisko dla instancji EC2. Możesz organizować różne instancje EC2 w te same lub różne VPC, a następnie definiować reguły dla ruchu przychodzącego i wychodzącego pomiędzy VPC, a tym samym także pomiędzy różnymi instancjami EC2 w Twojej infrastrukturze chmurowej.

Zazwyczaj chcesz, aby niektóre instancje EC2 były prywatne i dostępne tylko dla kodu aplikacji. Jednocześnie inne EC2, które chcesz zachować, będą dostępne w Internecie. VPC jest na to idealnym rozwiązaniem.

Główna charakterystyka EC2

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

Instancje EC2 zapewniają skalowalną moc obliczeniową w chmurze AWS. Firmy mogą szybko uruchomić maszyny wirtualne z potrzebną mocą obliczeniową i pojemnością pamięci masowej, bez konieczności inwestowania w sprzęt fizyczny. To jest prawdziwa zaleta infrastruktury chmurowej, a EC2 odgrywa znaczącą rolę.

Zwykle celem instancji EC2 jest hostowanie różnych aplikacji lub stron internetowych w chmurze. Można ich używać do obsługi zadań o charakterze wsadowym, wymagających przetwarzania w czasie rzeczywistym, aplikacji internetowych lub mobilnych.

Charakter pracy, do której używasz EC2, jest praktycznie nieograniczony. Możesz potrzebować dużej mocy do przetwarzania danych, uczenia maszynowego lub gier. Możesz potrzebować dodatkowych środowisk programistycznych lub testowych dla swojej infrastruktury. Wtedy z pewnością możesz wykorzystać wszystkie zalety instancji EC2.

A co najlepsze, możesz je zniszczyć i odtworzyć, kiedy tylko zajdzie taka potrzeba. W takim przypadku oszczędzasz pieniądze na infrastrukturę programistyczną i testową, gdy jej nie potrzebujesz. Zakończenie połączenia i rekreacja na żądanie mają oczywiście wiele innych zastosowań w biznesie.

Podstawy przetwarzania w chmurze

Ponieważ rozmawialiśmy już o EC2, może mały krok wstecz mógłby pomóc w wyjaśnieniu, czym dokładnie jest przetwarzanie w chmurze.

Można na to spojrzeć jako na model dostarczania zasobów obliczeniowych przez Internet, który jest dostępny na żądanie i zbudowany jako usługa. Jest to mechanizm umożliwiający dostęp do mocy obliczeniowej wraz z całą jej infrastrukturą i aplikacjami bez konieczności inwestowania w fizyczny sprzęt lub infrastrukturę. Przetwarzanie w chmurze opiera się na zestawie podstawowych zasad, do których należą:

  • Użytkownicy mają dostęp do samoobsługi na żądanie w dowolnym momencie. Serwery i pamięć masowa są dostępne bez konieczności przechodzenia przez długi proces zakupu.
  • TabletyZasoby chmury są dostępne z dowolnego miejsca i z dowolnego miejsca (np. laptopów, komputerów stacjonarnych, tabletów, telefonów komórkowych).
  • Zasoby obliczeniowe lub całą infrastrukturę można udostępniać i dynamicznie alokować, aby sprostać zmieniającym się środowiskom i wymaganiom.
  • Możesz szybko skalować dowolne zasoby w górę lub w dół w zależności od bieżącego zapotrzebowania.
  • Przetwarzanie w chmurze w czasie rzeczywistym oznacza zasadniczo model cenowy typu pay-as-you-go, w którym użytkownicy płacą tylko za zasoby, z których faktycznie korzystają. Ponadto zużycie energii możesz śledzić w czasie rzeczywistym.

Modele usług przetwarzania w chmurze

Przetwarzanie w chmurze może mieć trzy główne modele usług:

  • Infrastruktura jako usługa (IaaS), która udostępnia zwirtualizowane zasoby obliczeniowe, takie jak serwery, pamięć masowa i sieć, jako usługę. Stworzenie praktycznego rozwiązania powyżej zależy wyłącznie od Ciebie.
  • Platforma jako usługa (PaaS) to krok dalej. Otrzymasz całą platformę do tworzenia, wdrażania i zarządzania aplikacjami jako usługą. Nie musisz się w żaden sposób martwić szczegółami infrastruktury.
  • Oprogramowanie jako usługa (SaaS) to najwyższa klasa, w ramach której otrzymujesz kompletne aplikacje, takie jak poczta e-mail, CRM lub narzędzia zwiększające produktywność, w formie usługi. W tym przypadku po prostu korzystasz z tego, co jest już dla Ciebie dostępne.
  • Modele wdrażania przetwarzania w chmurze

    Przetwarzanie w chmurze różni się także sposobem wdrażania zasobów i uzyskiwania do nich dostępu:

  • Chmura publiczna oznacza, że ​​zasoby chmury są dostarczane przez zewnętrznego dostawcę, takiego jak AWS, Microsoft Azure lub Google Cloud i są dostępne przez Internet.
  • Chmura prywatna ma miejsce wtedy, gdy organizacja buduje własne centrum danych, a infrastruktura jest dostępna tylko w sieci organizacji.
  • Chmura hybrydowa to połączenie zasobów chmury publicznej i prywatnej, które są zintegrowane w celu zapewnienia jednej wspólnej, wzajemnie połączonej infrastruktury.
  • Multi-cloud to strategia, w której organizacja korzysta z wielu dostawców usług w chmurze w celu zaspokojenia określonych potrzeb biznesowych. Można na przykład połączyć Amazon Cloud i SAP Datawarehouse Cloud, aby zbudować rozwiązanie składające się z regulowanych danych transakcyjnych w SAP z jeziorem danych zbudowanym w AWS.
  • Elastyczność EC2

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

    Elastyczność jest kluczową cechą przetwarzania w chmurze. Odnosi się do zdolności infrastruktury chmury do dynamicznego przydzielania i zwalniania zasobów obliczeniowych w odpowiedzi na stale zmieniające się potrzeby. Dzięki elastyczności możesz skalować infrastrukturę w górę lub w dół w zależności od potrzeb. Wszystko to bez konieczności inwestowania w sprzęt fizyczny lub infrastrukturę.

    W parze z tym idzie kolejna właściwość chmury, jaką jest skalowalność. Jest to zdolność systemu do obsługi rosnącego obciążenia lub ruchu bez pogorszenia wydajności.

    Na przykład, jeśli Twoja strona główna odnotowuje niezwykle duży, nagły ruch w związku z wydaniem nowego, długo oczekiwanego produktu. To moment, w którym wkracza skalowalność i zwiększa wszystkie Twoje zasoby i moc, aby czuć się komfortowo przy tak dużym obciążeniu.

    Skalowalność osiąga się poprzez wykorzystanie elastycznych zasobów, takich jak maszyny wirtualne, pamięć masowa i sieć, które można szybko i łatwo skalować w górę lub w dół.

    Automatyczne skalowanie jest wówczas funkcją przesadną, która wykorzystuje możliwości skalowania i automatyzuje je w oparciu o wstępnie zdefiniowane oczekiwania dotyczące obciążenia. Automatycznie dostosuje liczbę zasobów obliczeniowych do wykorzystania w zależności od zapotrzebowania. Oznacza to również, że nie musisz monitorować i ręcznie dostosowywać zasobów. Skalowanie zasobów w górę lub w dół może opierać się na różnych metrykach, takich jak wykorzystanie procesora, ruch sieciowy lub czas odpowiedzi aplikacji.

    Wreszcie zasoby przydzielane są dynamicznie i w czasie rzeczywistym. Daje to możliwość optymalizacji wykorzystania infrastruktury. Alokuj swoje zasoby tylko wtedy, gdy ich potrzebujesz i zwalniaj je, gdy już ich nie potrzebujesz.

    Dynamiczna alokacja zasobów jest kluczową cechą chmury obliczeniowej, ponieważ pozwala osiągnąć wysoki poziom wykorzystania i wydajności przy jednoczesnej minimalizacji kosztów.

    Korzyści z EC2

    Niektóre z głównych zalet EC2 są już oczywiste. Ale żeby umieścić to w wyraźnym kontekście, najważniejsze są następujące uwagi:

    Elastyczność

    Użyj EC2, aby łatwo skalować zasoby obliczeniowe w górę lub w dół, aby sprostać bieżącym poziomom obciążenia. Uruchamiaj lub niszcz instancje według potrzeb, już teraz. Wstrzymuj i uruchamiaj ponownie instancje, kiedy najbardziej Ci odpowiada. Miej pewność, że zawsze masz kopię zapasową na wypadek, gdyby coś poszło nie tak.

    Efektywność kosztowa

    Bezpośrednim skutkiem elastyczności jest zwiększona możliwość zaoszczędzenia pieniędzy na zapewnieniu infrastruktury. Jeśli skonfigurujesz prawidłowo, Twoje instancje EC2 będą uruchamiane i kończone we właściwym czasie. Dzięki temu unikniesz kosztów związanych z nieuzasadnionymi kosztami udostępnienia zasobów.

    Duża dostępność

    Dzięki EC2 otrzymujesz infrastrukturę o wysokiej dostępności, której celem jest zminimalizowanie przestojów i zapewnienie, że aplikacje i usługi będą zawsze dostępne.

    Niezawodność

    EC2 zapewnia niezawodną infrastrukturę, która ma działać praktycznie bez przerwy i zapewnia, że ​​aplikacje i usługi są zawsze dostępne i wydajne.

    Dostępność

    Możesz mieć dostęp z dowolnego miejsca, za pomocą komputerów stacjonarnych, laptopów, tabletów i smartfonów. Podobnie masz pełną swobodę stosowania wszelkich ograniczeń dostępu, których potrzebujesz.

    Globalny zasięg

    EC2 jest dostępny w wielu regionach na całym świecie, dzięki czemu możesz wdrażać aplikacje i usługi bliżej swoich klientów i zachować zgodność z lokalnymi przepisami dotyczącymi ochrony danych.

    Zwinność

    Dysponujesz naprawdę elastyczną infrastrukturą, która umożliwia szybkie reagowanie na zmieniające się warunki rynkowe i szybsze wprowadzanie innowacji.

    Ochrona danych

    EC2 zapewnia bezpieczną infrastrukturę, która z założenia została stworzona w celu ochrony danych i aplikacji przed nieautoryzowanym dostępem i zagrożeniami cybernetycznymi.

    Zgodność

    EC2 jest zgodny z szeroką gamą standardów i przepisów branżowych, w tym HIPAA, PCI DSS i RODO.

    Współpraca

    EC2 zapewnia środowisko współpracy, które umożliwia zespołom wspólną pracę nad projektami oraz dzielenie się zasobami i danymi.

    Wyzwania z EC2

    Z pewnością istnieją również pewne wyzwania, o których warto wiedzieć, korzystając z EC2.

    #1. Zarządzanie kosztami

    Zasadniczą naturą całego modelu kosztów AWS jest uczynienie go tak złożonym, jak to tylko możliwe, a ceny EC2 nie są od tego wyjątkiem. Musisz uważnie zarządzać swoim użytkowaniem, aby uniknąć nieoczekiwanych kosztów i mieć przygotowane niezawodne narzędzia do ciągłego monitorowania. Możesz skorzystać z niektórych narzędzi do optymalizacji kosztów, np. AWS Cost Explorer lub AWS Trusted Advisor.

    #2. Bezpieczeństwo

    Chociaż EC2 zapewnia bezpieczną infrastrukturę, nadal jesteś odpowiedzialny za zabezpieczanie własnych aplikacji i danych. Należy wdrożyć najlepsze praktyki dotyczące bezpieczeństwa, takie jak używanie silnych haseł, szyfrowanie danych i wdrażanie kontroli dostępu.

    #3. Zgodność

    Dzięki EC2 musisz mieć pewność, że użytkowanie jest zgodne ze standardami i przepisami branżowymi. Dlatego istotne jest regularne przeglądanie dokumentacji dotyczącej zgodności AWS i współpraca z ekspertami ds. zgodności AWS, aby mieć pewność, że spełniasz wymagania dotyczące zgodności wymagane przez Twoich klientów.

    #4. Wydajność

    Na wydajność EC2 można wpływać różnymi czynnikami, takimi jak na przykład opóźnienie sieci, operacje we/wy dysku lub wykorzystanie procesora. Systematycznie monitoruj wydajność swojej infrastruktury i korzystaj z narzędzi optymalizacji wydajności, takich jak AWS CloudWatch i AWS X-Ray, aby identyfikować i rozwiązywać problemy z wydajnością.

    #5. Dostępność

    To prawda, że ​​EC2 zapewnia infrastrukturę o wysokiej dostępności, ale mimo to należy upewnić się, że udostępniane aplikacje i usługi są również zaprojektowane pod kątem wysokiej dostępności. Wykorzystaj w tym celu usługi AWS, takie jak Elastic Load Balancing czy Auto Scaling, aby mieć pewność, że aplikacje i usługi będą zawsze dostępne.

    #6. Transfery danych

    Korzystając z EC2, należy pamiętać o kosztach transmisji danych, ponieważ transfer danych pomiędzy instancjami EC2 a innymi usługami AWS może wiązać się z dodatkowymi opłatami. Oznacza to, że nie chodzi tylko o wymianę danych pomiędzy Twoją infrastrukturą a Internetem. Użyj Amazon S3 i Amazon CloudFront, aby zminimalizować koszty przesyłania danych.

    #7. Blokada dostawcy

    Świadomość możliwości uzależnienia od dostawcy podczas korzystania z EC2 powinna znajdować się na Twojej liście priorytetów. Projektuj aplikacje i usługi tak, aby były przenośne wśród dostawców usług w chmurze i korzystaj z otwartych standardów i interfejsów API, aby zapewnić interoperacyjność. W ten sposób Twoje rozwiązanie stanie się niezależne od chmury, stając się dodatkową warstwą elastyczności, która nadal stanowi znaczną przewagę rynkową.

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

    Ciekawi Cię przyszłe trendy i innowacje, które – jak możesz się spodziewać – ukształtują przyszłość EC2? Tutaj są.

    Bezserwerowy

    Przetwarzanie bezserwerowe to wciąż nowy paradygmat w chmurze obliczeniowej, mimo że jest wdrażany już od kilku lat przez niektóre z najbardziej postępowych zespołów programistycznych. Programiści uruchamiają kod bez konieczności zarządzania serwerami i infrastrukturą. Funkcja AWS Lambda lub AWS Step to przykład bezserwerowej usługi obliczeniowej, którą można zbudować na bazie EC2.

    Nauczanie maszynowe

    EC2 to doskonała infrastruktura do uruchamiania modeli uczenia maszynowego, prognoz i obciążeń. W ciągu kilku minut możesz dosłownie wygenerować imponująco duże jeziora danych zawierające prognozy danych modeli. Ponadto AWS udostępnia szereg gotowych do użycia usług uczenia maszynowego, takich jak Amazon SageMaker i Amazon Rekognition, które są zbudowane na bazie EC2.

    Przetwarzanie brzegowe

    Przetwarzanie brzegowe to nowy paradygmat w przetwarzaniu w chmurze, polegający na przetwarzaniu danych bliżej źródła, a nie w scentralizowanym centrum danych. Oznacza to, że wykonujesz wszystkie obszerne operacje ładowania danych w obszarze, w którym generujesz dane. Następnie za pomocą różnych usług buforowania przesyłasz dane do centralnego magazynu danych, co tak naprawdę nie ma już wpływu na przetwarzanie operacji użytkownika. AWS oferuje szereg usług przetwarzania brzegowego, takich jak AWS Greengrass i AWS IoT, które można wdrożyć na platformie EC2.

    Konteneryzacja

    Konteneryzacja to strategia pakowania aplikacji i usług w kontenery, które można łatwo wdrożyć i zarządzać. Otrzymujesz pewność kompatybilności, gdy wymagany jest transport usług pomiędzy instancjami lub infrastrukturami. AWS oferuje szereg usług konteneryzacji, takich jak Amazon ECS i Amazon EKS, które są zbudowane na bazie EC2.

    Obliczenia kwantowe

    Obliczenia kwantowe to znowu całkiem nowy paradygmat, który polega na wykorzystaniu zjawisk mechaniki kwantowej, takich jak superpozycja i splątanie, do wykonywania obliczeń. AWS oferuje szereg usług obliczeń kwantowych, takich jak Amazon Braket, i możesz je mieć oprócz EC2.

    Ostatnie słowa

    EC2 to podstawowa część każdej poważnej infrastruktury chmurowej i to szybko nie zniknie. Zwykle prawdopodobnie zobaczysz to w swoich 3 najlepszych usługach generujących najwyższe koszty, ale nie bez powodu.

    EC2 stanowi szkielet infrastruktury chmurowej, który przechwytuje wszystkie pozostałe usługi na swojej powierzchni. Zrozumienie EC2 jest zatem kluczowe, jeśli Twoim celem jest odniesienie sukcesu w świecie przetwarzania w chmurze.

    Następnie zapoznaj się z najlepszymi praktykami dotyczącymi bezpieczeństwa AWS EC2.