Blog

Podstawy pracy z Amazon EC2

26.04.2023
pan serwer Piotr Kmita
Udostępnij

Znacie już zapewne AWS. Ale czy słyszeliście o usłudze Amazon EC2? W tym artykule znajdziecie instrukcję jak pracować z usługą oraz jakie daje możliwości. Jednakże zanim przejdziemy do sedna artykułu, warto na początek zapoznać się z istotnymi informacjami, przed uruchomieniem pierwszego serwera.

Amazon Web Services oferuje duży wybór instancji. Istotne jest aby poznać czym się one od siebie różnią i jaka spełni nasze potrzeby. Jedną z takich instancji jest EC2. Skrót ten oznacza Elastic Compute Cloud, czyli elastyczną chmurę publiczną. Poszczególne instancje Amazon EC2 to serwery wirtualne typu VPS. Są one uruchamiane na współdzielonych zasobach sprzętowych lub prywatnych serwerach dedykowanych. Serwery te różni przede wszystkim cena. Współdzielenie sprzętu jest tańsze niż posiadanie całego serwera na własny użytek.

Dodam tylko, że w artykule będziemy wskazywać oryginalne, angielskie nazwy ze względu na to iż Amazon stworzony jest w wersji angielskiej i łatwiej operować na oficjalnych nazwach AWS.

Typy inicjacji w Amazon EC2

W usłudze Amazon EC2 możemy skorzystać z kilku typów instancji. W Amazon Elastic Compute Cloud są to: general purpose, compute optimized, memory optimized, accelerated computing, storage optimized. Po kolei przejdziemy przez wszystkie rodzaje, tak aby można było zauważyć różnicę pomiędzy poszczególnymi rodzajami.

Typy instancji w Amazon EC2

Rys. 1 – Typy instalacji w Amazon EC2

General Purpose

Jest typem instancji Amazon EC2, który ma wypośrodkowane parametry i wykorzystuje się je, gdy chcemy, aby żaden z parametrów nie był dominantą. Ten typ dzieli się na:

  • M5 i M4. Z czego instancja M5 jest najnowszą generacją. Jest ona dobrze zoptymalizowana pod kątem pamięci, zasobów sieciowych i mocy obliczeniowej. Z kolei M4 posiada inny procesor oraz jest gorzej zoptymalizowane pod względem dysku EBS. Wydajność serwerów M4 jest stała i nie opiera się na kredytach CPU.
  • T2 – z tego rodzaju korzysta się głównie w małych projektach lub środowiskach testowych. Instancje T2 korzystają z kredytów CPU. Jest to powód, dlaczego nie powinny być stosowane w dużych projektach z branży IT. Po wyczerpaniu kredytów CPU, instancje T2 znacznie zmniejszają swoją wydajność. Dla przykładu jeżeli korzystamy z instancji t2.micro i CPU jest wykorzystywane w mniej niż 20%, to zbierane jest 6 kredytów na godzinę. Jeżeli jednak wykorzystujemy CPU powyżej 20% to te kredyty się zużywają. Kredyty te są przechowywane do 24 godzin.

Computer optimized

Kolejnym typem instancji Amazon EC2 jest computer optimized. Ten typ jest zoptymalizowany pod kątem mocy obliczeniowej. Computer optimized dzielą się na:

  • C4 i C5 – Obydwie instancje posiadają dużą moc obliczeniową, która pozwala na tworzenie wydajnych serwerów sieciowych, modelowania naukowego, przetwarzania wsadowego oraz analizę rozproszoną.

Memory optimized

Innym typem instancji jest memory optimized. Jest to rodzaj stworzony dla firm, które wykorzystują duże ilości pamięci RAM. Obecne podtypy instancji memory optimized to:

  • X1, X1e, R4. Są one stosowane głównie do wysoko wydajnych baz danych. Największa instancja x1e.32xlarge posiada 3940 GB pamięci RAM DDR4. Instancja ta jest certyfikowana przez SAP do współpracy z Business Suite, S/4HANA, Business Suite on HANA (SoH), Business Warehouse on HANA (BW), Data Mart Solutions on HANA w chmurze obliczeniowej AWS.

GPU graphics i GPU compute

