dpzc-4/03_IaaS/03_01.ipynb
nlitkowski e248075771 a
2022-01-05 01:08:54 +01:00

31 KiB

Wstęp do modułu

W tym module zajmiemy się modelem IaaS (Infractructure as a Service) chmury obliczeniowej. Podstawowe informacje na jego temat zostały przedstawione na pierwszych zajęciach. Do kluczowych cech usług w tym modelu należą:

  • wykorzystanie wirtualizacji w celu udostępnienia zasobów obliczeniowych wielu użytkownikom jednocześnie
  • dostęp i tworzenie zasobów z wykorzystaniem API
  • pełna dowolność w konfiguracji oprogramowania (OS, środowisko uruchomieniowe)
  • istotnie ograniczony lub brak wpływu na konfigurację sprzętową

Diagram przedstawia główne modele chmury obliczeniowej (IaaS, PaaS, SaaS) w raz z zaznaczeniem składowych infrastryktury (pomieszczenia, zasilanie i sieć, sprzęt, wirtualizacja, guest OS, środowisko uruchomieniowe, aplikacja, dane użytkownika) i podmiotem za nią odpowiedzialnego. Jako punkt odniesienia na diagramie umieszczono też dwa warianty posiadania własnej infrastruktury (infrastrukura na miejscu oraz kolokacja). Przy infrastrukturze na miejscu dwórca systemu informatycznego odpowiedzialny jest za wszystko, podczas gdy przy kolokacji nie musi zarządzać pomieszczeniem oraz siecią i zasilaniem. Gdy infrastruktura znajduje się w chmurze IaaS twórca aplikacji zwolniony jest konieczności zarządzania sprzętem i wirtualizacją. W modelu PaaS twórca zarządza już tylko aplikacją i danymi użytkownika, podczas gdy w modelu SaaS, tylko danymi.

Niniejszy moduł podzielony jest na cztery części. Pierwsza poświęcona jest motywacjom stojącym za infrastrukturą IaaS, jej wadom i zaletom. Druga część przedstawia najczęściej oferowane usługi chmurowe w modelu IaaS. Trzecia oraz czwarta część poświęcona jest praktycznemu wykorzystanu usług jednego z dostawców IaaS z wykorzystaniem interfejsu web oraz CLI.

Ewolucja w kierunku Infrastructure as a Service (IaaS)

Usługi chmurowe w modelu IaaS powstały w odpowiedzi na konkretne potrzeby firm wytwarzających oprogramowanie. Aby lepiej je zrozumieć konieczne jest przedstawienie sposobu zarządzania infrastrukturą IT przed popularyzacją chmury obliczeniowej.

Infrastruktura na miejscu

Jest to najbardziej oczywiste i historycznie pierwsze rozwiązanie problemu utrzymania infrastruktury na potrzeby projektów informatycznych. Z angielskiego często nazywane jest _on premises lub skrótowo on-prem. Polega na samodzielnym zakupie, konfiguracji i utrzymaniu całości (lub znacznej) części infrastruktury wymaganej przez dany projekt. Podejście to nie wykazuje cech charakterystycznych dla chmury obliczeniowej.

Zalety

Główną zaletą takiego podejścia jest pełna kontrola nad wszyskimi aspektami infrastruktury. Z technicznego punktu widzenia pozwala to dobrać optymalną konfigurację sprzętową i programową dla konkretnego typu oprogramowania. Możliwe jest też korzystanie z wysoce niestandardowej infrastruktury (np. serwerów mainframe, niestandardowych procesorów, dysków, itp). Z punktu widzenia bezpieczeństwa dane przechowywane na serwerach nie opuszczają firmy, co jest bardzo istotne w niektórych branżach.

Wady

