Kevin Bogusch | starszy analityk ds. inteligencji konkurencyjnej | 24 stycznia 2024 r.
Koszty związane z ruchem wychodzącym danych są niemiłą niespodzianką dla wielu organizacji na wczesnym etapie migracji do chmury. O ile usługi chmurowe, takie jak usługi maszyn wirtualnych i pamięci masowej, mają stałe ceny, o tyle koszty przesyłania danych poza chmurę są zmienne i często nieprzewidywalne.
Gdy organizacje poznają te koszty, często rozważają przeprojektowanie swoich aplikacji w celu zmniejszenia ilości danych przesyłanych między segmentami sieci. W tym celu stosują technologie takie jak kompresja i deduplikacja danych lub dodają warstwę buforowania w celu zmniejszenia liczby bitów przesyłanych przez sieć. W idealnej sytuacji przedsiębiorstwa migrujące do chmury powinny projektować swoje aplikacje z uwzględnieniem tych czynników, aby zminimalizować opłaty za transfer danych i poprawić wydajność.
Ruch wychodzący z chmury to wszelkie dane, które opuszczają sieć dostawcy usług chmurowych w kierunku innej lokalizacji. Tą inną lokalizacją może być lokalne centrum przetwarzania danych, inne centrum przetwarzania danych w chmurze w innym regionie, strefa dostępności (centrum przetwarzania danych) w ramach tej samej usługi chmurowej, a nawet inna sieć wirtualna w ramach tego samego centrum przetwarzania danych.
Dostawcy usług chmurowych różnią się, czasami znacznie, pod względem wysokości i sposobu naliczania opłat za ruch wychodzący danych, należy zatem zrozumieć, jakie elementy są uwzględniane w ich kalkulacjach dotyczących ruchu wychodzącego danych. Na przykład regiony to lokalizacje składające się zazwyczaj z wielu centrów przetwarzania danych w ścisłych granicach geograficznych. Usługi chmurowe zazwyczaj zapewniają wystarczające łącza sieciowe między regionami, aby obsługiwać wysoce dostępne, międzyregionalne aplikacje. Ilość danych przesyłanych z jednego regionu do drugiego jest mierzona i obciążana opłatą na podstawie liczby gigabajtów przesłanych danych.
Strefy dostępności to kolejna podstawowa koncepcja dotycząca dostępności usług chmurowych. Każdy dostawca usług chmurowych ma nieco inną nazwę dla tej koncepcji („domeny dostępności”, „strefy”). Strefa dostępności obejmuje wiele centrów przetwarzania danych w tym samym regionie geograficznym, które korzystają z różnych łączy i mają różnych dostawców energii, a zatem jest mało prawdopodobne, że ulegną awarii w tym samym czasie. Dostawcy usług chmurowych zachęcają do uruchamiania usług w wielu strefach dostępności w celu zapewnienia ich wysokiej dostępności, ale dane przenoszone z jednej strefy do drugiej są mierzone i mogą być obciążane opłatami za gigabajt.
Przeniesienie systemów IT do chmury obliczeniowej przynosi organizacjom szereg korzyści. Wśród nich można wymienić uwolnienie korzyści biznesowych płynących z nowoczesnej ekonomiki chmury, szybsze wprowadzanie usprawnień do infrastruktury IT, wyższy poziom dostępności oraz wcześniejszy dostęp do nowych technologii takich jak samouczenie się maszyn i sztuczna inteligencja.
Niemniej jednak potencjalnie „ukrytym” aspektem ekonomiki chmury jest ruch wychodzący danych, który może przybierać różne formy. Dostawcy usług chmurowych śledzą i mierzą ruch sieciowy między lokalizacjami w swoich chmurach - z regionu do regionu, ze strefy do strefy, a nawet z jednej sieci wirtualnej do drugiej sieci wirtualnej w tym samym regionie.
Ruch przychodzący (data ingress, inbound traffic) czyli dane przychodzące do chmury, jest u każdego dostawcy usług chmurowych prawie zawsze bezpłatny, niezależnie od wolumenu. Ruch wychodzący (data egress, outbound traffic) jest natomiast traktowany w inny sposób. Niezależnie od tego, czy dane są kierowane do Internetu, lokalnych centrów przetwarzania danych, biur, czy nawet innego regionu chmury, opłaty za taki ruch wychodzący są naliczane według różnych stawek w zależności od dostawcy usług chmurowych, konkretnej usługi i ścieżki sieciowej. Zazwyczaj ruch wychodzący danych ma stałą cenę za gigabajt do określonego progu, a zniżki mają zastosowanie do przesyłania danych powyżej tego poziomu.
Ruch wychodzący z chmury może być standardowym ruchem sieciowym wychodzącym z maszyn wirtualnych w chmurze w kierunku innych maszyn wirtualnych w chmurze (na przykład dane przesyłane z bazy danych do arkusza kalkulacyjnego użytkownika biznesowego). Innym, bardziej znaczącym pod względem kosztów przykładem jest ruch związany z zasobami pamięci masowej hostowanymi w chmurze, używanymi na stronach internetowych lub w aplikacjach mobilnych. Typową praktyką w przypadku magazynów obiektów w chmurze jest przechowywanie zasobów witryny internetowej oddzielnie od aplikacji WWW, aby poprawić wydajność i efektywność programistów. W takiej architekturze witryna internetowa ładowałaby obrazy bezpośrednio z magazynu obiektów w chmurze, takiego jak Amazon Web Services (AWS) S3, Azure Blob Storage, Google Cloud Storage lub Oracle Cloud Infrastructure (OCI) Object Storage, gdzie stosowne pliki istnieją jako punkty końcowe HTTP, w przeciwieństwie do przechowywania tych plików na serwerze WWW. Gdy obrazy są ładowane bezpośrednio z chmurowej pamięci masowej, aplikacja będzie generować opłaty z tytułu zarówno operacji przetwarzania danych w pamięci masowej, jak i przesyłania tych danych z chmury do Internetu.
Intensywnie działające aplikacje WWW mogą mieć instancje w wielu regionach chmury, a przechowywanie ich obrazów na koncie w chmurze w jednym zdalnym regionie może wiązać się z wysokimi opłatami za ruch wychodzący danych. O ile duża witryna lub aplikacja WWW prawdopodobnie korzystałaby z sieci CDN (Content Delivery Network) w celu obniżenia kosztów i poprawy wydajności, o tyle nowe lub szybko rozwijane witryny mogą nie być przystosowane do korzystania z sieci CDN, a zatem mogą generować wysokie opłaty za przesyłanie danych.
To tylko kilka przykładów dotyczących ruchu wychodzącego danych w aplikacjach chmurowych. Połączenia między maszynami wirtualnymi i instancjami baz danych, komunikacja równorzędna w sieci wirtualnej, prywatne łącza do ofert w modelu PaaS (platforma jako usługa”) i inne architektury mogą również generować znaczne opłaty za ruch wychodzący.
Kluczowe wnioski
Dostawcy usług chmurowych naliczają opłaty za ruch wychodzący danych, aby odzyskać koszty związane z budową dużych sieci prowadzących do ich centrów przetwarzania danych i zapewnianiem szerokości pasma między lokalizacjami, co może kosztować miliony lub miliardy dolarów. Inwestowanie w łącza podmorskie, tak jak zrobił to Microsoft w 2017 roku, budując kabel podmorski o długości 4104 mil między wschodnim wybrzeżem USA a Hiszpanią, jest jednym z przykładów inwestycji dostawców usług chmurowych w infrastrukturę sieciową na dużą skalę w celu połączenia posiadanych centrów przetwarzania danych.
Dostawcy usług chmurowych również nieustannie inwestują w zapewnienie niezawodności i wydajności swoich sieci, a opłaty za ruch wychodzący wspomagają finansowo te inwestycje. Klienci również odnoszą korzyści, ponieważ nie muszą planować współpracy ani współpracować z różnymi dostawcami w celu zbudowania globalnej sieci połączeń. Opłaty za ruch wychodzący z chmury mogą być frustrujące, ale są częścią ceny, jaką organizacje muszą zapłacić, aby korzystać z ogólnoświatowej infrastruktury chmury publicznej.
Istotną różnicą między wdrożeniami w chmurze publicznej a wdrożeniami lokalnymi jest to, że w chmurze publicznej wszystkie opłaty są ujęte na jednej fakturze. Z drugiej strony, wdrożenia lokalne zazwyczaj obejmują oddzielne rachunki za pamięć masową, serwery, komponenty sieciowe i usługi, które prawdopodobnie zostały zakupione od różnych dostawców i w różnym czasie. Organizacje płacą również osobno za zasilanie i chłodzenie swoich centrów przetwarzania danych, utrzymanie obiektu kolokacyjnego oraz za różne oprogramowanie i usługi asysty technicznej. Zestawienie opłat za równoważne usługi chmurowe na jednej fakturze może okazać się szokiem dla nieprzygotowanych menedżerów IT.
Ponadto większość wydatków skojarzonych z wdrożeniami lokalnymi jest stała, podczas gdy dostawcy usług chmurowych oferują wiele zasobów chmury obliczeniowej po zmiennych kosztach. Zmienne koszty mogą być korzystne, ponieważ rosną i spadają wraz ze wzrostem i spadkiem zapotrzebowania na usługi chmury obliczeniowej, dzięki czemu organizacje mogą uniknąć przepłacania za pojemność, której nie potrzebują. Chociaż model kosztów zmiennych jest często korzystny w przypadku usług chmurowych o zmiennych wzorcach popytu, zamówienie błędnej konfiguracji lub przygotowanie nieodpowiedniego projektu może doprowadzić do zbyt wysokich rachunków za usługi chmury.
Opłaty za ruch wychodzący z chmury obliczane są na kilka sposobów, w zależności od rodzaju usługi i dostawcy usług chmurowych. Podstawowy proces jest jednak taki sam.
Przykładowo, mediana dla rozmiaru wszystkich stron w sieci WWW w czerwcu 2022 r. wynosiła 2315 kilobajtów, zgodnie z danymi HTTP Archive's Web Almanac. Załóżmy, że hostowana w chmurze witryna zawiera strony o takiej średniej wielkości i odwiedza ją 10 tys. użytkowników miesięcznie, z których każdy przegląda dwie strony. Witryna taka wygenerowałaby zatem około 44,2 GB ruchu wychodzącego z chmury każdego miesiąca:
10 000 x 2 = 20 000
20 000 x 2315 KB = 46,3 mld KB
46,3 mld KB / 1 GB (1.048.576 KB) = 44 155 GB
Przyjrzyjmy się teraz kilku rzeczywistym przykładom kosztów ruchu wychodzącego z chmury. Najpierw weźmiemy pod uwagę bardzo prosty przykład oparty na cenach platformy Azure z czerwca 2023 r. dla ruchu z serwera WWW wychodzącego w kierunku Internetu.
Zbadajmy teraz nieco bardziej złożony scenariusz dla klienta korzystającego z platformy AWS. Programiści przesłali 1 TB danych do zasobnika S3, a następnie przesłali 4 TB do regionu AWS poza Stanami Zjednoczonymi i 2 TB do Internetu. Koszty w czerwcu 2023 r. kształtowałyby się następująco:
W tym scenariuszu koszty ruchu wychodzącego stanowią mniej niż 10% całkowitych miesięcznych opłat za ruch wychodzący danych. Kluczową kwestią, którą należy zrozumieć, jest to, ile ruchu będzie generować dana aplikacja lub usługa i ile będzie to kosztować w zależności od typu używanych usług. W przypadku witryny internetowej generującej duży ruch można w powyższym przykładzie obniżyć wydatki, korzystając z sieci CDN w celu ograniczenia ruchu kierowanego bezpośrednio do Internetu. Sieci CDN buforują pliki danych bliżej przewidywanych użytkowników i we własnych sieciach dostawców usług CDN, koszty netto ich usług są zatem zwykle znacznie niższe niż koszty ruchu wychodzącego danych związane z przesyłaniem tych samych plików z chmury za każdym razem.
Warto zauważyć, że w ramach Oracle Cloud Infrastructure klienci otrzymują do 10 TB ruchu wychodzącego z chmury miesięcznie bez żadnych opłat. Na przykładzie platformy AWS można zatem stwierdzić, że za taki sam ruch wychodzący klient OCI zapłaciłby jedynie 25,24 USD w opłatach za magazyn danych. Podobnie 882,18 USD opłat za ruch wychodzący poniesionych w przykładzie dotyczącym platformy Azure zostałoby w przypadku klientów OCI uwzględnione w koszcie maszyny wirtualnej.
Jak pokazano w powyższych przykładach, opłaty za ruch wychodzący mogą szybko wzrosnąć. Taki nieograniczony model kosztów oznacza, że potencjalne błędne konfiguracje, na przykład połączenie z niewłaściwym punktem końcowym georeplikowanego konta pamięci masowej, mogą prowadzić do niekontrolowanego wzrostu rachunków za chmurę. Jak zatem dział IT może poradzić sobie z takim wyzwaniem?
Kluczowe znaczenie będzie mieć raczej wcześniejsze niż późniejsze określenie wydatków na ruch wychodzący z chmury, aby zminimalizować koszty. Może w tym pomóc pięć poniższych wskazówek:
Jednym z wyzwań w tym zakresie jest monitorowanie opłat za ruch wychodzący i zarządzanie nimi. Drugim jest ich obniżanie. Aby obniżyć koszty ruchu wychodzącego, działy IT w przedsiębiorstwach muszą sięgnąć głębiej do stosu technicznego.
Sieć CDN odczytuje zasoby witryny organizacji raz, a następnie buforuje je w lokalizacji brzegowej znacznie bliżej systemu klienta. Dzięki korzystaniu z sieci CDN żądany przez klienta obraz lub plik jest wyświetlany raczej z sieci CDN, a nie bezpośrednio z serwera WWW hostowanego w chmurze. Opłaty za korzystanie z sieci CDN są znacznie niższe niż opłaty za ruch wychodzący, a ponadto te sieci pozwalają klientom uzyskać lepsze czasy ładowania. Korzystanie z sieci CDN może wymagać niewielkich zmian w kodzie aplikacji, ale osiągane korzyści pod względem kosztów i wydajności są prawie zawsze tych zmian warte.
Kompresja ruchu sieciowego nie zawsze jest możliwa, ale ruch odbywający się w obrębie infrastruktury, na przykład między maszynami wirtualnymi za pośrednictwem sieci wirtualnej, może być kompresowany przy niewielkim uszczerbku polegającym na zwiększeniu liczby cykli procesora. Przyrostowe koszty takiego większego użycia procesora są o rzędy wielkości niższe niż opłaty za ruch wychodzący z sieci.
Wiele usług chmurowych, nawet u tego samego dostawcy usług chmurowych, oferuje wiele sposobów na uzyskanie niemal identycznych funkcji. Na przykład kontener na platformie AWS można uruchomić na prawie 20 sposobów. W ramach procesu planowania należy wycenić każde podejście, w tym opłaty sieciowe, które mogą się znacznie różnić w ramach tych podejść.
Dedykowane łącza sieciowe między dostawcą usług chmurowych a witryną mogą być drogie, ale zakup prywatnego łącza zapewnia nieograniczone możliwości z niego korzystania. Jeśli przedsiębiorstwo nie może uniknąć wysokiego wolumenu ruchu wychodzącego z chmury, inwestycja taka może faktycznie obniżyć całkowity koszt posiadania.
W modelu chmury hybrydowej, z mieszanką systemów zainstalowanych lokalnie i hostowanych, przejście na model pełnej chmury może zmniejszyć ilość danych wychodzących z chmury dzięki zlokalizowaniu wszystkich aplikacji w jednym miejscu.
Zmiany te mogą być trudne do wdrożenia, szczególnie w kontekście aplikacji produkcyjnych. W niektórych przypadkach mogą wymagać od inżynierów zajmujących się takimi aplikacjami wprowadzenia znaczących zmian. Wypracowane oszczędności często jednak sprawiają, że działania te będą opłacalne. Korzystanie z dedykowanych łączy sieciowych, takich jak ExpressRoute i Direct Connect, może wymagać odpowiedniej koordynacji zarówno z dostawcą usług chmurowych, jak i operatorem sieci, ale zarówno Microsoft, jak i Amazon wyceniają ruch wychodzący danych za pośrednictwem takich bezpośrednich łączy taniej niż zwykły ruch wychodzący.
Różni dostawcy usług chmurowych stosują różne konstrukcje cenowe. Na przykład w przypadku platformy Azure opłaty są naliczane za ruch z jednej sieci wirtualnej do innych połączonych sieci wirtualnych, nawet w tym samym regionie chmury. Warto zatem dokładnie przeanalizować koszty ruchu wychodzącego z chmury, zwłaszcza podczas pierwszej migracji do chmury publicznej.
Oracle doskonale zdaje sobie sprawę z wysokich opłat za ruch wychodzący danych naliczanych przez innych dostawców usług chmurowych i dąży do tego, aby niższe koszty transmisji danych były ważną zaletą oferowanych usług chmurowych. Oracle Cloud Infrastructure oferuje niskie ceny łączy sieciowych, które umożliwiają przedsiębiorstwom przystępne cenowo przesyłanie znacznych ilości danych, także w przypadku usług, które często zajmują największą część szerokości pasma, takich jak przesyłanie strumieniowe filmów w czasie rzeczywistym, wideokonferencje i gry. Podobnie jak w przypadku innych chmur, ruch przychodzący jest bezpłatny; OCI oferuje jednak 10 TB danych wychodzących miesięcznie bez żadnych opłat (czyli znacznie więcej niż 100 GB miesięcznie w ramach usługi AWS), co pozwala organizacjom znacznie zaoszczędzić na ruchu wychodzącym. Ponadto w przypadku OCI koszty szerokości pasma dla ruchu wychodzącego są nawet o 25% niższe niż w przypadku AWS, co jest dużą korzyścią dla przedsiębiorstw korzystających z usług wymagających dużej szerokości pasma.
Jednym z najważniejszych zagadnień związanych z ekonomiką chmury jest określenie szerokości pasma dla ruchu wychodzącego danych z usług chmurowych i sieci. Związane z tym koszty mogą bowiem okazać się sporą niespodzianką na rachunku za korzystanie z chmury, a opłaty mogą cechować się tu dużą zmiennością. Jednym z ważniejszych aspektów architektury chmury jest minimalizacja kosztów ruchu wychodzącego poprzez wykorzystanie takich technologii, jak kompresja, sieci CDN i warstwy buforowania, które mogą zwiększyć wydajność witryny lub aplikacji przy jednoczesnym obniżeniu kosztów.
Poznaj przełomowe taktyki, które pozwolą na rentowne przezwyciężenie teraźniejszych i przyszłych wyzwań, w tym transformację z wykorzystaniem sztucznej inteligencji, dostrojenie strategii fuzji i przejęć oraz objęcie przywództwa opartego na współpracy.
Czy opłata za ruch wychodzący jest wliczona w opłatę za przechowywanie danych w chmurze?
Nie. Na koszty przechowywania danych w chmurze wpływa kilka czynników. Pierwszym i najbardziej oczywistym jest ilość danych przechowywanych na koncie lub w zasobniku. Drugim jest liczba odczytów i zapisów danych w okresie rozliczeniowym. Na oba czynniki wpływa warstwa (gorąca, chłodna, zimna lub archiwalna) danych. Im gorętsza warstwa, tym niższy koszt transakcji zapisu i odczytu, ale wyższy koszt pamięci masowej w przeliczeniu na wolumen danych. Wspomniane opłaty transakcyjne są niezależne od opłat za ruch wychodzący danych przez sieć.
Czym są opłaty za ruch przychodzący i wychodzący z chmury?
Opłaty za ruch wychodzący i przychodzący to koszty ruchu wychodzącego i przychodzącego związane z przesyłaniem danych między regionami i strefami chmury, do i z Internetu oraz do i z sieci lokalnych. Ruch przychodzący (do chmury) jest zazwyczaj bezpłatny, ale wszyscy dostawcy usług chmurowych pobierają opłaty za ruch wychodzący (od dostawcy usług chmurowych). Opłaty za ruch wychodzący są oparte na ilości i lokalizacji danych (Internet, strefy dostępności i inne regiony chmury) i określa się je mianem opłat nieograniczonych (unbounded), co oznacza, że są zmienne i mogą okazać się kosztowną niespodzianką dla klientów korzystających z chmury.
Dlaczego operator usług AWS pobiera opłaty za dane wyjściowe?
Podobnie jak inni dostawcy usług chmurowych, operator usługi AWS pobiera opłaty za ruch wychodzący danych w większości swoich usług, aby pokrywać koszty budowy i utrzymania swojej sieci. W przypadku AWS koszty ruchu wychodzącego nie są uwzględniane w cenach usług. Dzięki temu Amazon może pobierać niższe opłaty za usługi, takie jak maszyny wirtualne i zasobniki pamięci masowej. Klienci, których aplikacje generują duży ruch wychodzący danych, płacą większy rachunek za infrastrukturę transmisyjną sieci, podczas gdy klienci, których aplikacje generują mniejszy ruch, płacą za tę infrastrukturę proporcjonalnie mniej.