Paweł Łukasiewicz
2021-10-20
Paweł Łukasiewicz
2021-10-20
Udostępnij Udostępnij Kontakt
Wprowadzenie

EC2 (Elastic Compute Cloud) to interfejs usługi sieciowej, która zapewnia możliwość zmiany mocy obliczeniowej w chmurze AWS. Jest przeznaczony dla programistów i architektów oprogramowania, którzy chcą mieć pełną kontrolę na skalowaniem sieciowym i zasobami obliczeniowymi.

Instancje EC2 mogą być zmieniane w góre lub w dół (ilość) zgodnie z naszymi wymaganiami. Możemy je uruchamiać w jednej lub wielu lokalizacjach geograficznych lub w regionach oraz strefach dostępności. Każdy region składa się z kilku stref dostępności (Availability Zones) w różnych lokalizacjach, które połączone są ze sobią sieciami o niskich opóźnieniach. EC2: Elastic Compute Cloud

Komponenty EC2

Zanim przejdziemy do stawiania swojej pierwszej instancji musimy poznać EC2 w szczegółach. Świadomość istnienia poszczególnych komponentów, ich systemów operacyjnych, bezpieczeństwa oraz kosztów użytkowania zasobów jest niezwykle ważna. Proces zarządzania w przyszłości będzie nieco prostszy (i mniej kosztowny).

Zaczniemy od wsparcia różnych systemów operacyjnych, których użycie wiąże się z dodatkowymi opłatami licencyjnymi. Mowa tutaj o Red Hat Enterprise, SUSE Enterprise oraz Oracle Enterprise Linux, UNIX, Windows Server, itd. W naszym wypadku wykorzytamy dostępność 750 skumulowanych godzin użytkownika i 30GB pamięci masowej miesięcznie wykorzystując instancję Windows EC2 w ramach pakietu AWS Free Tier. O tym jednak w dalszej części wpisu.

Kwestia bezpieczeństwa jest kolejnym niezwykle ważnym punktem na naszej liście. Jako użytkownicy AWS mamy pełną kontrolę nad widocznością swojego konta i przypisanych zasobów. Możemy tworzyć własne grupy bezpieczeństwa i umieszczać w nich instancje zgodnie z wymaganiami. Możemy również zdefiniować, które grupy mogą komunikować się z innymi grupami oraz te, które mogą komunikować się z innymi podsieciami w Internecie. Z poziomu naszego konta mamy dostęp do dedykowanej wirtualnej chmury prywatnej (VPC), która jest logicznie odizolowana od innych wirtualnych sieci w chmurze AWS. W VPC możemy uruchamiać swoje zasoby takie jak EC2. Temat ten jest niezwykle szeroki i poruszymy go nieco głębiej w jednym z kolejnych wpisów.

Amazon EC2 pozwala na projektowanie aplikacji gwarantujących niezwykle wysoką dostępność i odporność na błędy. EC2 obejmuje regiony geograficzne i odizolowane lokalizacje znane jako strefy dostępności, które charakteryzują się odpornością na błędy i stabilnością. Dokładne lokalizacje regionalnych centrów nie są znane – wszystko ze względów bezpieczeństwa.

Uruchomienie instancji wiąże się z wyborem AMI (Amazon Machine Images), które znajduje się w tym regionie w którym instancja będzie działać. Instancje są dystrybuowane w wielu strefach dostępności, aby zapewnić ciągłość usług w przypadku awarii. Adresy Elastic IP używane są do szybkiego mapowania adresów instancji, które uległy awarii do równolegle działających instancji w innych strefach – podejście takie pozwala uniknąć opóźnień w świadczeniu usług: EC2: Elastic Computer Cloud

Kolejny istotny element usług AWS EC2 to możliwość migracji istniejących wirtualizacji lub/i np. baz danych działających na lokalnych środowiskach. Decydując się na takie podejście musimy liczyć się z dodatkowymi kosztami związanymi z wykorzystaniem pamięci masowej i samym transferem danych. Takie usługi będą odpowiednie dla osób, które mają bardzo duże ilości danych do przetransferowania. Jeżeli checie poczytać nieco więcej na ten temat to odsyłam do oficjalnych zasobów https://aws.amazon.com/dms/pricing/

Co oferuje EC2?

  • Niezawodność: Amazon EC2 oferuje wysoce niezawodne środowisko w którym podmiana instancji (w razie awarii) jest niezwykle szybka. Gwarancja dotyczą dostępności opiewa na 99.9% dla każdego z regionów w którym możemy uruchomić EC2;
  • Interoperacyjność: Dla nikogo nie będzie niespodzianką, że EC2 zostało zaprojektowane w sposób gwarantujący bardzo dobrą interoperacyjność z innymi usługami Amazon do których zaliczamy m.in. S3, RDS (Relational Database Service), DynamoDB i SQS (Simple Queue Service). EC2 zapewnia kompletne rozwiązania do obliczeń w chmurze, przetwarzania zapytań i przechowywania danych w różnej postaci w zależności od naszych wymagań;
  • Bezpieczeństo: działanie w wirtualnej chmurze prywatnej (VPC) pozwala nam zagwarantować odpowiedni poziom bezpieczeństwa a szerokie właściwości konfiguracyjne pozwalają dopasować zasoby sieciowe do naszych potrzeb;
  • Narzędzia: Amazon dostarcza szerokie spektrum narzędzi dla programistów i administratorów pozwalających na budowanie aplikacji odpornych na awarie oraz gotowych na obsługę różnych scenariuszy w przypadku wystąpienia błędu. Dodatkowym atutem jest szereg narzędzi monitorujących pracę naszej aplikacji, które pozwalają na ustawianie alarmów i szybkie reagowanie w sytuacjach kryzysowych;
  • Zrównoważony koszt: płacimy tylko za zasoby, które wykorzystujemy. Decydując się na rozwiązania do naszych projektów możemy wybierać z wielu dostępnych planów takich jak On-Demand Instances, Reserved Instances lub Spot Instances.