Podejście takie ma jednak sporo wad, które zasadnoczo można zgrupować w następujące obszary:

  1. Koszty Utrzymanie własnej infrastruktury wiąże się z dużymi kosztami zarówno podczas jej budowy jak i poźniejszego utrzymania. Koszty budowy infrastruktury muszą zostać poniesione jeszcze przed uruchomieniem pierwszej wersji systemu, a co za tym idzie przed osiągnięciem jakichkolwiek zysków z projektu. Ponadto bardzo często nie jest możliwe dokładne oszacowanie skali wymaganych zasobów, co często skutkuje ich przeszacowaniem i jeszcze większym wzrostem kosztów.

    Należy pamiętać, że do stworzenia własnej infrastruktury nie potrzeba tylko serwerów, a także odpowiednio przystosowanych pomieszczeń/budynków, redundantnego zasilania, połączeń sieciowych, wentylacji i klimatyzacji. Najczęściej koszt samych serwerów jest niższy od pozostałych wydatków.

  2. Utrzymanie Raz zbudowana infrastruktura wymaga cięgłego utrzymania. Skutkuje to powstaniem w ramach organizacji odzielnych działów infrastruktury IT. To z kolei rozmywa działalność przedsiębiorstwa, które zamiast skupiać się na swojej głównej misji musi zatrudniać wielu pracowników z nią nie związanych.

  3. Skalowalność Zapotrzebowanie na infrastrukturę nie jest stałe. Zmienia się w zależności od bardzo wielu czynników, często w sposób trudny do przewidzenia. Jednak nawet w przypadku prostej i przewidywalnej sezonowej zmiany obciążenia systemu (np. systemy podatkowe, platformy sprzedażowe), posiadana infrastruktura musi być dopasowana do najwyższego możliwego obciążenia. Prowadzi to do sytuacji, w której zasoby nie są wykorzystywana efektywnie przez większość czasu.

    Ponadto niezależnie od wysokości nakładów poniesionych na budowę własnej infrastruktury, zawsze istnieje granica powyżej, której nie jest możliwe dodanie większej ilości zasobów (np. w skutek braku miejsca w serwerowni). W takiej sytuacji dodanie kolejnego serwera/dysku może wiązać się z nieproporcjonalnie dużymi wydatkami co znacząco ogranicza możliwości rozwoju projektu/firmy/organizacji.

  4. Bezpieczeństwo Obszar bezpieczeństwa jest jednocześnie najczęściej wskazywaną zaletą jak i wadą posiadania własnej infrastruktury. Fizyczna lokalizacja serwerów wewnątrz firmy ma swoje zalety, jednak wraz z rozwojem sieci komputerowych (głównie Internetu), coraz częściej atakujący nie potrzebuje fizycznego dostępu do sprzętu. Konieczne jest zatem zapewnienie programowego i sieciowego bezpieczeństwa infrastruktury, co wiąże się z zatrudnieniem kolejnych pracowników z dziedziny bezpieczeństwa systemów IT. Ponadto, w małych i średnich organizacjach osiągnięcie wysokiego poziomu zabezpieczeń jest zreguły zbyt kosztochłonne.

Przykłady

Obecnie w modelu tym swoją infrastrukturę utrzymują głównie bardzo duże firmy i organizacje, o szczególnych wymaganiach wobec bezpieczeństwa danych lub specjalistycznych serwerów. Coraz częściej infrastruktura na miejscu jest łączona z usługami chmurowymi tworząc tak zwaną chmurę hybrydową, gdzie kluczowe systemy i dane przechowywane są w pełni kontrolowanym środowisku, podczas gdy systemy o mniejszym znaczeniu uruchamiane są w chmurze obliczeniowej.

Przykładem organizacji działających w tym modelu są:

  • Uniwersytet im. Adama Mickiewicza w Poznaniu
  • Giełda Papierów Wartościowych w Warszawie
  • większość polskich banków np. Santander
  • instytucje rządowe np. Zakład Ubezpieczeń Społecznych

Kolokacja

Podejście to polega na powierzeniu części odpowiedzialności za infrastrukturę zewnętrznej, specjalistycznej firmie. Nadal możemy kupić serwer, nie musimy natomiast budować serwerowni ani nią zarządzać. Pozwala to znacząco zredukować początkowe wydatki na infrastrukturę, a także późniejsze jej utrzymanie. Ponadto część firm oferujących usługę kolokacji pozwala wynająć serwer na określony czas. Oczywiście odbywa się to kosztem utraty dowolności przy doborze sprzętu. Jednak w ten sposób początkowe wydatki mogą być zredukowane niemalże do zera.

