Zarządzanie przechowywaniem logów w AWS: reguły cyklu życia usługi S3 i najlepsze praktyki Terraform

Jednym z najprostszych sposobów na niezauważalny wzrost kosztów usług w chmurze jest przechowywanie logów. Wiele organizacji zdaje sobie sprawę z wagi gromadzenia logów, jeszcze mniej wie, jak optymalizować i wykorzystywać dane uzyskane z logów, a jeszcze mniej wie, jak długo te logi powinny być przechowywane. Ważne jest, aby zrozumieć, jak często Twoja firma uzyskuje dostęp do tych dzienników i czy Twoja obecna strategia przechowywania danych nadal odpowiada potrzebom biznesowym.

Pracując z klientem nad przeglądem naszej strategii rejestrowania danych, odkryliśmy powtarzający się schemat: dane były przechowywane dłużej, niż było to konieczne, koszty przechowywania stale rosły, a w różnych środowiskach nie obowiązywał żaden standardowy cykl życia.

Aby temu zaradzić, opracowaliśmy formalną politykę przechowywania logów opartą na zarządzaniu cyklem życia Amazon S3 i infrastrukturze jako kodzie (IaC). Rezultatem było bardziej spójne podejście do zarządzania logami, obniżenie kosztów przechowywania danych oraz strategia retencji lepiej dostosowana do wymogów operacyjnych i zgodności.

Zacznij od celu, a nie klas pamięci masowej

Jednym z największych błędów, jakie popełniają organizacje, jest zaczynanie od technologii zamiast skupiania się na wymaganiach biznesowych.

Wiele zasad przechowywania danych opiera się na scenariuszach „co by było, gdyby”:

Choć pytania te są zasadne, często skutkują przechowywaniem wszystkiego w nieskończoność.

Zamiast tego zacznij od kilku prostych pytań:

Choć różni się to w zależności od firmy, w wielu przypadkach zespoły odkrywają, że dostęp do dzienników starszych niż kilka miesięcy jest rzadki i mają one ograniczoną wartość operacyjną. Są tam dla bezpieczeństwa, a zanim się obejrzysz, masz terabajty i terabajty niechcianej, generującej koszty przestrzeni i bałaganu

Końcowym celem powinno być przechowywanie dzienników na tyle długo, aby móc je wykorzystywać do celów dochodzeniowych, rozwiązywania problemów, zapewniania zgodności i audytów, unikając przy tym niepotrzebnych kosztów przechowywania.

Różne środowiska mają różne potrzeby

Nie każde środowisko wymaga takiego samego okresu przechowywania.

Rejestry produkcyjne często stanowią podstawę audytów, reagowania na incydenty i dochodzeń dotyczących bezpieczeństwa. Dzienniki rozwoju służą zazwyczaj do krótkoterminowego debugowania i zazwyczaj można je przechowywać przez znacznie krótszy czas.

Nasza strategia retencji została opracowana w oparciu o wymagania specyficzne dla danego środowiska. Poniżej znajduje się przykład, jak to może wyglądać.

Produkcja

Retencja: 12 miesięcy

Dzienniki produkcyjne wymagają najdłuższego przechowywania, ponieważ obsługują:

Strategia cyklu życia:

Zapewnienie jakości

Przechowywanie: 90 dni

Dzienniki QA służą przede wszystkim do:

Strategia cyklu życia:

Rozwój

Przechowywanie: 30 dni

Rejestry rozwoju służą przede wszystkim do:

Strategia cyklu życia:

Dzięki dostosowaniu retencji do każdego środowiska uniknęliśmy stosowania kosztownych wymagań dotyczących retencji na poziomie produkcyjnym tam, gdzie nie było to potrzebne.

Wybór odpowiednich klas pamięci masowej S3

Amazon S3 oferuje kilka klas pamięci masowej, z których każda została zaprojektowana dla różnych wzorców dostępu.

Kluczową lekcją jest to, że wybór klasy pamięci masowej powinien być podyktowany rzeczywistym wykorzystaniem, a nie założeniami.

Oto kilka pytań, które warto rozważyć:

W naszym przypadku użycia:

Standard S3

Używane w przypadku nowo utworzonych dzienników produkcyjnych, do których natychmiastowy dostęp jest istotny.

