Nowość – Amazon CloudWatch Cross-Account Observability
Wdrażanie aplikacji przy użyciu wielu kont AWS to dobra praktyka w celu ustalenia granic bezpieczeństwa i rozliczeń między zespołami oraz zmniejszenia wpływu zdarzeń operacyjnych.
W przypadku przyjęcia strategii obejmującej wiele kont należy przeanalizować dane telemetryczne rozproszone na kilku kontach. Aby zapewnić Ci elastyczność monitorowania wszystkich komponentów Twoich aplikacji ze scentralizowanego widoku, twórcy AWS wprowadzają Amazon CloudWatch, obserwację między kontami, nową możliwość wyszukiwania, analizowania i korelowania danych telemetrycznych między kontami przechowywanych w CloudWatch, takich jak metryki, dzienniki i ślady.
Możesz teraz skonfigurować centralne konto monitorowania AWS i podłączyć inne konta jako źródła. Następnie możesz przeszukiwać, kontrolować i analizować dzienniki w swoich aplikacjach, aby w ciągu kilku sekund przeanalizować problemy operacyjne. Dodatkowo możesz odkrywać i wizualizować metryki z wielu kont w jednym miejscu i tworzyć alarmy, które oceniają metryki należące do innych kont. Możesz zacząć od zagregowanego widoku aplikacji dla wielu kont, aby wizualnie zidentyfikować zasoby wykazujące błędy i zagłębić się w skorelowane ślady, metryki i dzienniki, aby znaleźć główną przyczynę. Ten bezproblemowy dostęp do danych i nawigacja między kontami pomaga skrócić czas i wysiłek wymagany do rozwiązywania problemów.
Pora sprawdzić, w jaki sposób wygląda to w rzeczywistości.
Konfiguracja CloudWatch Cross-Account Observability
Aby umożliwić obserwowalność wielu kont, CloudWatch wprowadził koncepcję monitorowania i kont źródłowych:
- Konto monitorujące to centralne konto AWS, które umożliwia przeglądanie i interakcję z danymi obserwowalności udostępnianymi przez inne konta.
- Konto źródłowe to indywidualne konto AWS, które udostępnia dane i zasoby umożliwiające obserwowanie co najmniej jednemu kontu monitorowania.
Możesz skonfigurować wiele kont monitorowania z wymaganym poziomem widoczności. Obserwowalność wielu kont CloudWatch jest również zintegrowana z organizacjami AWS. Na przykład możesz mieć konto monitorowania z szerokim dostępem do wszystkich kont w swojej organizacji dla centralnych zespołów ds. bezpieczeństwa i operacyjnych, a następnie skonfigurować inne konta monitorowania z bardziej ograniczoną widocznością w jednostce biznesowej dla poszczególnych właścicieli usług.
Najpierw skonfiguruj konto monitorowania. W konsoli CloudWatch wybierz Ustawienia w okienku nawigacji. W sekcji Konfiguracja konta monitorowania wybierz Konfiguruj.
Teraz możesz wybrać, które dane telemetryczne mogą być udostępniane kontu monitorowania: dzienniki, metryki i ślady. Pozostaw wszystkie trzy włączone.
Aby wyświetlić listę kont źródłowych, które będą udostępniać dane temu kontu monitorowania, możesz użyć identyfikatorów kont, identyfikatorów organizacji lub ścieżek organizacji. Możesz użyć identyfikatora organizacji, aby uwzględnić wszystkie konta w organizacji lub ścieżki organizacji, aby uwzględnić wszystkie konta w dziale lub jednostce biznesowej. W tym przypadku masz tylko jedno konto źródłowe do połączenia, więc wpisz identyfikator konta.
Podczas korzystania z konsoli CloudWatch na koncie monitorowania do wyszukiwania i wyświetlania danych telemetrycznych widoczny jest identyfikator konta, które udostępniło te dane. Ponieważ identyfikatory kont nie są łatwe do zapamiętania, możesz wyświetlić bardziej opisową „etykietę konta”. Konfigurując etykietę za pomocą konsoli, możesz wybrać nazwę konta lub adres e-mail służący do jego identyfikacji. Korzystając z adresu e-mail, możesz również wybrać czy dołączyć domenę. Na przykład, jeśli wszystkie adresy e-mail używane do identyfikacji moich kont korzystają z tej samej domeny, użyj jako etykiet adresów e-mail bez tej domeny.
Warto pamiętać, że obserwowalność wielu kont działa tylko w wybranym regionie. Jeśli posiadasz zasoby w wielu regionach, możesz skonfigurować obserwowalność wielu kont w każdym regionie. Aby dokończyć konfigurację konta monitoringu wybierz Konfiguruj.
Konto monitorowania jest teraz włączone. Wybierz Zasoby do łączenia kont, aby określić sposób łączenia Twoich kont źródłowych.
Aby połączyć konta źródłowe w organizacji AWS, możesz pobrać szablon AWS CloudFormation do wdrożenia na delegowanym koncie administracyjnym CloudFormation.
Aby połączyć poszczególne konta, możesz pobrać szablon CloudFormation do wdrożenia na każdym koncie lub skopiować adres URL, który pomaga używać konsoli do konfigurowania kont. Skopiuj adres URL i wklej go do innej przeglądarki, w której jesteś zalogowany jako konto źródłowe. Następnie możesz skonfigurować, które dane telemetryczne mają być udostępniane (dzienniki, metryki lub ślady). Nazwa zasobu Amazon (ARN) konfiguracji konta monitorowania jest wstępnie wypełniona, ponieważ skopiowałeś i wkleiłeś adres URL w poprzednim kroku. Jeśli nie używasz adresu URL, możesz skopiować ARN z konta monitorującego i wkleić go tutaj. Potwierdź etykietę używaną do identyfikacji mswojego konta źródłowego i wybierz Link.
W oknie dialogowym Potwierdź uprawnienia konta monitorowania wpisz Potwierdź, aby zakończyć konfigurację konta źródłowego.
Użycie CloudWatch Cross-Account Observability
Aby zobaczyć, w jaki sposób ta opcja działa z obserwowalnością wielu kont, powinieneś wdrożyć prostą aplikację obsługującą wiele kont, używając dwóch funkcji AWS Lambda, jednej na koncie źródłowym (multi-account-function-a) i jednej na koncie monitorującym (multi-account- funkcja-b). Po uruchomieniu funkcja na koncie źródłowym publikuje zdarzenie w magistrali zdarzeń Amazon EventBridge na koncie monitorowania. Tam reguła EventBridge wyzwala wykonanie funkcji na koncie monitorowania. Jest to uproszczona konfiguracja przy użyciu tylko dwóch kont. Prawdopodobnie Twoje obciążenia będą działać na wielu kontach źródłowych.
W konsoli Lambda dwie funkcje Lambda mają włączone Śledzenie aktywne i Monitorowanie rozszerzone. Do zbierania danych telemetrycznych użyj warstwy Lambda AWS Distro for OpenTelemetry (ADOT). Opcja Ulepszone monitorowanie włącza Amazon CloudWatch Lambda Insights w celu zbierania i agregowania metryk wydajności środowiska wykonawczego funkcji Lambda.
Przygotuj zdarzenie testowe w konsoli Lambda konta źródłowego. Następnie wybierz Test i kilka razy uruchom funkcję.
Teraz pora zrozumieć, co robią komponenty Twojej aplikacji działające na różnych kontach. Zacznij od logów, a następnie przejdź do metryk i śladów.
W konsoli CloudWatch wybierz Grupy dzienników w sekcji Dzienniki panelu nawigacji. Tam wyszukaj grupy dzienników utworzone przez dwie funkcje Lambda działające na różnych kontach AWS. Zgodnie z oczekiwaniami każda grupa dzienników zawiera identyfikator konta i etykietę, z której pochodzą dane. Wybierz obie grupy dzienników i a następnie View in Logs Insights.
Możesz teraz wyszukiwać i analizować logi z różnych kont AWS przy użyciu składni zapytania CloudWatch Logs Insights. Na przykład uruchom proste zapytanie, aby zobaczyć ostatnie dwadzieścia wiadomości w dwóch grupach dzienników. Dołącz pole @log, aby zobaczyć identyfikator konta, do którego należy dziennik.
Mogę teraz również tworzyć reguły Contributor Insights w grupach dzienników dla wielu kont. Pozwala mi to na przykład uzyskać całościowy wgląd w zdarzenia związane z bezpieczeństwem na różnych kontach lub zidentyfikować najdroższe żądania Lambda w aplikacji bezserwerowej działającej na wielu kontach.
Następnie wybierz All metrics w sekcji Metryki w okienku nawigacji. Aby zobaczyć metryki wydajności środowiska wykonawczego funkcji Lambda zebrane przez CloudWatch Lambda Insights, wybierz LambdaInsights, a następnie nazwa_funkcji. Tam szukaj wielu kont i pamięci, aby zobaczyć metryki pamięci. Znowu możesz zobaczyć identyfikatory kont i etykiety, które powiedzą Ci, że te dane pochodzą z dwóch różnych kont. Stąd możesz po prostu wybrać interesujące Cię dane i utworzyć pulpity nawigacyjne i alarmy dla wielu kont. Po wybraniu metryk wybierz opcję Dodaj do pulpitu nawigacyjnego z listy rozwijanej Działania.
Utwórz nowy pulpit nawigacyjny i wybierz typ widżetu Stacked area. Następnie wybierz Dodaj do pulpitu nawigacyjnego
Wykonaj te same czynności dla metryk procesora i pamięci (ale używając różnych typów widżetów), aby szybko utworzyć pulpit nawigacyjny dla wielu kont, w którym możesz zachować kontrolę nad konfiguracją wielu kont.
Na koniec wybierz Mapę usług z sekcji X-Ray traces w okienku nawigacji, aby zobaczyć przepływ mojej aplikacji obsługującej wiele kont. Na mapie usługi klient uruchamia funkcję Lambda na koncie źródłowym. Następnie do innego konta wysyłane jest zdarzenie w celu uruchomienia innej funkcji Lambda.
Na mapie usługi wybierz ikonę ustawień dla funkcji uruchomionej na koncie źródłowym (multi-account-function-a), a następnie View traces, aby obejrzeć poszczególne ślady. Ślady zawierają dane z wielu kont AWS. Możesz wyszukiwać ślady pochodzące z określonego konta, używając składni takiej jak:
service(id(account.id: "123412341234"))
Mapa usług łączy teraz dane telemetryczne z wielu kont w jednym miejscu, zapewniając skonsolidowany widok do monitorowania ich aplikacji dla wielu kont. Pomaga to szybko identyfikować problemy i skraca czas ich rozwiązywania.
Dostępność i ceny
Amazon CloudWatch cross-account observability jest już dostępna we wszystkich komercyjnych regionach AWS przy użyciu konsoli zarządzania AWS, interfejsu wiersza poleceń AWS (CLI) i zestawów SDK AWS. Wsparcie AWS CloudFormation pojawi się w ciągu najbliższych kilku dni. Obserwacja wielu kont w CloudWatch nie wiąże się z dodatkowymi kosztami dzienników i wskaźników, a pierwsza kopia śledzenia jest bezpłatna. Szczegółowe informacje można znaleźć na stronie cennika Amazon CloudWatch.
Posiadanie centralnego punktu widzenia do monitorowania wszystkich używanych kont AWS zapewnia lepsze zrozumienie ogólnych działań i pomaga rozwiązywać problemy z aplikacjami obejmującymi wiele kont.
źródło: AWS