Z punktu widzenia chmury obliczeniowej, kolokacja nie wiele się różni od serwerowni na miejscu. Biorąc pod uwagę znaczne korzyści względem poprzedniego podejścia, w pewnym sensie stanowi główną jej alternatywę.

Wady i zalety

Skorzystanie z usługi kolokacji powoduje, że nasze serwery opuszczają siedzibę firmy, a wszelka komunikacja odbywa się z pośrednictwem sieci (najczęściej publicznego Internetu). Z drugiej strony znacznie redukujemy początkowy koszt, a także ograniczamy nakład pracy na zarządzanie infrastrukturą. Korzystając z kolokacji dużo łatwiej jest też skalować posiadaną infrastrukturę, choć dalej obowiązują te same ograniczenia, a skolowanie w górę jest znacznie łatwiejsze niż w dół.

Wiele firm oferujących usługę kolokacji oferuje różne usługi dodatkowe, które zdejmują z nas odpowiedzialność za pewne zadania związane z utrzymaniem infrastruktury. Przykładowo usługodawca może za nas wymieniać dyski twarde w serwerach, czy aktualizować oprogramowaie typu firmware.

Przykłady

Usługa kolokacji oferowana jest przez wyspecjalizowane firmy. Wiele z nich oferuje bardzo wysokie gwarancje dostępności sprzętu rzędu 99.9%, oraz posiada stosowne certyfikaty bezpieczeństwa. Przykładami dostawców są:

  • Poznański Park Naukowo-Technologiczny fundacji UAM
  • beyond.pl
  • Netia SA
  • NASK - Państwowy Instytut Badawczy

Koszt

Ceny usług kolokacji są często ustalane indywidualnie. Jednak w 2021 roku można przyjąć następujące szacunkowe koszty:

  • pojedynczy serwer wiekości 1 unit (1U): 50-150 zł miesięcznie
  • 1/3 szafy Rack 19" (około 11U): 300-500 zł miesięcznie
  • cała szafa Rack 19" (około 42U): 1000-1500 zł miesięcznie

Do tego należy koliczyć koszt energi elektrycznej 0.5-0.6 zł/kWh.

Przykładowo jeśli potrzebujemy małego serwera 1U, wyposażonego w 16 rdzeniowy procesor, 128GB RAM oraz 2 dyski SSD to musimy się liczyć z następującymi kosztami początkowymi:

  • zakup serwera 10-20k zł
  • instalacja w serwerowni 500-1000 zł

Ponadto miesięcznie koszt utrzymania takiej infrastruktury to:

  • koszt prądu przy założonym stałym zużyciu prądu na poziomie 400W: 150 zł miesięcznie
  • koszt usługi kolokacji 50-150 zł miesięcznie

Zakładając dwuletni czas amortyzacji sprzętu otrzymujemy miesięczny koszt utrzymania infrastruktury na poziomie 600-1200 zł. Jeśli zrezygnujemy z dowolności sprzętu to serwer o takich parametrach można też wynająć za 400-500 zł miesięcznie.

Ciekawostka: Wiele firm oferuje możliwość wirtualnego zwiedzenia ich serwerowni [TOUR].

Wirtualizacja własnego/wynajętego sprzętu

Kolejnym krokiem w kierunku usługi chmury obliczeniowej w modelu IaaS, jest wprowadzenie wirtualizacji. Zmiana z infrastruktury na miejscu w kierunku kolokacji była motywowana głównie redukcją kosztów początkowych tworzenia infrastruktury. Wprowadzenie wirtualizacji rozwiązuje zupełnie inny problem. Zakup nowego serwera, jego instalacja w serwerowni oraz konfiguracja może trwać wiele dni, a nawet tygodni. W dynamicznie zmieniającym się środowisku i szybko rozwijających się projektach zasoby często potrzebne są natychmiastowo. Im większa organizacja, tym częściej i szybciej potrzebuje alokacji nowych zasobów. Z drugiej strony zauważono, że większość kupowanych zasobów jest przeszacowana. Ze względu na bezpieczeństwo poszczególne projekty/systemy informatyczne muszą być niezależne, co prowadzi do to marnowania dużej mocy obliczeniowej, która nie może zostać wykorzystana na potrzeby innego projektu.

