Strona Główna / Blog

Za co i w jaki sposób płacisz w chmurze AWS?

Przemek Malak

Przemek Malak

AWS Architect (Development) w Chmurowisku. Ponad 18 lat w branży IT. Architekt rozwiązań chmurowych i mobilnych oraz Programista (przez duże P). Entuzjasta rozwiązań Serverless, posiadacz kilku certyfikacji AWS (Architect, Developer, SysOps).

Tworzysz konto w chmurze. Podpinasz kartę kredytową. Idziesz spać i …. nie możesz zasnąć. Zaczynasz się poważnie zastanawiać, za co i jak płacisz w chmurze AWS.

Postaram się to wyjaśnić, nie tylko dla spokojnego snu nas wszystkich.

Czy mam się czego bać?

To zależy… ;-) Jeżeli podejdziesz do tematu bezmyślnie, zaczniesz tworzyć zasoby w chmurze bez opamiętania i nie będziesz ich usuwać, to odpowiedź jest jednoznaczna. Tak, bój się o swój bilans na karcie na koniec miesiąca.

Jeżeli jednak działasz z namysłem oraz planem, nie próbujesz oszukać systemu, to możesz spać spokojnie. Nic złego Cię nie czeka. Jak wiesz w chmurze płacisz za to czego używasz, jak długo używasz lub jak często używasz.

A ile to kosztuje?

Ponownie napiszę: ‚to zależy’. Możesz się zdziwić, ale w zależności od miejsca na świecie, w którym uruchamiasz swoje zasoby, cena będzie inna. Dziwne? Nie do końca. Uruchomienie serwerowni na pustyni kosztuje pewnie więcej niż w miejscu, gdzie krzyżują się autostrady. Gdy ktoś pyta mnie o konkretne koszty, zawsze odsyłam do bieżącego cennika. Chmura to jednak nie tylko maszyny wirtualne.

Ale tak naprawdę, to za co płacisz?

No właśnie. Bo w jaki sposób porównać maszynę wirtualną do funkcji Lambda czy Kinesis. Robi się trudniej, gdyż nie jest to do końca możliwe.

Ogólnie można powiedzieć, że w AWS płacisz za:

  • compute
  • storage
  • ruch wyjściowy

Każda usługa ma jednak swój cennik i sposób rozliczania. Czasem są to tylko minuty lub sekundy, czasem ilość wywołań lub zajęte miejsce „na dysku”. Część usług (do pewnego poziomu) będzie za darmo. Koszmar…

https://aws.amazon.com/blogs/startups/six-ways-to-reduce-your-aws-bill/

Free Tier

Tak, możesz dostać od AWS coś za darmo. Z tak zwanego Free Tier można skorzystać na dwa sposoby.

Przez pierwsze 12 miesięcy od założenia konta niektóre usługi można wykorzystać za darmo w ograniczonym zakresie. Pozwoli to na zapoznanie się z nimi. Mamy dostępne np:

  • 750 godzin miesięcznie pracy maszyny EC2 t2.micro
  • 5GB przestrzeni w usłudze S3
  • 750 godzin miesięcznie pracy instancji RDS w rozmiarze t2.micro
  • 50 GB transferu z CloudFront

Dodatkowo, AWS oferuje przez cały czas część usług, ale w ograniczonym zakresie, całkowicie za darmo. Drugiego Amazona przy pomocy tych zasobów nie utworzymy, ale mamy do dyspozycji na przykład:

  • 200 milionów requestów do bazy DynamoDB
  • 1 milion wywołań funkcji Lambda
  • odzyskanie do 10GB danych z usługi Glacier

Jak to w końcu jest?

Trudno jest tak naprawdę dokładnie oszacować, ile będzie nas kosztowała chmura. Można coś policzyć, przyjąć estymacje, ale jeżeli nie znamy w pełni ruchu na naszych zasobach to nie będzie to łatwe. Często, dopiero po kilku miesiącach, wiesz co naprawdę dzieje się na Twoim koncie i jesteś w stanie zareagować, zaoszczędzić, zoptymalizować. Bądź więc czujny!

Zobaczmy na przykładzie kilku popularnych usług jak podejść do szacowania wydatków w AWS oraz na to, co ma wpływ na ich wysokość.

EC2

Jeżeli weźmiemy na warsztat maszyny wirtualne, to już ilość sposobów, na które możemy je „kupować” może wzbudzić przerażenie. Mamy do wyboru instancje:

  • On-Demand
  • Reserved
  • Spot
  • Scheduled

Dochodzą do tego tak zwane Savings Plans i Capacity Reservations. Tutaj wyjaśniona jest różnica pomiędzy nimi. Można korzystać także z dedykowanych hostów i dedykowanych instancji.

A jest z czego wybierać. Na początku jednak najczęściej korzystamy z instancji on-demand, czyli takich, które możemy w dowolnym momencie włączyć i wyłączyć, a zapłacimy tylko za okres, w którym były włączone. Nie płacimy nic z góry, nie zobowiązujemy się do niczego. W każdym momencie możemy zmienić rodzaj maszyny na większą lub mniejszą. Wygodne! Ale jednak nie najtańsze. Takich maszyn używamy przede wszystkim gdy:

  • Nasze aplikacje nie pracują ze stałym obciążeniem
  • Ciężko określić, jakiej mocy obliczeniowej będziemy potrzebowali
  • Tworzymy nasze rozwiązania, testujemy je

