Wydajność i optymalizacja zasobów

Wdrażanie aplikacji na AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Wolno i drogo

  • Aplikacja zwalnia podczas skoków ruchu
  • W tym samym miesiącu rachunek za Lambda gwałtownie rośnie
  • Strojenie sprawia, że działa szybciej i taniej

Wskaźnik szybkości i kosztów pokazujący funkcję, która jest zarówno wolna, jak i droga — ze wskazaniem na optymalizację

Wdrażanie aplikacji na AWS

Współbieżność: koszty a zimne starty


Zarezerwowana: limit i gwarancja

  • Ogranicza i gwarantuje pojemność funkcji
  • Najtańszy sposób kontroli, ale nie eliminuje zimnych startów

Dostarczona: płacisz za gotowość

  • Utrzymuje wstępnie rozgrzane instancje — bez zimnych startów
  • Kosztuje więcej; stosuj tylko tam, gdzie opóźnienie naprawdę ma znaczenie
Wdrażanie aplikacji na AWS

Dobieranie pamięci za pomocą krzywej koszt–czas

Krzywa koszt–czas wykonania w zależności od pamięci: linia czasu opada, a potem się spłaszcza; łączny koszt tworzy kształt litery U z zaznaczonym optymalnym ustawieniem pamięci

  • Więcej pamięci = więcej CPU = krótszy czas wykonania
  • Koszt = cena pamięci × czas wykonania
  • Najtańszy punkt jest często pośrodku
  • Profiluj przy różnych rozmiarach, a potem wybierz
Wdrażanie aplikacji na AWS

Buforowanie na poziomie aplikacji

  • Ponownie wykorzystuj pracę w kontekście wykonania
  • Rozgrzana Lambda zachowuje zmienne globalne między wywołaniami
  • Buforuj konfigurację, klientów i często odpytywane dane
  • ElastiCache do wspólnej pamięci podręcznej między instancjami

Buforowanie w kontekście wykonania Lambda: obiekt klienta ponownie używany między ciepłymi wywołaniami oraz klaster ElastiCache współdzielący często odpytywane dane między wieloma instancjami funkcji

Wdrażanie aplikacji na AWS

Buforowanie brzegowe w CloudFront

  • CloudFront: buforuje odpowiedzi w lokalizacjach brzegowych
  • Obsługuje ponowne żądania bez obciążania backendu
  • Klucze pamięci podręcznej mogą obejmować nagłówki, ciągi zapytań i ciasteczka
  • Treści statyczne i buforowalne skalują się bez dodatkowych kosztów

Buforowanie brzegowe CloudFront: globus z lokalizacjami brzegowymi obsługującymi buforowane odpowiedzi dla pobliskich użytkowników bez angażowania backendu; konfiguracja kluczy pamięci podręcznej z nagłówkami i ciągami zapytań

Wdrażanie aplikacji na AWS

Wybór odpowiedniej warstwy pamięci podręcznej

Trzy warstwy pamięci podręcznej: CloudFront na brzegu dla treści statycznych i powszechnie udostępnianych, pamięć podręczna per instancja dla często używanych obiektów oraz ElastiCache lub DAX dla współdzielonych odczytów o wysokiej częstotliwości

  • Brzeg (CloudFront): treści statyczne, powszechnie udostępniane
  • Aplikacja (pamięć operacyjna): często używane obiekty per instancja
  • Dane (ElastiCache/DAX): współdzielone, częste odczyty
  • Łącz warstwy — każda ogranicza inne koszty
Wdrażanie aplikacji na AWS

Optymalizacja — podsumowanie

  • Dobierz pamięć na podstawie krzywej koszt–czas
  • Stosuj dostarczoną współbieżność tylko tam, gdzie opóźnienie ma znaczenie
  • Buforuj na poziomie brzegu, aplikacji i danych
  • Mierz, zmieniaj jedną rzecz, mierz ponownie

Podsumowanie optymalizacji: krzywa koszt–czas do dobierania pamięci, decyzja o dostarczonej współbieżności, diagram trzech warstw pamięci podręcznej oraz cykl mierz–zmień–mierz

Wdrażanie aplikacji na AWS

Czas na praktykę!

Wdrażanie aplikacji na AWS

Preparing Video For Download...