Scott Tiger Tech Blog

Blog technologiczny firmy Scott Tiger S.A.

Zarządzanie kosztami w chmurze AWS

Autor: Piotr Karpiuk o czwartek 29. Czerwiec 2017

W dzisiejszym artykule będziemy się zasadniczo poruszać w konsoli webowej właściciela konta AWS, we frontendzie usługi Billing.

Okres rozliczeniowy kończy się o północy ostatniego dnia każdego miesiąca, a na ogół faktura jest wystawiana w ciągu następnych 7 dni księgowych.

Promocja przez pierwszy rok

Przez pierwszy rok po założeniu konta AWS obowiązuje promocja, w ramach której za użycie szeregu usług (do pewnych granic, zależnych od usługi) nie zapłacimy nic – patrz Free Tier. Jeśli nie wykorzystasz wszystkich dobrodziejstw promocji w danym miesiącu, nie przenoszą się one na następny miesiąc. Gdy kończy się czas działania promocji, na adres email podany przy zakładaniu konta przychodzi stosowne powiadomienie.

Na kokpicie bilingowym można na bieżąco śledzić zużycie najdroższych zasobów w ramach promocji, z widocznymi ostrzeżeniami w razie spodziewanego przekroczenia limitu w miesiącu – patrz rysunek.

Faktura

Możesz oglądać sobie PDFy faktur z dowolnego miesiąca na zakładce Bills. Z combo wybieramy dowolny miesiąc z przeszłości, a link do faktury uzyskujemy rozwijając gałąź Usage Charges and Recurring Fees, jak na poniższym rysunku:

Jak widać, można też łatwo ściągnąć dane w formacie CSV.

Przydatne jest również automatyczne wysyłanie kolejnych wystawianych faktur na email podawany przy zakładaniu konta AWS. Dokonujemy tego w zakładce Preferences, jak na poniższym rysunku:

Uwaga: aby korzystać z możliwości ustawienia notyfikacji/alarmów oraz budżetów (patrz dalej), należy zaznaczyć również opcję Receive Billing Alerts.

Raporty bilingowe

Tzw. AWS Cost and Usage report to najbardziej drobiazgowy sposób śledzenia zużycia zasobów – po włączeniu (zakładka Reports) jest generowany cyklicznie codziennie lub (jeśli tak sobie zażyczymy) nawet co godzinę i umieszczany we wskazanym kubełku usługi S3. Można ściągnąć takie raporty w formacie CSV i analizować lokalnie, ale także analizować w chmurze przy użyciu usług Redshift lub QuickSight. Każdy kolejny raport zawiera w sobie raport poprzedni, aż do końca miesiąca – tutaj stan jest zerowany.

Na jednym koncie AWS można zlecić do 5 cyklicznych raportów. Sama usługa nie kosztuje nic, ale koszty związane są z zajmowanym przez raporty miejscem na S3.

Cenniki

Tzw. AWS Price List API pozwala pobrać aktualny cennik dla poszczególnych usług w formacie JSON lub CSV. Cennik zmienia się gdy Amazon zmienia cenę (na ogół zmniejsza), gdy pojawiają się nowe typy instancji EC2 lub gdy pojawia się w chmurze nowa usługa.

Uwaga: cennik nie obejmuje promocji obowiązującej podczas pierwszego roku od założenia konta (Free Tier) ani EC2 Spot Instances (instancji EC2 „kupowanych na giełdzie”). Do tego ostatniego służy polecenie CLI (wiersza poleceń) o nazwie describe-spot-price-history.

Tzw. offer index file (ok. 30KB) to główny rozdzielnik wszystkich cenników. Zawiera URLe cenników dla poszczególnych usług.

Z kolei tzw. offer file to cennik dla konkretnej usługi – jego URL jest w offer index file. Na przykład cennik usług EC2 we wszystkich regionach (ok. 130 MB) znajduje się pod URLem (wystarczy zamienić sufiks „json” na „csv” aby otrzymać wersję CSV):

https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonEC2/current/index.json

Z kolei cennik EC2 dla regionu us-east-1 (ok. 11MB) dostępny jest pod URLem:

https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonEC2/current/us-east-1/index.json

Uwaga: Możesz sobie zażyczyć aby każdego dnia w którym zmienił się cennik usług AWS otrzymywać stosownego emaila. Jak to zrobić jest wyjaśnione szczegółowo w punkcie To sign up for price update notifications w rozdziale Monitoring Charges with Alerts and Notifications dokumentacji AWS.

Eksplorator kosztów

Eksplorator kosztów (zakładka Cost Explorer) to darmowe narzędzie wizualizujące poniesione koszty do 12 miesięcy poprzednich, bieżący miesiąc, i prognozę na maksymalnie 3 miesiące do przodu. Można tu wyszukiwać trendów, identyfikować obszary wymagające bliższego przyjrzenia się itp. W wykresach można ustawiać grupowanie i filtrowanie. Każdy wykres ma swój URL, który można zapamiętać w zakładkach przeglądarki. Dodatkowo masz do dyspozycji kilka prekonfigurowanych, typowych perspektyw dostępnych z listy rozwijanej o nazwie Reports. Można również zdefiniować własną perspektywę, która może być jednego z trzech rodzajów:

  • Cost and Usage Report – jak używane są usługi AWS i jak są rozłożone koszty pomiędzy poszczególne usługi.
  • Reserved Instances Utilization Report – pozwala ocenić jak zużywane są godziny rezerwowanych instancji EC2 (ang. reserved instances, w odróżnieniu od on-demand i spot bidding).
  • Reserved Instances Coverage Report – jaka część godzin pracy instancji jest pokrywana przez godziny rezerwowanych instancji – pozwala ocenić jak rozszerzyć rezerwacje aby zoptymalizować koszty.