Tańsze w użytkowaniu będą tak zwane reserved instances. W zależności od tego, na jak długo zarezerwujemy maszynę, ile zapłacimy z góry i czy zostawimy sobie możliwość zmiany rodziny instancji – możemy zapłacić nawet do 75% mniej. Na początku, gdy uruchamiamy nowe aplikacje, ciężko będzie dokładnie określić jakiej mocy potrzebujemy, ale po kilku miesiącach możemy przyjrzeć się utylizacji zasobów i zdecydować się na wykupienie rezerwacji.

Rezerwacje dadzą nam też pewność, że w razie potrzeby dana maszyna będzie dla nas dostępna.

Ciekawym i bardzo tanim sposobem zakupu maszyn wirtualnych są tak zwane spot instances. To takie „Allegro” w AWS. Oferujemy pewną kwotę za maszynę i jeżeli jest ona dostępna i nikt nie „licytuje” więcej to AWS nam te zasoby udostępni. Cena może być do 90% niższa od instancji on-demand. Gdzie jest kruczek? W każdym momencie możemy taką instancję EC2 stracić. Nie twierdzę, że zdarzy się to na pewno, ale musimy być na taki obrót sprawy przygotowani. Kiedy warto zerknąć w kierunku spotów?

  • Jeżeli nie ma znaczenia kiedy nasze aplikacje uruchomimy
  • Jeżeli nie ma sensu uruchamianie aplikacji przy zwykłych cenach
  • Jeżeli nagle potrzebujemy znacznych mocy obliczeniowych

Oprócz rodzaju instancji czy modelu zakupu na cenę naszych rozwiązań korzystających z maszyn EC2 może mieć wpływ jeszcze wiele innych czynników takich jak:

  • Load Balancery
  • Włączenie detailed monitoring
  • Autoskalowalnie
  • Stałe adresy IP
  • System operacyjny zainstalowany na maszynie.

S3

Storage jest bardzo ważnym elementem rozwiązań chmurowych. Tutaj także mamy bardzo wiele możliwości i opcji. Z jednej strony dobrze, z drugiej zaś wiąże się z tym także mnogość opcji w cenniku.

Składując dane w usłudze S3 to ile zapłacimy będzie zależało od:

  • Klasy
  • Ilości danych
  • Ilości requestów do bucketówilości danych pobranych z bucketa

Dwa ostatnie punkty wydają się jasne. Wątpliwości może budzić pojęcie  classes. Szczegółowy cennik znajdziemy tutaj, jednak w uproszczeniu, w zależności od tego, którą klasę wybierzemy (przemieszczając się od lewej strony do prawej tabelki) zapłacimy mniej za przechowywanie danych, a więcej za ich pobieranie.

Serverless

Jeżeli chodzi o usługi typu serverless to prawdziwym będzie stwierdzenie, że płacimy za nie tylko wtedy, gdy ich używamy. Utworzona kolejka w usłudze SQS nie kosztuje nas nic do momentu, w którym zaczniemy z niej korzystać. Funkcja Lambda, która nie jest wykorzystywana, także nie podniesie naszego rachunku. Z jednej strony wydaje się to proste, ale i tak warto zawsze spojrzeć w cennik danej usługi. Przykładowo opłaty za korzystanie z SQS zależą od:

  • Ilości requestów
  • Zawartości requestów
  • Wielkości przekazywanych danych (jeden request to maksymalnie 256 kB, ale płacimy za bloki 64kB)
  • Typu kolejki (zwykła lub FIFO)
  • Interakcji z Key Management System

W przypadku usługi API Gateway zapłacimy za liczbę requestów, ilość wysłanych danych, cache.

Co dalej?

Warto na pewno przyglądać się rachunkom za chmurę. Przy użyciu usługi AWS Cost Explorer sprawdzajmy, na co tak naprawdę poświęcamy nasze środki finansowe. Możemy tam rozłożyć sobie rachunek na poszczególne konta (jeżeli mamy utworzoną organizację), usługi, availability zony.

Jeżeli korzystamy z maszyn wirtualnych, baz danych w usłudze RDS lub innych usług, które „konsumują” pod spodem maszyny wirtualne, to na pewno warto przyglądać się metrykom utylizacji tych zasobów. Często zdarza się, że kupujemy maszyny o wiele większe, niż tak naprawdę potrzebujemy.

Przy większych projektach warto też na pewno próbować estymować koszt naszego rozwiązania. Tu pomocny na pewno będzie kalkulator AWS.

Problem jest jednak taki, że praktycznie nigdy nie zrobimy dokładnej estymacj. W większości przypadków nasze szacunki, szczególnie te, przy przenoszeniu rozwiązań z on-premises, są znacznie zawyżone. Mamy więc pole do dużej optymalizacji, szczególnie, gdy dotkniemy automatyzacji procesów (a to temat na oddzielny artykuł). A tu przewaga chmury jest ogromna. Dzięki temu wszystkiemu nie zostają nam niepotrzebne rzeczy. Po prostu przestajemy ich używać i za nie płacić. No i nigdy nie zostaniemy z „kupą” nieużywanego „żelastwa”.

Już wkrótce otwieramy nowe kursy

Zostań specjalistą chmury publicznej

Dołącz do listy mailingowej!

Dołącz do naszego newslettera

Staramy się wysyłać tylko wartościowe informacje, np. co miesiąc dostaniesz spis najważniejszych nowości z chmur Azure, AWS i GCP, z krótkimi opisami i linkami.