Wirtualizacja w dużej mierze rozwiązuje oba te problemy. W większości zastosowań takich jak serwery www, aplikacje sieciowe czy bazy danych nie jest wymagany bezpośredni dostęp do sprzętu. Oprogramowanie może być zatem uruchamiane w środowisku wirtualnym. Wirtualizacja zapewnia wysoką separację procesów uruchomionych w ramach poszczególnych maszyn wirtualnych. W ten sposób w ramach jednego serwera można uruchomić wiele różnych systemów bez obawy o konflikty i obniżenie bezpieczeństwa, jednocześnie znacznie zwiększając wykorzystanie zasobów.

Schemat przedstawia serwery obsługujące wiele maszyn wirtualnych.

Wady i zalety

  1. Koszt W tym przypadku koszty analogiczne jak w poprzednich typach infrastruktury. Należy jednak uzględnić koszt oprogramowania do wirtualizacji oraz dodatkowe koszty utrzymania. Wdrożenie wirtualizacji pozwala jednak zaoszczędzić wiele zasobów poprzez bardziej efektywne ich wykorzystanie.

  2. Utrzymanie Początkowo firmy zaczęły wdrażać wirtualizację na swoich (własnych lub wynajętych) serwerach, często tworząc rozbudowne środowiska wirtualizacji. W ten sposób powstały jednak nowe problemy. Środowiskiem wirtualizacji trzeba było zarządzać, ponownie konieczne okazywało się zatrudnianie pracowników wyłącznie do jego obsługi. Należy jednak zauważyć, że skala problemu jest znacznie mniejsza niż w przypadku infrastruktury na miejscu. Zarządzenie środowiskiem wirtualizacji obejmuje tylko warstwę oprogramowania. Zarządzanie sprzętem i lokalizacją może zostać powierzone wyspecjalizowanym firmom. Jednakże, każda złożona infstarstruktura powoduje rozmycie danej organizacji i odciąganie jej zasobów ludzkich od tego w czym się specjalizuje.

  3. Skalowanie Wprowadzenie wirtualizacji znacząco ułatwia skalowanie infrastruktury. Tym razem możliwe są już oba rodzaje skalowania: wertykalne (poprzez wzrost ilości zasobów dla jednej maszyny) oraz horyzontalne (poprzez wzrost liczby maszyn). W odróżnieniu od poprzednich typów infrastruktury możliwe jest też łatwe i tanie skalowanie w dół, a odzyskane w ten sposób zasoby mogą zostać efektywnie wykorzystane w innych projektach/systemach.

  4. Bezpieczeństwo Należy pamiętać, że bezpieczeństwo wirtualizacji opiera się na separacji procesów na poziomie systemu operacyjnego/hypervisora, i jako takie musi być niższe niż przy wykorzystaniu niezależnych serwerów dedykowanych. Pomimo, że oprogramowanie do wirtualizacji jest bardzo dojrzałe, nie można wykluczyć ryzyka znalezienia błędów. Należy rozważyć też istnienie błędów sprzętowych, które mogą obniżać bezpieczeństwo środowika wirtualnego (np. Meltdown, Spectre).

    Najbardziej prawdopodobnym zagrożeniem w takim przypadku jest uzyskanie przez jedną maszynę wirtualną dostępu do zasobów innej maszyny wirtualnej. Decydując się na wirtualizację należy rozważyć na ile takie ryzyko jest istotne z punktu widzenia danego systemu. Istnieją różne metody eliminowania i ograniczania ryzyk związanych ze środowiskiem wirtualnym. Należy również pamiętać, że maszyny wirtualne mogą współdzielić zasoby sprzętowe, nie jest zatem rozważne trzymanie kopi bezpieczeństwa danych na tej innej maszynie wirtualnej ale w ramach tego samego serwera fizycznego.

