Użyj usługi AWS Fault Injection Service, aby zademonstrować odporność aplikacji obejmujących wiele regionów i wiele stref AZ

30 listopada 2023

Usługa AWS Fault Injection Service (FIS) pomaga wdrożyć inżynierię chaosu w praktyce na dużą skalę. Dzisiaj AWS wprowadza nowe scenariusze, które pozwolą Ci wykazać, że Twoje aplikacje działają zgodnie z oczekiwaniami, jeśli w strefie dostępności AWS nastąpi pełna przerwa w dostawie prądu lub utracona zostanie łączność z jednego regionu AWS do drugiego.

Scenariuszy można używać do przeprowadzania eksperymentów, które pozwolą zyskać pewność, że aplikacja (w jednym lub wielu regionach) będzie działać zgodnie z oczekiwaniami. Gdy coś pójdzie nie tak, pomogą lepiej zrozumieć zależności bezpośrednie i pośrednie oraz przetestują czas odzyskiwania. Po przetestowaniu aplikacji i upewnieniu się, że działa zgodnie z oczekiwaniami, możesz wykorzystać wyniki eksperymentu do celów zapewnienia zgodności. W połączeniu z innymi częściami AWS Resilience Hub, FIS może pomóc w pełnym zrozumieniu ogólnego stanu odporności aplikacji.

Wprowadzenie do scenariuszy

W 2021 roku AWS wprowadził FIS, aby pomóc Ci w przeprowadzaniu kontrolowanych eksperymentów w aplikacjach AWS. W artykule, który napisano by ogłosić tę premierę, pokazano, jak tworzyć szablony eksperymentów i wykorzystywać je do przeprowadzania eksperymentów. Eksperymenty są budowane przy użyciu potężnych akcji niskiego poziomu, które wpływają na określone grupy zasobów AWS określonego typu. Na przykład następujące akcje działają na instancjach EC2 i grupach automatycznego skalowania:

Usługa AWS Fault Injection Service (FIS)

Wykorzystując te działania jako elementy składowe, niedawno uruchomiono AWS FIS Scenario Library. Każdy scenariusz w bibliotece definiuje zdarzenia lub warunki, których można użyć do przetestowania odporności aplikacji:

Wykorzystując te działania jako elementy składowe, niedawno uruchomiono AWS FIS Scenario Library. Każdy scenariusz w bibliotece definiuje zdarzenia lub warunki, których można użyć do przetestowania odporności aplikacji:

Każdy scenariusz służy do utworzenia szablonu eksperymentu. Możesz używać scenariuszy w niezmienionej postaci lub możesz przyjąć dowolny szablon jako punkt wyjścia i dostosować go lub ulepszyć według potrzeb.

Scenariusze mogą być ukierunkowane na zasoby na tym samym koncie AWS lub na innych kontach AWS:

Scenariusze mogą być ukierunkowane na zasoby na tym samym koncie AWS lub na innych kontach AWS:

Nowe scenariusze

Mając to wszystko na uwadze, pora przyjrzeć się nowym scenariuszom.

AZ Availability: Power Interruption – ten scenariusz tymczasowo „odłącza” docelowy zestaw zasobów w pojedynczej Strefie Dostępności (Availability Zone), w tym instancje EC2 (w tym te w klastrach EKS i ECS), woluminy EBS, Auto Scaling Groups, podsieci VPC, klastry Amazon ElastiCache for Redis i Amazon Relational Database Service (RDS). W większości przypadków uruchomisz go w aplikacji, która ma zasoby w więcej niż jednej strefie dostępności, ale możesz uruchomić go w pojedynczej aplikacji AZ, której oczekiwanym skutkiem będzie awaria. Jest ukierunkowany na pojedynczą strefę AZ, a także pozwala uniemożliwić określonemu zestawowi ról IAM lub grupom automatycznego skalowania możliwość uruchamiania nowych instancji lub uruchamiania zatrzymanych instancji podczas eksperymentu.