Nasza pierwsza instancja

Tak jak wspomniałem we wprowadzeniu skorzystamy z AWS Free Tier, który oferuje 750 skumulowanych godzin użytkowania w oparciu o instancję Windows EC2.

Spójrzcie na poniższą listę kroków:

  1. Przechodzimy do https://console.aws.amazon.com/ec2/
  2. Wciskamy przycisk Launch Instance, który znajduje się w sekcji o tej samej nazwie.
  3. Na kolejnym ekranie wskazujemy Free Tier only, aby ograniczyć liczbę obrazów dostarczonych przez AWS do tych darmowych (panel nawigacyjny po lewej stronie): EC2: Elastic Computer Cloud
  4. Możemy wykorzystać filtrowanie do zwrócenia jedynie interesujących nas obrazów. Wybieramy bazowy obraz Windows 2019. Jeżeli nie korzystaliście z filtrowania upewnijcie się, że wybraliście ten oznaczony Free tier eligible.
  5. Kolejny ekran pokazuje jak szeroki wybór zasobów zapewnia Amazon EC2. Zaprezentowane instancje są wirtualnymi serwerami, które pozwalają na uruchamianie różnych aplikacji. Posiadają różne konfiguracje procesorów, pamięci, pamięci masowej, etc. zapewniając elastyczość przy wyborze instancji odpowiedniej dla naszych aplikacji. My nie dokonujemy żadnych zmian, klikamy przycisk Next: Configure Instance Details znajdujący się na dole ekranu: EC2: Elastic Computer Cloud
  6. Na kolejnym ekranie musimy upewnić się, że Tenacy ustawione jest na Shared a Request Spot Instances nie jest zaznaczone. Wszystkie inne ustawienia nie mają wpływu na to czy użycie naszej instancji jest darmowe – możesz je skonfigurować dowolnie: EC2: Elastic Computer Cloud
  7. Kolejny krok to kliknięcie przycisku Add Storage.
  8. Wybieramy maksymalnie 30 GB pamięci, aby zmieścić się w naszym darmowym pakiecie. Ograniczenie to dotyczych wszystkich pamięci masowych, które zostały przydzielone nawet innym instancjom w obrębie jednego konta. Wskazujemy dysk General Purpose SSD (GP2) lub Magnetic (uprzedzając pytania o trzeci typ dysku wrzucam poniższy zrzut ekranu – klikając w odnośnik znajdziecie dużo bardziej szczegółowe omówienie dostępnych planów): EC2: Elastic Computer Cloud
  9. Klikamy przycisk Next: Add Tags.
  10. Znaczniki pozwalają na łatwiejsze zarządzania instancjami, obrazami oraz innymi dostępnymi zasobami – do każdego z nich można przypisać metadane w postaci znaczników. Dzięki takiemu podejściu możemy kategoryzować zasoby na różne sposoby, np. według przeznaczenia, właściciela czy środowiska. Znaczniki mają zastosowanie gdy mamy wiele zasobów tego samego typu – identyfikacja będzie znacznie prostsza. W naszym przypadku pomijam ten krok.
  11. Klikamy przycisk Next: Configure Security Group.
  12. Konfiguracja grupy zabezpieczeń pozwala na komunikację (tylko z/do) zaufanych źródeł. Więcej na ten temat możecie przeczytać tutaj: Grupy zabezpieczeń Amazon EC2 dla instancji Windows. Na tym etapie nie dokonujemy żadnych zmian i przechodzimy dalej.
  13. Klikamy przycisk Review and Launch.
  14. Jak widzicie dostajemy informację, że nasza instancja będzie dostępna z każdego adresu IP co nie jest zalecane, wręcz niebezpieczne. Musicie mi wybaczyć ale na tym etapie nie chciałem komplikować wpisu – chciałem skupić się jedynie na przejściu przez konfigurację instancji EC2.
  15. Ostatni krok to okno dialogowe w którym zostaniemy poproszeni o utworzenie nowej pary kluczy (jeżeli nie istnieją). Para wygenerowanych kluczy będzie służyła do autoryzacji danej instancji: EC2: Elastic Computer Cloud

Osoby bardziej dociekliwe oraz zainteresowane bezpieczeństem powinny w pierwszej kolejności utworzyć własną wirtualną chmurę prywatną VPC, następnie przygotować grupę zabezpieczeń z odpowiednimi regułami a dopiero potem dokonać uruchomienia EC2 wewnątrz VPC wraz ze wskazniem utworzonej grupy zapieczeń w punkcie 12. Na wszystko jednak przyjdzie pora w kolejnych wpisach.