Przykłady

Na rynku dostępne jest bardzo wiele produktów oferujących gotowe środowiska wirtualizacji. Co ważne istnieją rozwiązania darmowe o bardzo wysokiej jakości.

  • Proxmox VE (darmowe)
  • VMware ESXi
  • Microsoft Hyper-V
  • Xen
  • QNX Hypervisor
  • Oracle VM Server

Infrastruktura jako usługa

Kolejnym naturalnym krokiem w ewolucji jest powierzenie odpowiedzialności za zarządzanie środowiskiem wirtualizacji wyspecjalizowanej firmie. Tak samo jak przy kolokacji, usługodawca bierze pełną odpowiedzialność za budynki, prąd, sieć. Ponadto, w modelu IaaS usługodawca jest odpowiedzialny za sprzęt oraz środowisko wirtualizacji na nim zainstalowane. Użytkownik uzyskuje dostęp do gotowych i skonfigurowanych maszyn wirtualnych. Nie ma natomiast dostępu do rzeczywistych zasobów sprzętowych, a do ich wirtualnych odpowiedników. W ten sposób dostawca usługi ma pełną dowolność przy doborze i organizacji zasobów fizycznych.

Zasoby obliczeniowe reprezentowane są przez wirtualne rdzenie (vCPU), sieć i urządzenia IO za pomocą wirtualnych odpowiedników. Dyski często sprzedawane są jako osobna, niezależna od zasobów obliczeniowych (maszyn wirtualnych) usługa. Wirtualne procesory (vCPU) mogą nie mieć pokrycia w rzeczywistych rdzeniach procesora. Jest to częsta praktyka (ang. overprovinsioning). Wielu dostawców za odpowiednią dopłatą jest w stanie zagwarantować dedykowane rdzenie. Niemalże wszystkie zasoby chmurowe mogą być w pewnym stopniu alokowane bez pokrycia. Wyjątek stanowi pamięć operacyjna, która jest głównym ogranicznikiem liczby maszyn wirtualnych per serwer.

Całkowite wyabstrachowanie zasobów obliczeniowych od sprzętu, jest główną cechą charakterystyczną chmury obliczeniowej. Nasze oprogramowanie działa korzystając z wirtualnych zasobów, co do których lokalizacji (a nawet istnienia) nie jest pewne.

Drugą kluczową cechą rozwiązań typu IaaS jest swoboda alokacji zasobów. Zasoby można alokować niemal natychmiastowo, czas oczekiwania na stworzenie maszyny wirtualnej u wielu dostawców to mniej niż minuta. Tak samo szybko zasoby mogą zostać zwolnione. Takie podejście nie miało by sensu gdyby nie odpowiedni sposób naliczania opłat. W przypadku infrastruktury na miejscu, duży koszt ponoszony był na początku. Do tego należy doliczyć miesięczne koszty utrzymania. Aby taka inwesytcja mogła się spłacić musiało minąć wiele lat. W przypadku kolokacji jest bardzo podobnie, z tą różnicą że umowy kolokacyjne zawiera się na okres od kilku miesięcy do kilku lat. Zasoby w modelu IaaS opłaca się w modelu _pay-as-you-go czyli zgodnie ze zużyciem, a najpowszechniej stosowaną jednostką rozliczeniową są sekundy lub godziny korzystania z zasobów. W ten sposób możliwe stało się bardzo dokładne dopasowanie zasobów do potrzeb.

Jednak alokacja zasobów w sekudowych odstępach wymaga automatyzacji. I to jest druga kluczowa cecha infrastruktury chmurowej typu IaaS. Zasoby (maszyny wirtualne, dyski) można alokować natychmiastowo, tanio i przede wszystkim automatycznie. Zdecydowana większość usługodawców IaaS, udostępnia webowe API dostępowe pozwalające automatyzować zarządzanie infrastrukturą. Często też dostępne są biblioteki programistyczne dla poszczególnych języków programowania. Niektórzy dostawcy mają też w swoim portfolio wyspecjalizowane usługi automatycznego zarządzania infrastrukturą w zależności od potrzeb.