S3 Standard-IA

Stosowane w przypadkach, gdy dostęp do dzienników jest nadal okazjonalny, ale nie jest już wymagany pilny charakter standardów.

S3 Glacier Elastyczne pobieranie

Używane do długoterminowej archiwizacji, do której dostęp jest rzadki, ale w razie potrzeby możliwe jest odzyskanie danych.

AWS udostępnia pełne zestawienie dostępnych klas pamięci masowej S3 i ich wad i zalet, które można znaleźć tutaj:
https://aws.amazon.com/s3/storage-classes/

Infrastruktura jako kod ułatwia zarządzanie

Polityka przechowywania danych ma wartość jedynie wtedy, gdy jest konsekwentnie egzekwowana.

Zamiast ręcznie konfigurować reguły cyklu życia w różnych środowiskach, wdrożyliśmy nasze zasady cyklu życia przy użyciu Terraform.

Przyniosło to szereg korzyści:

Dzięki Infrastrukturze jako Kodowi zarządzanie retencją przekształciło się z jednorazowego zadania konfiguracji w powtarzalny proces operacyjny.

Chroń się przed błędami

Zasady cyklu życia automatyzują usuwanie i przechodzenie między magazynowaniem. To sprawia, że są potężne, ale także potencjalnie niebezpieczne.

Przed włączeniem automatycznego wygasania i przejść:

Kontrola wersji zapewnia dodatkową warstwę ochrony przed przypadkowym usunięciem lub błędnie skonfigurowanymi regułami cyklu życia.

Test przed produkcją

Przed wdrożeniem wdrożyliśmy prosty proces walidacji:

  1. Utwórz dedykowany kontener programistyczny.
  2. Archiwizuj logi rozwoju w kontenerze.
  3. Zastosuj proponowane zasady cyklu życia.
  4. Sprawdź poprawność przejść między klasami pamięci masowej.
  5. Sprawdź zachowanie daty wygaśnięcia.
  6. Udokumentuj wyniki.
  7. Uzyskaj zgodę przed przejściem do innych grup programistycznych,
  8. Awansuj do wyższych środowisk

Dzięki temu podejściu mogliśmy wcześnie identyfikować problemy z konfiguracją, minimalizując jednocześnie ryzyko.

Sprawy zarządzania

Za przechowywanie dziennika nie powinien odpowiadać pojedynczy inżynier.

Skuteczna polityka retencji wymaga współpracy między:

Jasna struktura własności pomaga zapewnić, że okresy przechowywania danych są zgodne z wymogami biznesowymi i regulacyjnymi w miarę rozwoju systemów.

Ostatnie myśli

Najbardziej efektywna polityka przechowywania logów niekoniecznie oznacza taką, która zapewnia ich najdłuższe przechowywanie.

To jest ten, który równoważy:

Organizacje często przechowują dane ze względu na hipotetyczne przyszłe potrzeby, a nie ze względu na rzeczywiste wymagania biznesowe. Dzięki zrozumieniu sposobu wykorzystania dzienników, dostosowaniu okresów przechowywania do potrzeb konkretnego środowiska, wykorzystaniu odpowiednich klas pamięci masowej S3 i przejść między pamięciami masowymi oraz wdrażaniu zasad za pośrednictwem IaC zespoły mogą znacząco obniżyć koszty pamięci masowej, zachowując jednocześnie widoczność, której faktycznie potrzebują.

Co najważniejsze, pamiętaj, że każda organizacja jest inna. Opisana tutaj strategia cyklu życia sprawdziła się w naszym przypadku, ale okresy przechowywania, klasy pamięci masowej i harmonogramy archiwizacji zawsze powinny być określone na podstawie własnych wymagań operacyjnych i zobowiązań dotyczących zgodności.

Autor

Chase Hollander
Programista AEM w Arbory Digital

Certyfikowany specjalista Agile, programista i konsultant z doświadczeniem w AEM

Skontaktuj się z Chase na Linkedin

Podoba Ci się to co słyszałeś? Masz pytania dotyczące tego, co jest dla Ciebie odpowiednie? Chętnie porozmawiamy! Skontaktuj się z nami

Blogi

category
Blog
tags
observability,logs,savings,compliance,productivity,devops,terraform,policy
number of rows
1