Odpowiedzi:
AWS właśnie ogłosiło ogólną dostępność funkcji monitorowania szacunkowych opłat za pomocą alertów rozliczeniowych za pośrednictwem Amazon CloudWatch (widocznie jest dostępna dla kont premium AWS już od końca 2011 r., Patrz odpowiedź Daniela Lopeza na Czy istnieje sposób, aby ustawić Amazon AWS limit rozliczeniowy? ):
Regularnie szacujemy całkowitą miesięczną opłatę za każdą usługę AWS, z której korzystasz. Gdy włączysz monitorowanie swojego konta, zaczniemy przechowywać prognozy jako dane CloudWatch, gdzie będą one dostępne przez zwykły okres 14 dni. [...]
Jak opisano we wstępnym poście na blogu, możesz zacząć od korzystania z alertów rozliczeniowych, aby poinformować Cię, kiedy rachunek AWS będzie wyższy niż oczekiwano , zobacz Monitorowanie szacunkowych opłat za pomocą Amazon CloudWatch, aby uzyskać więcej informacji na temat tej funkcji.
Jest to już dość przydatne w przypadku wielu podstawowych potrzeb, jednak używanie interfejsów API CloudWatch do samodzielnego pobierania przechowywanych metryk (patrz GetMetricStatistics ) faktycznie pozwala na sterowanie dowolnymi przepływami pracy i logiką biznesową na podstawie tych danych, i oczywiście można wygenerować dzienny raport na ile wydano również poprzedniego dnia .
W odniesieniu do tego drugiego podkreślono również zakres tej oferty:
Należy zauważyć, że są to szacunki, a nie prognozy . Szacunek w przybliżeniu szacuje dotychczasowy koszt użytkowania AWS w bieżącym cyklu rozliczeniowym i będzie wzrastał w miarę dalszego korzystania z zasobów . [...] Nie uwzględnia trendów ani potencjalnych zmian w schemacie użytkowania AWS. [moje podkreślenie]
Oznacza to, że szczegółowość raportowanych wskaźników nie została jeszcze przeanalizowana (widzę punkty danych co 4 do 8 godzin, ale niekoniecznie aktualizowane wartości za każdym razem, jak można się spodziewać), więc uzyskanie wystarczająco dokładnego raportu dziennego może wymagać statystyczne przetwarzanie końcowe.
Niestety jest to mniej oczywiste, niż mogłoby się wydawać, zwłaszcza biorąc pod uwagę, że pożądane dane można sprawdzić ręcznie za pośrednictwem konta. Można się spodziewać dwóch opcji monitorowania:
Ani AWS, ani żaden inny sprzedawca IaaS / PaaS / SaaS, o którym wiem, nie oferuje obecnie dostępu API do swoich danych księgowych (być może z powodu potencjalnych konsekwencji finansowych / prawnych), dokonując jakiejkolwiek formy integracji stron trzecich (co byłoby łatwe do rób to w dzisiejszych czasach) w najlepszym przypadku uciążliwe, o ile musisz najpierw skorzystać z funkcji skrobania stron internetowych, aby odzyskać dane w pierwszej kolejności.
Na szczęście niedawno pojawiła się nowa oferta z Cloudability [link usunięty po zaprzestaniu darmowego poziomu], aby zrobić to dla Ciebie w profesjonalny i niezależny od dostawcy sposób, korzystamy z niej z wielkim sukcesem już w AWS - obecnie otrzymywać codzienny (lub rzadziej) raport dotyczący miesięcznych wydatków , tzn. jeszcze nie podzielony na dzienne wydatki. Dodanie dziennego wzrostu byłoby oczywiście trywialne, więc mam nadzieję i oczekuję, że z czasem udostępnią więcej takich informacji.
Ich podejście do wyceny [link usunięty po zakończeniu bezpłatnej warstwy] jest również odświeżające (mimo że jest oczywiste) i po prostu powiązane z własnymi wydatkami w chmurze, dlatego powinno się zwrócić, gdy tylko uświadomisz sobie odpowiedni potencjał oszczędności (nie naliczają opłat cokolwiek, jeśli wydasz mniej niż 2,5 tys. USD / mc).
Aktualizacja 20121016 : Niestety, Cloudability zmienił ich model cenowy na bardziej powszechny, który wciąż obejmuje warstwę bezpłatną (i ogólnie jest rozsądnie wyceniony), ale usuwa dostęp do zaawansowanych funkcji w niej, które uważałem za odświeżająco uczciwe i inteligentne podejście dla użytkowników z małymi budżetami, którzy wciąż mogą być mnożnikami w innych krajach lub ulepszać się, gdy do tego dojdzie.
Aktualizacja 20150115: Niestety, Cloudability wybrał ścieżkę wielu dostawców freemium SaaS i ostatecznie całkowicie zrezygnował z bezpłatnej warstwy: od 1 lutego nie będziemy już oferować wersji Cloudability Free, której używasz dzisiaj .
Poprzednie zastrzeżenie (zachowane w celach informacyjnych poniżej) dotyczące wymogu posiadania głównych poświadczeń AWS nie ma już zastosowania - AWS niedawno wprowadziło nowe funkcje IAM: zarządzanie hasłami i dostęp do stron z raportami aktywności i użytkowania :
Ta nowa funkcja umożliwia tworzenie osobnych i odrębnych użytkowników IAM do celów biznesowych i technicznych. Możesz przyznać użytkownikom biznesowym dostęp do stron Aktywności na koncie i / lub raportów użytkowania na stronie internetowej AWS, aby umożliwić im dostęp do danych rozliczeniowych i dotyczących użytkowania, nie dając im dostępu do innych zasobów AWS, takich jak instancje EC2 lub pliki w S3
Cloudability również to teraz zintegrowało, więc nie musisz już przekazywać im swoich głównych danych uwierzytelniających AWS ani wkładać dodatkowego wysiłku, aby ustanowić skonsolidowane rozliczenia tylko po to, aby uzyskać wgląd w wydatki w chmurze, zobacz Jak skonfigurować Amazon IAM (zarządzanie kontem tożsamości) ), aby uzyskać szczegółowe informacje.
Jest jednak jedno zastrzeżenie, o którym należy pamiętać z góry:
Aby uzyskać dostęp do swoich danych, musisz przekazać im swoje główne dane uwierzytelniające AWS, ponieważ w przeciwnym razie nie mogą one oczywiście zeskrobać twojego konta. W szczególności w przypadku AWS nadal możesz tego uniknąć, ułatwiając Skonsolidowane rozliczenia , w których konsolidujesz płatności dla wielu kont Amazon AWS [...] poprzez wyznaczenie jednego konta płatniczego , które z kolei nie ma dostępu do twoich zasobów obliczeniowych i danych.
Korzystając z narzędzi awscli , możesz uzyskać sumę miesięczną:
$ aws --region us-east-1 cloudwatch get-metric-statistics \
--namespace "AWS/Billing" \
--metric-name "EstimatedCharges" \
--dimension "Name=Currency,Value=USD" \
--start-time $(date +"%Y-%m-%dT%H:%M:00" --date="-12 hours") \
--end-time $(date +"%Y-%m-%dT%H:%M:00") \
--statistic Maximum \
--period 60 \
--output text | sort -r -k 3 | head -n 1 | cut -f 2
2494.47
Sumy z dwóch różnych dni można odjąć, aby uzyskać dzienną różnicę. Lub oszacowanie można uzyskać za jednym razem, zwiększając okno czasowe ( end-time
- start-time
) do 24 godzin i odejmując najwcześniejszy punkt danych od najnowszego.
Uwagi:
date
(dla innych date
s, np. na OSX, date -v-12H
może działać)Jeśli naprawdę potrzebujesz codziennego raportu kosztów, musisz użyć narzędzia „ Raport użytkowania ” na swoim koncie AWS. Możesz poprosić o raport dla każdej usługi, z której korzystasz, w dowolnym okresie czasu, w szczegółowości od godziny do miesiąca. Następnie pobiera plik CSV.
Będziesz musiał wykonać przetwarzanie końcowe tego pliku CSV (ponieważ nie jest to koszt, ale użytkowanie itp.), Ale dostarczy Ci danych, których potrzebujesz, aby mieć codzienny koszt.
Amazon zapewnia bieżące aktualne opłaty tutaj:
http://aws-portal.amazon.com/gp/aws/developer/account/index.html?ie=UTF8&action=activity-summary
U góry strony wskazuje, jak aktualne są dane. Uważam, że opóźnia się o kilka godzin.
Jest to najdokładniejszy i najbardziej aktualny rekord, jaki można obecnie uzyskać od Amazon lub kogokolwiek innego.
Być może ten moduł Pythona w Github może pomóc w rozpoczęciu pracy: pyec2costs (dla instancji zarezerwowanych lub na żądanie ).
Pojawiło się całkiem nowe narzędzie Netflix o otwartym dostępie, o nazwie Ice: https://github.com/Netflix/ice, które pozwala na wizualizację szczegółów faktur pobranych za pomocą raportów AWS wygenerowanych w wiadrach S3.
Spójrz na Xervmon. Zapewniają codzienne wydatki i użytkowanie oraz dodatkowe analizy historyczne. Są nadchodzącym dostawcą usług ze szczegółową integracją z Amazon AWS planowaną na najbliższe 3 miesiące.
Niektóre zrzuty ekranu z mojego bieżącego konta są jak poniżej. http://cloudmaya.net/~develop/demo/Slide1.jpg http://cloudmaya.net/~develop/demo/Slide2.jpg
Grupa profesjonalistów zbudowała i jest całkiem fajnie.
Oto prosty skrypt, który pokazuje, jak analizować i analizować szczegółowy plik CSV do rozliczeń AWS:
Powinno być wystarczająco łatwe, aby można było zbudować własną analizę!
Korzystanie z polecenia CostExplorer AWS CLI Możliwe jest pobranie danych o kosztach i zużyciu dla konta
Na przykład: jeśli chcesz pobrać koszt od początku miesiąca do dnia dzisiejszego, możesz użyć poniższego polecenia.
aws ce get-cost-and-usage --time-period Start=$(date -u -d "$TODAY" '+%Y-%m-01'),End=$(date -u +"%Y-%m-%d" --date="+1 day") --granularity MONTHLY --metrics UnblendedCost --output text | sort -r -k 3 | head -n 1 | cut -f 2
Wyjście: 615,6129260967
Jeśli chcesz uzyskać koszt CODZIENNIE, użyj GRANULARNOŚCI jak CODZIENNIE, jak pokazano poniżej:
aws ce get-cost-and-usage --time-period Start=$(date -u -d "$TODAY" '+%Y-%m-01'),End=$(date -u +"%Y-%m-%d" --date="+1 day") --granularity DAILY --metrics UnblendedCost
Widziałem, jak firmy budują do tego własne narzędzia - w zasadzie wycinają stronę rozliczeniową AWS i na swoim pulpicie nawigacyjnym, wyświetlają bieżący koszt, aw jednym przykładzie dzielą go według dni w minionym miesiącu i wiele, aby uzyskać szacunkowy całkowity koszt miesiąca.
AWS nie oferuje jeszcze interfejsu API rozliczeń (jestem pewien, że będą w przyszłości), ale istnieje kilka usług zewnętrznych, które mogą pomóc. Jednym z nich jest CloudVertical (ujawnienie: pracuję tutaj), gdzie możesz uzyskać dzienny, miesięczny i godzinny koszt, w podziale na usługi i dla wielu kont.
Prawdziwym świętym Graalem dla usługi takiej jak AWS jest jednak nie tylko śledzenie codziennych wydatków, ale także pokazanie wglądu w wydajność (koszt + wykorzystanie = efektywność), a także podkreślenie możliwości uzyskania oszczędności (tj. Czasu użycia wystąpień zarezerwowanych lub spotowych)
Istnieje narzędzie do przeglądania zużycia rozliczeń AWS, w którym można pokroić i kostkować zużycie w różnych zasobach AWS nawet do 30 minut. Dokładniejszą odpowiedź opublikowałem na stronie /programming//a/37585673/1526342
Możesz to teraz zrobić za pomocą interfejsu API Eksploratora kosztów. Możesz uzyskać bardzo łatwy dostęp na przykład przez awscli / boto3, ale chodzi o to, że jest to o wiele łatwiejsze niż wcześniej.