Wady i zalety

  1. Koszt W przypadku rozwiązań w modelu IaaS, brak jest kosztów początkowych. Większość usługodawców oferuje również darmowy dostęp do podstawowych usług w ramach okresu próbnego. Całość kosztów ponoszona jest w trakcie eksploatacji systemu. Ponadto ponoszone koszty są zależne od ilości zużytych zasobów.

    Należy jednak mieć na uwadze, że w przypadku dużego i stałego zapotrzebowania na zasoby obliczeniowe może okazać się, że korzystniej jest wynająć/kupić dedykowany serwer niż korzystać z maszyn wirtualnych w modelu IaaS. Wynajmowanie 12 maszyn wirtualnych po 2 vCPU każda, przez okres 2 lat z pewnością będzie znacznie droższe od zakupu/wynajęcia serwera o takich samych paremetrach. Problem ten jest szczególnie widoczny przy wynajmowaniu maszyn wirtualnych o większej ilości zasobów w modelu IaaS.

  2. Utrzymanie Korzystając z zasobów w modelu IaaS, jesteśmy odpowiedzialni za system operacyjny i oprogramowanie zainstalowane na naszej maszynie wirtualnej. Zarządzanie sprzętem oraz oprogramowaniem _hypervisora jest obowiązkiem dostawcy usługi.

  3. Skalowanie W tym modelu infrastruktury dostępne jest zarówno pełne skalowanie horyzontalne jak i wertykalne. Ważne jest to, że z punktu widzenia użytkownika nie istnieje górny limit dostępności zasobów. Można alokować dowolnie wiele maszyn bez konieczności rozbudowy infrastruktury. W przypadku skalowania wertykalnego ograniczeni jesteśmy natomiast ofertą usługodawcy (niewielu dostawców oferuje maszyny o więcej niż 32 vCPU) i dostępnością sprzętu (często największe maszyny są nie dostępne). Należy jednak pamiętać, że wielu dostawców ustawia początkowe limity dostępnych zasobów, które można znieść przechodząc dodatkową weryfikację.

    Dzieki rozliczaniu sekundowemu/godzinowemu i łatwości skalowania zasobów, poprawnie wdrożona w modelu IaaS aplikacja powinna zawsze obejmować mechanizm automatycznego skalowania przynajmniej kluczowej infrastruktury. Poniższy diagram przedstawia możliwe zachowanie systemu wobec nagłego wzrostu obciążenia systemu: bez skalowania, przy skalowaniu horyzontalnym i wertykalnym.

    Diagram przedstawia proces skalowania w odniesieniu do stałej alokacji zasobów w modelu własnej infrasturktury. Z czasem obciążenie systemu rośnie, co dzięki skalowaniu znajduje odzwierciedlenie w ilości zasobów obsługujących użytkowników. W skalowaniu horyzontalnym tworzone są kolejne (małe) maszyny wirtualne obsługujące nowe żądania. W skalowaniu wertykalnym całe obciążenie obsługiwane jest przez jedną maszyną, która dysponuje coraz to większymi zasobami.

    Przy braku skalowania można zauważyć dwa problemy. Po pierwsze przed nagłym wzrostem obciążenia spora część zasobów nie była wykorzystywana. Szacując wymaganą infrastrukturę na poziomie średniego obciążenia, praktycznie nie da się uniknąć takiej sytuacji. Ponadto, przy szczytowym obciążeniu system nie był wstanie obsłużyć wszystkich użytkowników, bez skalowania zwiększenie ilości zasobów nie jest możliwe. Rozwiązaniem tego problemu jest skalowanie horyzontalne, które zamiast jednego dużego serwera, korzysta z wielu małych i łatwych w tworzeniu maszyn wirtualnych. W tym podejściu liczba maszyn obsługujących użytkowników może rosnąć nieograniczenie zgodnie z zapotrzebowaniem. Nowe maszyny tworzą się szybko, dlatego możliwe jest natychmiastowe reagowanie na zmiany obciążenia. Do głównych wad skalowania horyzontalnego należy fakt, że nie wszystkie aplikację wspierają ten sposób skalowania. Stąd ważne jest aby już na etapie projektowania systemu myśleć o skalowaniu.

    Ostatni wariant to skalowanie wertykalne, w którym obciążenie obsługiwane jest przez pojedynczą maszynę wirtualną, która może w razie potrzeby dynamicznie zmieniać swoje parametry. Większość rozwiązań do wirtualizacji pozwala w pewnym stopniu dynamicznie dodawać pamięć, procesory i dyski do systemu. W przypadku usług chmurowych jest to jednak naczęściej realizowane poprzez powrótne utworzenie maszyny (szczególnie gdy skalujemy system w dół). Powoduje to większe opóźnienie w czasie reakcji, przy nagłym wzroście w obciążeniu zaalokowanych zasobów jest za mało, podczas gdy przy spadkach jest ich zbyt dużo.

    Uwaga: W praktyce ustawianie nieograniczonego automatycznego skalowania nie jest rozsądne. Ataki DDoS są dość powszechne, a jest wysoce prawdopodobne, że infrastruktura dostawcy da radę obsłużyć cały atak bez problemów. Choć może się to wydawać korzystne, należy pamiętać o kosztach. W przypadku ataku typu DDoS, bardziej opłacalne może być wyłączenie części serwisu na kilka minut, a nawet godzin niż przyjęcie całego ruchu sieciowego i zapłacenie za zasoby niezbędne aby to zrobić.

  4. Bezpieczeństwo Poziom bezpieczeństwa infrastruktury IaaS jest porównywalny do tego oferowanego przez samodzielnie wdrożoną wirtualizację. Z jednej strony zasoby sprzętowe wspóldzielone są przez nieznanych, potencjalnie złośliwych użytkowników, co sprzyja wykorzystaniu błędów w oprogramowaniu do wirtualizacji i sprzęcie. Z drugiej infrastruktura jest zarządzana przez wyspecjalizowanych ekspertów dziedzinowych, co sprzyja wyższemu poziomowi zabezpieczeń, lepszym i częstszym aktualizacjom.

    W modelu IaaS najczęsciej nie mamy możliwości sprawdzenia czy dwie różne maszyny wirtualne znajdują się na tym samym serwerze czy nie. Identyczny problem dotyczy zasobów dyskowych. W celu zapewnienia pełnej redundancji i odporności na zdarzenia losowe zaleca się umieszczenie krytycznej infrastruktury w różnych regionach (lokacjach). Wielu usługodawców pozwala wybrać przybliżoną fizyczną lokalizację tworzonych zasobów np. na poziomie miasta/państwa/rejonu geograficznego. W ten sposób możemy mieć gwarację, że zasoby są fizycznie od siebie odseparowane.

