Amazon CloudWatch: Twoje oczy i uszy w chmurze

Wyobraź sobie, że prowadzisz fabrykę, ale nie masz ani jednego czujnika, żadnego wskaźnika, żadnego alarmu. Nie wiesz, czy maszyny się przegrzewają, czy produkcja stoi, czy rachunek za prąd właśnie przebił budżet. Brzmi jak koszmar? Dokładnie tak wygląda infrastruktura AWS bez Amazon CloudWatch.

CloudWatch to centralny system monitoringu w AWS. Zbiera metryki, przechowuje logi, uruchamia alarmy i pozwala Ci tworzyć dashboardy, żebyś zawsze wiedział, co się dzieje w Twoim środowisku.

Metryki (Metrics)

Metryka to seria danych w czasie. Każda usługa AWS automatycznie wysyła swoje metryki do CloudWatch. Nie musisz nic konfigurować, to działa od razu (out of the box).

Przykłady wbudowanych metryk:

  • EC2: CPUUtilization, NetworkIn, NetworkOut, StatusCheckFailed
  • RDS: DatabaseConnections, FreeStorageSpace, ReadLatency
  • ALB: RequestCount, TargetResponseTime, HTTPCode_Target_5XX
  • S3: BucketSizeBytes, NumberOfObjects
  • Lambda: Invocations, Duration, Errors, Throttles
💡 Ważne rozróżnienie
EC2 domyślnie wysyła metryki co 5 minut (Basic Monitoring). Możesz włączyć Detailed Monitoring (za dodatkową opłatą), który raportuje co 1 minutę. Na egzaminie to się pojawia!

Metryki niestandardowe (Custom Metrics)

Co jeśli chcesz monitorować coś, czego AWS nie śledzi automatycznie? Na przykład liczbę zalogowanych użytkowników, rozmiar kolejki w Twojej aplikacji albo zużycie RAM na EC2?

Wtedy tworzysz custom metric. Twoja aplikacja (lub skrypt) wysyła dane do CloudWatch za pomocą API PutMetricData.

⚠️ Na egzaminie
CloudWatch NIE monitoruje domyślnie zużycia pamięci RAM ani miejsca na dysku EC2. To wymaga custom metrics (lub CloudWatch Agent). To jedno z najczęstszych pytań pułapkowych na egzaminie!

CloudWatch Agent

CloudWatch Agent to lekki program, który instalujesz na instancjach EC2 (lub serwerach on-premises). Pozwala on zbierać:

  • Metryki systemowe: zużycie RAM, swap, dysk, procesy
  • Logi: z plików systemowych, logów aplikacji, sysloga

Agent to most, który łączy to, co dzieje się wewnątrz Twojego systemu operacyjnego, z CloudWatch.

Alarmy (CloudWatch Alarms)

Metryki bez alarmów to jak czujnik dymu bez syreny. CloudWatch Alarm monitoruje wybraną metrykę i uruchamia akcję, gdy wartość przekroczy próg.

Alarm ma trzy stany:

  • OK - wszystko w normie
  • ALARM - próg został przekroczony
  • INSUFFICIENT_DATA - za mało danych do oceny (np. nowa metryka)

Co może zrobić alarm, gdy przejdzie w stan ALARM?

  • Wysłać powiadomienie przez Amazon SNS (email, SMS, webhook)
  • Uruchomić Auto Scaling (dodać lub usunąć instancje EC2)
  • Wykonać EC2 Action (zatrzymać, zakończyć lub zrestartować instancję)
🏢 Scenariusz: Alarm na CPU
Twoja aplikacja e-commerce działa na EC2 za Load Balancerem. Tworzysz alarm: „Jeśli średnie CPUUtilization > 80% przez 5 minut, dodaj 2 instancje EC2 przez Auto Scaling". Dzięki temu w Black Friday Twoja infrastruktura automatycznie się skaluje, zanim użytkownicy zauważą spowolnienie.

Billing Alarms