Jeżeli istotne są dla Ciebie procesory graficzne GPU, to przydatne mogą być dla Ciebie takie instancje Amazon EC2 jak: GPU graphics i GPU compute.

  • Podinstancje P2 i P3 reprezentują GPU compute. Są polecane dla aplikacji, które wymagają dużej mocy obliczeniowej np.: uczenie maszynowe, obliczeniowa mechanika płynów, wysokowydajne bazy danych, obliczenia finansowe, analiza sejsmiczna, dynamika płynów, modelowanie molekularne oraz genomika.
  • Z kolei G3 to GPU graphics. G3 idealnie nadają się do aplikacji wymagających wysokiej wydajności akceleracji grafiki m.in.: wizualizacje i renderowanie 3D, kodowanie wideo czy wirtualna rzeczywistość. Ta instancja zapewnia procesory graficzne GPU, wysoką wydajność procesora oraz dużą pamięć i dużą szybkość sieci.

GPU instances i PFGA instances

Specjalnym rodzajem instancji w Amazon EC2 są: GPU instances i PFGA instances (Accelerated Computing). Posiadają one dużą moc obliczeniową oraz dysk SSD jako dodatkowy instance storage.

  • G2 jest jedną z wyżej wspomnianych instancji. Posiada GPU oraz dodatkowy storage (dysk SSD).
  • F1 – to druga z instancji. Oferuje ona dostosowywane przyspieszenie sprzętu, dzięki programowalnemu układowi logicznemu FPGA.

Storage optimized

Ostatni typ to storage optimized, czyli instancje, które są zoptymalizowane pod kątem wydajności dysku.

  • D2, I2, H1, H3 są przeznaczone do aplikacji z dużymi wymaganiami co do I/O do wielkości storage’u. Z kolei D2 jest polecana do stosowania w dużych hurtowniach danych lub równoległych systemach plików.

Przed zaplanowaniem infrastruktury, warto się upewnić czy typ instancji Amazon EC2, który mamy zamiar wdrożyć jest dostępny w rejonie geograficznym, w jakim planujemy go wdrożyć. Pewne obszary nie posiadają na ten moment niektórych instancji. Warto przypomnieć, że usługi AWS dynamicznie się zmieniają i niektóre z usług mogą już być wyparte przez inne, udoskonalone usługi. Aby sprawdzić czy usługa jakiej potrzebujemy jest dla nas dostępna, najlepiej skorzystać z oficjalnej strony AWS https://aws.amazon.com/ec2/instance-types/.

Sposoby rozliczenia

Podczas korzystania z Amazon Elastic Compute Cloud możemy uruchomić serwery na urządzeniu współdzielonym lub na urządzeniu prywatnym, które jest fizycznie oddzielone od reszty serwerów klientów.

AWS Pricing

Rys. 2 – cennik AWS

W zależności od sposobu rozliczania korzystania z instancji, wyróżnia się kilka instancji:

  • on-demand – ten rodzaj instancji uruchamiany jest na żądanie Klienta,
  • reserved instances – czyli instancje zarezerwowane. Dają one gwarancje, że będziemy mieli dostęp do zasobów, które mamy zamiar wykorzystać. Przy tym typie rozliczenia, serwer będzie działał bez przerwy. W związku z czym, oszczędzimy sporo pieniędzy, w porównaniu do uruchomienia serwerów na żądanie. Warto pamiętać, że jeżeli zdecydujemy się na tą instancję, to umowa jest podpisywana na 12 lub 36 miesięcy.
  • spot instance – instancje są uruchamiane na zasadach podobnych do licytacji. Ich największym minusem jest to, że ten typ instancji nie zawsze jest dostępny. Dodatkowo Amazon może zabrać naszą instancję w każdej chwili, dając zaledwie 2 minuty na dokończenie procesów i zapisanie wyników pracy maszyny. W przypadku kiedy Amazon zabierze nam serwery, nie ponosimy kosztów pracy za ostatnią godzinę. Ten typ instancji doskonale nadaje się do przetwarzania zadań z kolejek. Największą korzyścią z tego rozwiązania, jest jego cena. Pozwalają one oszczędzić do 90% kosztów w porównaniu do instancji on-demand.
  • dedicated instances – są to instancje dedykowane. Urządzania są uruchamiane i wykorzystywane tylko przez nas. Oddzielone są fizycznie od serwerów innych klientów.

W celu oszacowania kosztów, AWS udostępnia kalkulator, gdzie możecie oszacować ile pieniędzy będzie kosztować was użycie poszczególnego narzędzia. Kalkulator znajduje się w tym linku: https://calculator.s3.amazonaws.com/index.html.