Przykłady

Usługodawców IaaS jest bardzo wielu, do najważniejszych należy zaliczyć:

  • Amazon Web Services
  • Microsoft Azure
  • Google Cloud
  • Oracle Cloud
  • IBM Cloud
  • OVH
  • Linode
  • Hetzner
  • Alibaba
  • Digital Ocean

Koszt

Dla porównywalności z poprzednim przykładem oszacowany zostanie koszt wynajęcia maszyny wirtualnej o następujących parametrach: 16 vCPU, 128GB RAM, 4TB SSD. Koszty są bardzo różne w zależności od dostawcy. Wielu dostawców nie oferuje też tak dużych maszyn. Miesięczny koszt zasobów obliczeniowych należy szacować na poziomie od 300 zł (Hetzner) przez 1500 zł (AWS) do nawet 2500 zł (Linode). Do tego należy obowiązkowo doliczyć opłaty za przechowywane dane w wysokości 1000-1200 zł miesięcznie za 4 TB danych.

Powyższa kalkulacja może się okazać zaskakująca, rozwiązanie chmurowe jest aż 2-5 razy droższe niż kolokacja. Konieczne jest wyjaśnienie skąd wynika ta różnica i dlaczego mimo to rozwiązania chmurowe pozwalają redukować koszty.