To jeden z pierwszych alarmów, który powinieneś ustawić na swoim koncie AWS. Billing Alarm powiadomi Cię, gdy szacowany rachunek przekroczy kwotę, którą określisz.

Jak to ustawić:

  • Billing Alarms wymagają regionu us-east-1 (N. Virginia)
  • Musisz najpierw włączyć „Receive Billing Alerts" w ustawieniach konta
  • Tworzysz alarm na metrykę EstimatedCharges w namespace AWS/Billing
💡 Praktyczna rada
Ustaw billing alarm od razu po utworzeniu konta AWS. Nawet na niską kwotę (np. 5 USD). To Twoja pierwsza linia obrony przed niespodziewanym rachunkiem. Wielu początkujących zapomniało wyłączyć usługi i dostało rachunek za kilkaset dolarów. Nie bądź jednym z nich!

CloudWatch Dashboards

Dashboardy to niestandardowe strony z wykresami Twoich metryk. Możesz mieć dashboard operacyjny dla zespołu DevOps, biznesowy dla managementu, albo dedykowany dla konkretnej aplikacji.

Kluczowe cechy dashboardów:

  • Mogą zawierać metryki z wielu regionów (cross-region)
  • Mogą zawierać metryki z wielu kont AWS (cross-account)
  • Wspierają auto-refresh i różne typy wykresów
  • Pierwszy 3 dashboardy (do 50 metryk) za darmo, potem opłata za dashboard

CloudWatch Logs

CloudWatch Logs to zarządzana usługa do przechowywania, przeszukiwania i analizy logów. Zamiast SSH-ować się na każdą instancję i grepować pliki, masz wszystko w jednym miejscu.

Struktura CloudWatch Logs:

  • Log Group - kontener najwyższego poziomu (np. /aws/lambda/my-function)
  • Log Stream - strumień logów wewnątrz grupy (np. per instancja EC2, per kontener)
  • Log Event - pojedynczy wpis z timestampem i wiadomością

Skąd mogą płynąć logi do CloudWatch Logs?

  • Lambda (automatycznie)
  • EC2 (przez CloudWatch Agent)
  • ECS/Fargate (awslogs driver)
  • API Gateway, Route 53, VPC Flow Logs
  • CloudTrail, RDS, i wiele innych

Domyślnie logi w CloudWatch Logs są przechowywane bezterminowo (i kosztują!). Możesz ustawić retencję na poziomie Log Group:

  • 1 dzień, 3 dni, 5 dni, 1 tydzień, 2 tygodnie, 1 miesiąc...
  • ...aż do 10 lat, lub „Never expire" (domyślne)

Tip: Dla oszczędności eksportuj stare logi do S3 (tańsze storage), a w CloudWatch trzymaj tylko ostatnie tygodnie/miesiące.

CloudWatch Logs Insights

Logs Insights to interaktywna wyszukiwarka logów z własnym językiem zapytań. Pozwala przeszukiwać gigabajty logów w sekundy i tworzyć wizualizacje.

Przykładowe użycia:

  • Znajdź 25 najnowszych błędów w logach Lambda
  • Policz liczbę błędów 5XX per godzinę
  • Znajdź najwolniejsze requesty w API Gateway

Logs Insights automatycznie wykrywa pola w logach JSON, co czyni go potężnym narzędziem do analizy.

⚖️ Monitoring: domyślny vs rozszerzony
AspektBasic MonitoringDetailed Monitoring / Agent
Interwał metryk EC25 minut1 minuta
Metryki RAM/dyskNiedostępneWymagają CloudWatch Agent
KosztDarmowyDodatkowa opłata
Logi systemoweBrakPrzez CloudWatch Agent
Custom metricsBrakPutMetricData API / Agent
✅ CloudWatch: co musisz zapamiętać na egzamin
CloudWatch zbiera metryki z usług AWS automatycznie
RAM i dysk EC2 wymagają CloudWatch Agent (custom metrics)
Alarmy mogą uruchamiać SNS, Auto Scaling i EC2 Actions
Billing Alarms działają tylko w us-east-1
CloudWatch Logs przechowuje logi bezterminowo (domyślnie)
Dashboardy mogą być cross-region i cross-account