Zarządzanie chmurą Amazon Web Services

Amazon daje kilka możliwości zarządzania swoim usługami. Możemy zarządzać nimi z poziomu:

  • AWS Management Console. Jest to panel dostępny przez przeglądarkę. Rozwiązanie to jest idealne dla niezaawansowanych użytkowników.
Rys. 3 – kokpit AWS
  • Command Line Interface (CLI) – zarządzamy AWS poprzez wiersz poleceń.
Rys. 4 – interface wiersza poleceń (CLI)
  • Software Development Kits SDKs. Jest to zestaw bibliotek pozwalający na zarządzanie poprzez języki programowania m.in.: Java, Node.js, Python, PHP, C++, Go.
Rys. 5 – Zestawy narzędzi deweloperskich (SDK)

Zanim zaczniesz tworzyć EC2

W celu utworzenia maszyny wirtualnej, wymaga się wcześniejszej konfiguracji wirtualnej infrastruktury sieciowej. Do uruchomienia instancji Amazon EC2 potrzebne jest skonfigurowanie takich elementów:

  • Virtual Private Cloud (VPC) – wirtualna sieć w AWS,
  • Subnet – podsieć w VPC,
  • Internet Gateway – bramka internetowa w VPC,
  • Route table – tabela routingu,
  • Security group – grupa bezpieczeństwa,
  • Network ACL – polityka bezpieczeństwa.

Zaleca się tworzenie własnych komponentów, jednakże w razie potrzeby, AWS udostępnia swoje komponenty.

Zwróć uwagę na funkcjonalności

AWS posiada bardzo dużo funkcjonalności. Warto przyjrzeć się chociaż części przy tworzeniu maszyn wirtualnych w EC2:

  • Typy instancji – są one przeznaczone do różnych środowisk. Warto zastanowić się do czego będziemy używać EC2. W jednym przypadku instancja będzie właściwa, a w innym nie. Dla przykładu, w środowiskach produkcyjnych nie zaleca się korzystać z typu T2, ponieważ posiada kredyty CPU. Jeżeli jednak mamy w planach testować środowiska, typ T2 będzie odpowiedni.
  • Placement Groups – funkcjonalność, dzięki, której maszyny wirtualne będą w jednej “Availability Zone”. Spowoduje to, że opóźnienia pomiędzy serwerami w komunikacji sieciowej będą małe. Jeżeli chcesz dowiedzieć się więcej na ten temat, zerknij do artykułu poświęconego S3. (https://bhttps://qlos.com/co-to-amazon-s3-i-jak-z-niego-korzystac/log.qlos.com/pl/amazon-s3-co-to-jest-i-jak-z-niego-korzystac/ )
  • Obraz AMI – jest to obraz systemu operacyjnego, który będzie używany w celu uruchomienia serwera,
  • Security group – grupa bezpieczeństwa pozwala tylko na wybrany ruch sieciowy, a nie cały. Grupę tą przypisuje się do danej instancji EC2.
  • Typ dysku EBS – przed wyborem dysku należy się zastanowić czy potrzebujemy większą przepustowość czy IOPS. Rodzaje dysków EBS to: General Purpose SSD (gp2), Provisioned IOPS SSD (io1), Throughtput Optimized HDD (st1), Cold HDD (sc1).

Jeżeli chcemy poznać szczegółowe parametry typów dysków, tutaj są wszystkie informacje: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html.

Zaczynając przygodę z serwerami warto jednak zastanowić się do czego zamierzamy go wykorzystywać i jakie potrzeby w związku z tym posiadamy. Warto też zadać sobie takie pytania jak: “Czy potrzebuję dużą przepustowość sieci pomiędzy innymi serwerami w chmurze” albo “Jak będzie wyglądać obciążenie dysku”. Niektóre z operacji np.: zmiana typu dysku czy dołączenie do “Plecement Groups” mogą być problematyczne, jeżeli już utworzymy serwer.

Jeżeli zamierzacie skorzystać z usługi Amazon EC2 warto przejrzeć oficjalną stronę Amazon Web Services i zapoznać się ze szczegółami usługi, aby mieć pewność, że dobrze dobierzemy rozwiązanie pod swoje potrzeby.

Kontakt

Masz pytania? Skontaktuj się z nami