Pierwszym i chyba najważniejszym problemem jest typ porównywanej infrastruktury. Pojedynczy serwer o uniwersalnych parametrach (dużo rdzeni, pamięci RAM, dysków) dobrze się sprawdza w kolokacji, podczas gdy usługi chmurowe buduje się najczęściej z wielu małych zasobów. W przypadku wielu usług chmurowych cena maszyny wirtualnej nie rośnie proporcjonalnie do liczby rdzeni/pamięci RAM. Przykładowo dla usługi AWS EC2 i maszyn wirtualnych typu t3 ceny w USD wyglądają następująco

liczba rdzeni ilość pamięci cena za godz. cena za rdzeń cena za GB RAM
2 0.5 0.0052 0.0026 0.0104
2 1 0.0104 0.0052 0.0104
2 2 0.0208 0.0104 0.0104
2 4 0.0416 0.0208 0.0104
2 8 0.0832 0.0416 0.0104
4 16 0.1664 0.0416 0.0104
8 32 0.3328 0.0416 0.0104

Drugi problem z przedstawionym porównaniem dotyczy dysków. Kupując serwer często wyposaża sie go w duże dyski, aby uniknąć późniejszej ingerencji w sprzęt. Użyte 4TB są z pewnością przeszacowane. W przypadku własnego serwera jest to jedyna możliwość przechowywania danych. W przypadku usług chmurowych ponownie mamy doczynienia z innych charakterem zasobów. Dyski przyłączane do maszyny wirtualnej (ang. block storage) są zasobami dość kosztownymi, a ich wysoka cena wynika z ograniczeń technicznych (taki zasób może być tylko częściowo współdzielony). Natomiast usługodawcy oferują również tańsze usługi przechowywania danych opprujące na plikach (ang. object storage).

Jest wysoce prawdopodobne, że z oszcowanych 4TB, zaledwie 200GB musi być przechowywane na wirtualnych urządzeniach blokowych (są to głównie system operacyjny, oprogramowanie i bazy danych) podczas gdy pozostałe 3.8TB to dane, które można przechowywać obiektowo (zdjęcia, filmy, archiwa, dowolne samodzielne pliki). Przy takim założeniu koszt przechowania 4TB danych spadnie do 50-400 zł miesięcznie. Dalszą redukcję oszacowanych kosztów można osiągnąć uwzględniajać fakt, że najprawdopodobniej ilość przechowywanych w systemie danych będzie rosła w czasie.

Ostatnim aspektem tego porównania, który należy omówić jest przeszacownanie infrastruktury. Jeśli rzeczywiście nasz system będzie przez zdecydowaną większość czasu potrzebował wszystkich zasobów (np. duże bazy danych, systemy czasu rzeczywistego o stałym obciążeniu) to z pewnością rozwiązania chmurowe nie są optymalne finansowo. Dla większości systemów nie jest to jednak prawdą, a obciążenia zasobów zmiania się w czasie. Załóżmy, że nasz serwer wykorzystuje całość swoich zasobów przez 2 miesiące w roku, przez 4 wykorzystuje połowe, a przez pozostałe 6 tylko czwartą ich część. Oszacujmy teraz koszt wymaganej infrastruktury zakładając wdrożenie wskalowania wertykalnego (skalowanie horyzontalne pozwoliło by pewnie jeszcze bardziej ograniczyć koszty). Przy takim obciążeniu koszt maszyn wirtualnych to 150-650 zł miesięcznie + koszt przechowywania danych 50-400 zł miesięcznie.

Porównując z kolokacją koszt jest teraz nawet niższy. Należy jednak pamiętać, oba oszacownia dotyczą zupełnie innej infrastruktury, choć realizującej zapotrzebowanie tego samego (fikcyjnego) systemu informatycznego.

Rekomendowana literatura uzupełniająca

[TOUR]: Hetzner Online GmbH. Virtual tour of Hetzner Online date center park.. online 2021.