Jedną z umiejętności, którą każda osoba pracująca z usługami w chmurze publicznej musi bardzo szybko posiąść jest odpowiednie szacowanie kosztów związanych z wykorzystaniem usług. Równie ważne jest  ich stałe monitorowanie. Szczególnie dotyczy to usług, za które płacimy w modelu pay-as-you-go, czyli nie za zarezerwowane dla nas i opłacone „z góry” użycie wskazanej usługi, lecz za rzeczywisty czas działania usługi, która została przez nas utworzona.

W tym artykule odnoszę się do usług w Microsoft Azure, jednak sposób rozliczania kosztów usług sieciowych w innych chmurach publicznych jest bardzo zbliżony. Pamiętaj, aby nigdy nie uruchamiać jakiejkolwiek usługi w dowolnej chmurze publicznej bez dokładnego zrozumienia, jak ona będzie rozliczana i oszacowania jej kosztu.

W chmurze Azure opłaty związane z siecią i przesyłaniem danych możemy podzielić na cztery grupy:

  • Usługi bezpłatne
  • Usługi rozliczane za czas ich działania
  • Usługi rozliczane za wolumen przesłanego ruchu
  • Usługi, w których dodatkowo płacimy za usługi firm trzecich

Niektóre usługi są liczone z wykorzystywaniem więcej, niż jednego z tych modeli naliczania kosztów jednocześnie.

Usługi sieciowe Azure

Co do zasady transfer danych do usług znajdujących się w chmurze publicznej jest darmowy. Nie ma znaczenia czy wykorzystujemy tutaj połączenie przez Internet, mamy uruchomiony tunel VPN czy dedykowane usługi operatorskie takie jak Azure ExpressRoute. Płacimy natomiast za przechowywanie danych w chmurze oraz w wielu przypadkach za przesyłanie ich poza chmurę, na przykład z powrotem do własnego centrum przetwarzania danych. Zatem jeżeli nasza aplikacja generuje duże ilości danych, które następnie przesyłamy do własnej serwerowni, to za wolumen przesłanego ruchu możemy dość sporo zapłacić.

Aby móc szacować poprawnie koszty nie wystarczy nam wiedza o tym, jaka usługa jest umieszczona w chmurze, a która znajduje się w naszym lokalnym data center. Także za ruch przesyłany wewnątrz Azure możemy ponieść niemałe koszty. Chmura publiczna składa się tak naprawdę z wielu centrów przetwarzania danych, które są umieszczone w regionach. Regiony te mają swoje nazwy. W Azure najczęściej wykorzystywane przez firmy znajdujące się w Polsce regiony noszą nazwy „West Europe” oraz „North Europe”. Każdy region to zbiór kilku centrów przetwarzania danych zarządzanych przez Microsoft. Za przesłanie danych pomiędzy regionami będziemy obciążeni dodatkową opłatą. Każdy z regionów podzielony jest na tak zwane availability zones. Są to strefy działania infrastruktury chmury, charakteryzujące się całkowitą odrębnością sprzętu czy dostaw energii. Stanowią zatem „wyspy”, w obrębie których izolowane są następstwa awarii. Także aktualizacja oprogramowania odbywa się w danym regionie, w danym momencie tylko w pojedynczej strefie. Dlatego naszą usługę – na przykład serwery wirtualne – możemy w regionie rozlokować w różnych availability zone’ach, aby podnieść jej niezawodność i odporność na awarie. Jednak musimy pamiętać, że możemy zostać obciążeni dodatkowymi kosztami za przesłanie danych pomiędzy takimi strefami. Jeżeli nasza aplikacja utrzymywana jest w wielu regionach geograficznych świata albo do przesyłania danych wykorzystujemy dedykowane specjalistyczne usługi w szkielecie sieci Microsoft to także wtedy zapłacimy dodatkowe opłaty za wolumen przesłanych danych.