Dzięki nowemu doświadczeniu New actions and targets experience łatwo jest zobaczyć wszystko na pierwszy rzut oka – akcje w scenariuszu i typy zasobów AWS, na które wpływają:

Dzięki nowemu doświadczeniu New actions and targets experience łatwo jest zobaczyć wszystko na pierwszy rzut oka – akcje w scenariuszu i typy zasobów AWS, na które wpływają:

Scenariusze zawierają parametry służące do dostosowywania szablonu eksperymentu:

Scenariusze zawierają parametry służące do dostosowywania szablonu eksperymentu:

Advanced parameters – targeting tags pozwalają kontrolować klucze i wartości tagów, które będą używane do lokalizowania zasobów objętych eksperymentami:

Advanced parameters – targeting tags pozwalają kontrolować klucze i wartości tagów, które będą używane do lokalizowania zasobów objętych eksperymentami:

Cross-Region: Connectivity – ten scenariusz uniemożliwia aplikacji w regionie testowym uzyskanie dostępu do zasobów w regionie docelowym. Obejmuje to ruch z instancji EC2, zadań ECS, podów EKS i funkcji Lambda podłączonych do VPC. Obejmuje również ruch przepływający przez Transit Gateways i połączenia VPC, a także replikację międzyregionalną S3 i DynamoDB. Scenariusz wygląda tak:

Cross-Region: Connectivity – ten scenariusz uniemożliwia aplikacji w regionie testowym uzyskanie dostępu do zasobów w regionie docelowym. Obejmuje to ruch z instancji EC2, zadań ECS, podów EKS i funkcji Lambda podłączonych do VPC. Obejmuje również ruch przepływający przez Transit Gateways i połączenia VPC, a także replikację międzyregionalną S3 i DynamoDB. Scenariusz wygląda tak:

Ten scenariusz działa przez 3 godziny (chyba że zmienisz parametr DisruptionDuration) i izoluje region testowy od regionu docelowego w określony sposób, z zaawansowanymi parametrami do kontrolowania tagów używanych do wybierania zasobów AWS, których dotyczy problem, w izolowanym regionie:

Ten scenariusz działa przez 3 godziny (chyba że zmienisz parametr DisruptionDuration) i izoluje region testowy od regionu docelowego w określony sposób, z zaawansowanymi parametrami do kontrolowania tagów używanych do wybierania zasobów AWS, których dotyczy problem, w izolowanym regionie:

Może się również okazać, że akcje Disrupt i Pause użyte w tym scenariuszu są przydatne same w sobie:

Może się również okazać, że akcje Disrupt i Pause użyte w tym scenariuszu są przydatne same w sobie:

Na przykład akcja aws:s3:bucket-pause-replication może zostać użyta do wstrzymania replikacji w regionie.

Warto wiedzieć

Oto kilka rzeczy, które warto wiedzieć na temat nowych scenariuszy:

  • Regiony — nowe scenariusze są dostępne we wszystkich komercyjnych regionach AWS, w których dostępny jest FIS, bez dodatkowych kosztów.
  • Ceny – płacisz za minuty akcji wykorzystane w ramach przeprowadzanych eksperymentów; więcej informacji znajdziesz na stronie z cennikiem usługi AWS Fault Injection Service Pricing.
  • Nazewnictwo – ta usługa nosiła wcześniej nazwę AWS Fault Injection Simulator.

źródło:AWS

Case Studies
Referencje

Firma Hostersi pozwoliła nam osadzić ogólne zagadnienia programu Well Architected Framework w kontekście naszej firmy. Oszczędziło nam to wiele czasu i pozwoliło znaleźć lepiej dopasowane rozwiązania do specyfiki naszego biznesu. WAF był świetnym katalizatorem do wprowadzenie szeregu zmian w obszarze niezawodności, szybkości i bezpieczeństwa edrone. 

Piotr Stachowicz
CTO
W skrócie o nas
Specjalizujemy się w dostarczaniu rozwiązań IT w obszarach projektowania infrastruktury serwerowej, wdrażania chmury obliczeniowej, opieki administracyjnej i bezpieczeństwa danych.