Uwaga: Po włączeniu eksploratora kosztów trzeba zaczekać ok. 1 doby na zebranie danych wystarczających do obejrzenia pierwszych wykresów, i kilka dni na zebranie danych z poprzednich miesięcy. Dane są aktualizowane co najmniej raz na dobę.

Poniżej wykresu znajduje się tabela z danymi na podstawie których wygenerowano wykres. Dane tabeli można jednym przyciskiem ściągnąć w formacie CSV.

Budżety

Budżet (zakładka Budgets) pozwala zdefiniować limit na zużycie określonych zasobów, obserwować jak jest zużywany w czasie i jakie są prognozy, a także zdefiniować reakcję na przekroczenie wyznaczonego limitu (email lub SNS – a więc także SMS).

Przykłady dwóch wartościowych budżetów:

  • Limit wszystkich poniesionych miesięcznie kosztów: $1000,
  • Limit transferu danych z chmury do Internetu: 100GB (ponieważ tego typu transfer jest płatny ok. $0.09/GB, przekroczenie progu może oznaczać że ktoś próbuje sztucznie nabić koszty).

Dla jednego konta AWS możesz utworzyć nawet 20.000 budżetów, ale tylko dwa pierwsze są darmowe – pozostałe kosztują rzędu $0.02 dziennie. Aktualne (i prognozowane) wartości dla wszystkich budżetów można ściągnąć w postaci pliku CSV. Można również utworzyć nowy budżet poprzez skopiowanie już istniejącego i modyfikację kopii – dzięki temu można uniknąć ponownego wprowadzania takich parametrów jak adresy email.

Znaczniki alokacji kosztów

W chmurze Amazonu można nadawać poszczególnym zasobom znaczniki (ang. tags). Znacznik jest parą klucz/wartość. Przykładowo, można użyć znaczników aby podzielić używane zasoby chmury pomiędzy projekty. Dzięki temu można odpowiedzieć na pytanie jak kształtują się koszty zasobów dla poszczególnych projektów. Tagowanie zasobów można przeprowadzić w edytorze znaczników (ang. tag editor).

Aby było możliwe wykorzystanie tagów w analizie kosztów, należy w zakładce Cost Allocation Tags wskazać klucze znaczników używanych przy generowaniu raportów o kosztach (patrz raporty bilingowe wyżej) lub jako wartości filtra w (również omówionym wyżej) eksploratorze kosztów. W raportach o kosztach tagi będą reprezentowane jako dodatkowe kolumny. Oprócz tagów definiowanych przez Ciebie, możesz również włączyć tagi generowane przez system – chodzi konkretnie o tag createdBy (kto przydzielił zasób). Od tej pory każde utworzenie zasobu, np. instancji EC2 spowoduje automatycznie oznaczenie go tagiem createdBy z odpowiednią wartością.

Kontrola dostępu

Domyślnie dostęp do danych bilingowych ma jedynie właściciel konta AWS (root) i nie mają go użytkownicy IAM. Aby to zmienić, należy zalogować się do konsoli WWW jako root i w ustawieniach konta zaznaczyć pole wyboru przy IAM User Access to Billing Information (patrz rysunek niżej).

Uwaga: włączenie tej opcji odblokowuje dostęp użytkownikom IAM nie tylko do usługi Billing, ale także do ustawień konta AWS (np. danych karty kredytowej, danych kontaktowych właściciela konta itp.)! Prawie na pewno będziesz chciał ograniczyć użytkownikom IAM dostęp do ustawień konta AWS za pomocą mechanizmów IAM takich jak polityki (ang. policies).

Inne

  • AWS tasks that require root – tutaj się dowiesz jakich czynności nie może wykonać żaden użytkownik IAM (nawet z najwyższymi uprawnieniami), a jedynie root (właściciel konta AWS).
  • Aby skontaktować się z personelem chmury Amazonu, formularz kontaktowy dostępny jest na stronie AWS Support Center. Należy tam wybrać opcję Open a new case, wybrać z listy temat i wypełnić wymagane pola.
  • Oprócz ustawienia budżetu można również zdefiniować alarm aktywowany po przekroczeniu określonej miesięcznej kwoty za pomocą usługi CloudWatch przy użyciu metryki o nazwie Billing. Jest to opisane w punkcie To create a billing alarm rozdziału Monitoring Charges with Alerts and Notifications dokumentacji AWS, ale nie jest tak wygodne jak po prostu zdefiniowanie budżetu, a poza tym kosztuje.

Literatura

Share and Enjoy:
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • Śledzik
  • Blip
  • Blogger.com
  • Gadu-Gadu Live
  • LinkedIn
  • MySpace
  • Wykop

Zostaw komentarz

XHTML: Możesz użyć następujących tagów: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>