Oddzielną kategorię stanowią usługi, za których utrzymanie w chmurze Azure płacimy dodatkową opłatę naliczaną za każdą godzinę jej działania. Taką usługą jest między innymi utrzymanie wirtualnego koncentratora tuneli VPN (Azure VPN Gateway). Zarządzanie tunelami VPN oraz szyfrowanie danych przesyłanych przez tunel wymaga dedykowanej mocy obliczeniowej. To właśnie, między innymi, za tą moc płacimy w każdej godzinie działania usługi. Pamiętajmy, że oddzielnie wycenione jest utrzymanie samego koncentratora, jak i pojedynczego tunelu VPN skonfigurowanego na danym koncentratorze. Do tego dochodzą oczywiście opłaty za wolumen przesłanego ruchu. Gdybyśmy chcieli uruchomić taki koncentrator samodzielnie, wykorzystując do tego maszynę wirtualną, wtedy także płacilibyśmy za wykorzystywane cykle procesora czy zużytą pamięć RAM. Ceny są na tyle konkurencyjne, że taniej wyjdzie nam wykorzystanie usługi dostarczonej w ramach Azure, niż utrzymywanie własnego rozwiązania.

Wirtualne routery i inne rozwiązania

Wykorzystując wirtualne urządzenia sieciowe firm trzecich musimy dodatkowo pamiętać o tym, że opłacić musimy także stosowne opłaty licencyjne. Przykładowo, jeżeli chcemy w Azure uruchomić wirtualny router Cisco CSR 1000V, to na całkowity koszt działania takiego urządzenia składać się będzie:

  • Koszt działania maszyny wirtualnej, na której uruchomiony jest router (vCPU, RAM, Storage)
  • Koszt przesłanych w sieci danych, zgodnie z zasadami opisanymi w poprzedniej części
  • Koszt licencji

Licencje sprzedawane zazwyczaj są na dwa sposoby. Pierwszy z nich to tak zwany BYOL (Bring Your Own License). Zakłada on, że posiadamy już odpowiednią licencję zakupioną od producenta w ramach innego kanału sprzedaży. Taką licencję aktywujemy na wirtualnym urządzeniu w ten sam sposób, jakbyśmy aktywowali ją na wirtualnej maszynie w naszym własnym centrum danych. Drugi sposób to zakup licencji w ramach usługi w Microsoft Azure. Zazwyczaj za taką licencje jesteśmy wtedy obciążani za każdą godzinę działania wirtualnego urządzenia. Dokładnie przeczytajmy jednak warunki opłat za licencje, gdyż możemy spotkać wiele wyjątków od tej reguły.

W bardziej zaawansowanych usługach takich, jak choćby Azure ExpressRoute, struktura kosztów jest jeszcze inna. ExpressRoute pozwala nam na uruchomienie dedykowanego łącza między naszą serwerownią a chmurą Azure. Nie oznacza to jednak, że sami dociągamy kabel do „szafy” z usługą Azure. Takie połączenie w postaci, na przykład dedykowanej usługi transmisji danych, kupujemy od wskazanych, autoryzowanych dostawców. Zatem na koszt usługi ExpressRoute składają się, między innymi wydatki na transmisję danych u wskazanego operatora, utrzymanie samej usługi Azure ExpressRoute oraz wirtualnego punktu przyłączenia Azure ExpressRoute Gateway. Do tego dochodzi także opłata za wolumen przesyłanego ruchu, choć od pewnego czasu istnieje także możliwość płacenia stałej, niezmiennej opłaty, uzależnionej jedynie od maksymalnej zakupionej przepustowości łącza.

Jak liczyć koszty?

W przypadku usług, których składowa jest zmienna i uzależniona od wolumenu przesłanych danych nigdy w 100% dokładnie nie oszacujemy kosztów działania usługi. Znając jednak swoje aplikacje oraz monitorując wolumen generowanego ruchu powinniśmy dokonać odpowiednich szacunków. Zebrane dane możemy wprowadzić w kalkulator kosztów, który dostępny jest na stronach Microsoft Azure (https://azure.microsoft.com/en-us/pricing/calculator/). Pamiętajmy tylko, abyśmy odpowiednio wybrali wszystkie parametry działania naszej usługi, a także region, w którym ją uruchomimy. Ceny poszczególnych analogicznych usług mogą się różnić pomiędzy regionami.