AWS Trusted Advisor

Trusted Advisor to usługa, która automatycznie analizuje Twoje konto AWS i daje rekomendacje w 5 kategoriach:

  • Cost Optimization - czy masz nieużywane zasoby, za które płacisz?
  • Performance - czy Twoje zasoby są optymalnie skonfigurowane?
  • Security - czy masz otwarte porty, brak MFA na root?
  • Fault Tolerance - czy masz backupy, multi-AZ?
  • Service Limits - czy zbliżasz się do limitów usług?
⚠️ Na egzaminie
Trusted Advisor pojawia się BARDZO często na CLF-C02. Zapamiętaj 5 kategorii. Ważne: na planie Basic i Developer masz tylko 7 podstawowych checków (głównie security). Pełny Trusted Advisor (wszystkie 5 kategorii) wymaga planu Business, Enterprise On-Ramp lub Enterprise.
⚖️ Trusted Advisor vs plany wsparcia
FunkcjaBasic/DeveloperBusiness+
Security checks (7 core)
Pełne 5 kategorii
API dostęp
CloudWatch integration
🧠 Podsumowanie
  • CloudWatch to centralny monitoring AWS: metryki, alarmy, logi, dashboardy
  • Wbudowane metryki EC2 nie obejmują RAM i dysku; potrzebujesz CloudWatch Agent
  • Alarmy reagują na progi metryk i mogą uruchamiać powiadomienia SNS, Auto Scaling lub akcje EC2
  • Billing Alarm to must-have od pierwszego dnia na koncie AWS (region us-east-1)
  • CloudWatch Logs centralnie przechowuje logi z Lambda, EC2, ECS i wielu innych usług
  • Logs Insights pozwala przeszukiwać i analizować logi za pomocą języka zapytań
🧪 Sprawdź się

Administrator zauważa, że instancja EC2 zużywa dużo pamięci RAM, ale w CloudWatch nie widzi żadnej metryki RAM. Dlaczego?

A CloudWatch nie obsługuje monitorowania EC2
B Trzeba włączyć Detailed Monitoring
C Metryka RAM wymaga zainstalowania CloudWatch Agent
CloudWatch domyślnie nie ma dostępu do metryk wewnątrz systemu operacyjnego (RAM, swap, dysk). Potrzebny jest CloudWatch Agent zainstalowany na instancji, który wysyła te dane jako custom metrics. Detailed Monitoring zmienia interwał z 5 na 1 minutę, ale nie dodaje nowych metryk.

Firma chce otrzymać email, gdy szacowany miesięczny rachunek AWS przekroczy 100 USD. Co musi skonfigurować?

A AWS Budgets z akcją email w dowolnym regionie
B CloudWatch Billing Alarm w regionie us-east-1 z powiadomieniem SNS
C CloudTrail alarm na zdarzenia billingowe
CloudWatch Billing Alarm monitoruje metrykę EstimatedCharges i wysyła powiadomienie przez SNS. Kluczowe: musi być skonfigurowany w regionie us-east-1, bo tam zbierane są dane billingowe. AWS Budgets to alternatywa, ale pytanie dotyczy CloudWatch.

Zespół DevOps chce zobaczyć na jednym ekranie metryki z EC2 w eu-west-1 i RDS w us-east-1. Które rozwiązanie jest najlepsze?

A CloudWatch Dashboard z widgetami cross-region
B Osobne dashboardy w każdym regionie
C AWS Config Dashboard
CloudWatch Dashboards obsługują metryki cross-region, więc możesz mieć widgety z różnych regionów na jednym dashboardzie. Osobne dashboardy nie dają jednego widoku. AWS Config nie jest narzędziem do monitorowania metryk operacyjnych.