Użyj narzędzi AWS Backup i CI/CD, aby zautomatyzować scentralizowane tworzenie kopii zapasowych w usługach AWS

18 października 2022

Automatyzacja i skalowanie strategii ochrony danych i tworzenia kopii zapasowych pomaga zredukować koszty ręczne, związane z czasochłonną konfiguracją, minimalizuje ryzyko błędów, zapewnia wgląd w wykrywanie dryfu i poprawia zgodność z zasadami tworzenia kopii zapasowych w rozproszonych obciążeniach lub kontach AWS.

Włączenie kopii zapasowej do planu odzyskiwania po awarii (DR) i planu ciągłości biznesowej (BCP), wraz z automatyzacją operacji tworzenia kopii zapasowych, to ważne i najlepsze rozwiązania w zakresie bezpieczeństwa, które zabezpieczają dane kopii zapasowych i operacje w AWS.

Organizacje wykorzystują nowoczesne praktyki tworzenia oprogramowania, takie jak ciągła integracja (CI), aby wdrażać częste, niezawodne i przyrostowe zmiany kodu oraz ciągłe dostarczanie (CD), aby szybko i bezproblemowo dostarczać kod. Przepływy pracy CI/CD są aranżowane przez potok, aby zautomatyzować kroki w procesie dostarczania oprogramowania w oparciu o zdefiniowane modele procesu wydania, takie jak inicjowanie automatycznych kompilacji w przypadku zmiany kodu, a następnie wdrażanie w Amazon Elastic Container Service (Amazon ECS).

W poprzednich artykułach autorzy omówili, w jaki sposób można zautomatyzować scentralizowane tworzenie kopii zapasowych na dużą skalę przy użyciu infrastruktury AWS Backup i AWS CloudFormation jako kodu (IaC). Z kolei dzięki temu artykułowi dowiesz się, jak dostosować się do nowoczesnych praktyk tworzenia oprogramowania, aby skalować operacje tworzenia kopii zapasowych za pomocą narzędzi AWS CI/CD i AWS Backup jako w pełni zarządzanej usługi tworzenia kopii zapasowych w celu scentralizowania i skalowania tworzenia kopii zapasowych danych w usługach AWS. Korzystając z tego rozwiązania, możesz zbudować i wdrożyć strategię ochrony danych w chmurze, aby centralnie zautomatyzować i skalować proces wdrażania zasad AWS Backup oraz replikacji międzyregionalnej i międzykontowej w środowisku AWS z wieloma kontami przy użyciu nowoczesnego oprogramowania praktyki zmniejszające ryzyko utraty danych.

Omówienie rozwiązania

Architektura wykorzystuje organizacje AWS do centralnego zarządzania i programowego skalowania kopii zapasowych danych w usługach AWS. Składa się z co najmniej czterech kont: delegowanego konta administratora CloudFormation, konta AWS Organizations Management, scentralizowanego konta kopii zapasowych i wielu kont członkowskich należących do tej samej organizacji. Do wdrożenia rozwiązania używa się AWS CodeCommit do zarządzanej usługi kontroli źródła, AWS CodeBuild do ciągłej integracji, AWS CodeDeploy do automatycznego wdrażania kodu, AWS CodePipeline do ciągłego dostarczania, CloudFormation jako narzędzia IaC oraz AWS Backup jako w pełni zarządzanej usługi tworzenia kopii zapasowych wdrażających backup danych w usługach AWS.

Użyj narzędzi AWS Backup i CI/CD, aby zautomatyzować scentralizowane tworzenie kopii zapasowych w usługach AWS

Rozwiązanie zapewnia metodę wdrażania opartą na CI/CD do wdrażania tworzenia kopii zapasowych i odzyskiwania za pomocą AWS Backup w całej organizacji AWS obejmującej wiele kont i regionów. Używa zarządzanego przez usługę StackSet do konfigurowania AWS Backup na kontach w określonych jednostkach organizacyjnych (OU) AWS. Nowe konta dodane do docelowych jednostek organizacyjnych zostaną automatycznie skonfigurowane przy użyciu rozwiązania opisanego w tym artykule.

Rozwiązanie zawiera następujące funkcje:

  • Szablony CloudFormation do konfiguracji podstawowej architektury rozwiązania.
  • CodePipeline do organizowania i automatyzacji zarządzania, testowania i wdrażania komponentów rozwiązania.
  • Niestandardowy zasób CloudFormation wspierany przez AWS Lambda do zarządzania zasadami AWS Backup w celu zdefiniowania sposobu tworzenia kopii zapasowych zasobów za pomocą planów tworzenia kopii zapasowych.
  • Funkcja Lambda do automatycznego ponownego przypisywania tagów do przywróconych zasobów z AWS Backup.
  • Zasobnik Amazon Simple Storage Service (Amazon S3) do scentralizowanego i automatycznego wdrażania funkcji Lambda na kontach członkowskich i regionach.
  • Projekt CodeBuild do statycznej analizy bezpieczeństwa szablonów CloudFormation przy użyciu cfn_nag do wyszukiwania wzorców, które mogą wskazywać na niezabezpieczoną infrastrukturę.
  • Projekty CodeBuild do pakowania i wdrażania funkcji Lambda rozwiązania.
  • AWS Backup Vault, klucz AWS Key Management System (AWS KMS) oraz rola usługi AWS Identity and Access Management (IAM) do wdrażania zasobów AWS Backup na każdym koncie członkowskim i regionie.
  • AWS Backup Vault, klucz KMS i rola usługi IAM dla scentralizowanych zasobów AWS Backup w celu zapewnienia dodatkowego magazynu kopii zapasowych na wszystkich kontach i regionach.
  • Przykładowa polityka kontroli usług organizacji AWS w celu ograniczenia udostępniania i kopiowania skarbców AWS Backup tylko do kont AWS w organizacji AWS.

Autorzy zalecają zmodyfikowanie i dostosowanie tego rozwiązania do własnych potrzeb. Opcjonalnie możesz wdrożyć to rozwiązanie w Customizations for AWS Control Tower.

Kod źródłowy i najnowsze instrukcje dotyczące rozwiązania można pobrać z repozytorium GitHub.

Wymagania wstępne

Do wdrożenia rozwiązania wymagane są następujące wymagania wstępne:

  1. Twoje konta AWS muszą należeć do tej samej organizacji (zobacz dokumentację dotyczącą Organizacji AWS).
  2. Podstawowa znajomość CloudFormation StackSets, funkcji Lambda, Pythona oraz konfigurowania potoku CI/CD na AWS.
  3. Posiadanie zainstalowanej najnowszej wersji AWS CLI lub AWS CloudShell. Aby korzystać z interfejsu AWS CLI, zaleca się przyjęcie roli na kontach docelowych.
  4. Zaakceptuj korzystanie z AWS Backup. Jeśli po raz pierwszy korzystasz z usługi AWS Backup, musisz wyrazić zgodę na korzystanie z funkcji AWS Backup i zarządzania wieloma kontami za pomocą Konsoli zarządzania AWS lub interfejsu CLI. Aby uzyskać dodatkowe informacje, zapoznaj się z dokumentacją dotyczącą wyrażenia zgody na korzystanie z usługi AWS Backup.
  5. Sprawdź, czy wymagania wstępne rozwiązania w repozytorium rozwiązań GitHub są spełnione.

Przegląd

Twórcy zalecają rozwidlenie repozytorium GitHub dla rozwiązania, a następnie sklonowanie rozwidlonego repozytorium GitHub. Umożliwi to otrzymywanie i stosowanie aktualizacji wdrożonego rozwiązania, jeśli z czasem ulegnie ono zmianie.

Wdróż rozwiązanie, wykonując następujące kroki. W każdym kroku znajduje się łącze, które szczegółowo opisuje polecenia, które należy wykonać:

  1. Skonfiguruj centralne konto kopii zapasowej: Spowoduje to wdrożenie skarbca AWS Backup i powiązanych zasobów rozwiązania do przechowywania kopii zapasowych dla wszystkich kont organizacji AWS uczestniczących w rozwiązaniu. Zapewnia to dodatkową, izolowaną ochronę przed awarią kopii zapasowych, poprawiając bezpieczeństwo i odporność architektury kopii zapasowych AWS.
  2. Skonfiguruj konto domowe rozwiązania: Musisz wybrać konto domowe rozwiązania i region. To konto i region będą zawierać repozytorium CodePipeline i CodeCommit oraz umożliwią CI/CD niestandardowego zasobu BackupOrgPolicyManager CloudFormation używanego do zarządzania i wdrażania zasad tworzenia kopii zapasowych AWS Organizations przy użyciu podejścia Infrastructure as Code. Rozwiązanie używa SSM do wyszukiwania informacji o konfiguracji, takich jak docelowe jednostki organizacyjne AWS zawierające konta AWS, które będą uczestniczyć w rozwiązaniu. Zaleca się, aby najpierw określić testową jednostkę organizacyjną AWS jako cel, aby umożliwić przetestowanie rozwiązania przed szerszym wdrożeniem w wielu jednostkach organizacyjnych.
  3. Skonfiguruj rolę BackupOrgPolicyManagerOrgAdmin IAM: Funkcja BackupOrgPolicyManager AWS Lambda przyjmuje rolę BackupOrgPolicyManagerOrgAdmin na koncie AWS Organizations Management w celu zarządzania zasadami tworzenia kopii zapasowych dla organizacji AWS. Musisz wdrożyć rolę BackupOrgPolicyManagerOrgAdmin na swoim koncie zarządzania organizacjami AWS, aby konto główne rozwiązania mogło przejąć tę rolę w celu zarządzania zasadami tworzenia kopii zapasowych organizacji AWS.

Użycie

Po wykonaniu kroku 2 rozwiązania CodePipeline zostaną automatycznie wykonane i nie powiodą się, dopóki krok 3 nie zostanie zakończony. Powinieneś przejrzeć i zaktualizować szablon CloudFormation aws-backup-org-policy zintegrowany i wdrożony z rozwiązaniem CodePipeline, aby wdrożyć żądaną politykę kopii zapasowych AWS. Ten przykład implementuje następujące właściwości zasad:

  • Dla wszystkich obsługiwanych zasobów w regionach docelowych i docelowych jednostkach organizacyjnych, które są oznaczone kopią zapasową klucza znacznika i wartością znacznika codziennie, wykonaj kopię zapasową w nocy o godzinie 05:00 UTC. Okres przechowywania kopii zapasowej wynosi 35 dni. Kopie zapasowe zostaną również skopiowane do wybranego centralnego skarbca kopii zapasowych. Jeśli kopia zapasowa nie zostanie ukończona w ciągu 1200 (20 godzin), zostanie anulowana.
  • W przypadku wszystkich obsługiwanych zasobów w regionach docelowych i docelowych jednostkach organizacyjnych, które są oznaczone co miesiąc kopią zapasową klucza tagu i wartością tagu, wykonaj comiesięczną kopię zapasową o godzinie 05:00 UTC pierwszego dnia każdego miesiąca. Kopia zapasowa będzie miała okres przechowywania 366 dni. Kopie zapasowe zostaną również skopiowane do wybranego centralnego skarbca kopii zapasowych. Jeśli kopia zapasowa nie zostanie ukończona w ciągu 1200 (20 godzin), zostanie anulowana.

Niestandardowy zasób BackupOrgPolicyManager CloudFormation rozwiązania ułatwia centralne zarządzanie zasadami tworzenia kopii zapasowych przy użyciu podejścia CI/CD, IaC. Jak pokazano w tym przykładzie, można udostępnić wiele wystąpień tego zasobu niestandardowego, dzięki czemu można wdrożyć wiele zasad tworzenia kopii zapasowych o różnych właściwościach.

Po wprowadzeniu zmian w szablonie aws-backup-org-policy CloudFormation możesz zatwierdzić swoje zmiany w repozytorium CodeCommit, aby automatycznie zainicjować rozwiązanie CodePipeline w celu przetestowania i wdrożenia zasad tworzenia kopii zapasowych.

Powinieneś być w stanie potwierdzić ukończoną inicjację potoku (widoczną na zielono), podobną do obrazu na poniższym rysunku na koncie głównym rozwiązania.

Użyj narzędzi AWS Backup i CI/CD, aby zautomatyzować scentralizowane tworzenie kopii zapasowych w usługach AWS

Jeśli wdrożyłeś przykładowy szablon, powinieneś również być w stanie potwierdzić dwie zasady tworzenia kopii zapasowych podobne do poniższego rysunku zaimplementowane na koncie zarządzania.

Dostosowywanie zasad tworzenia kopii zapasowych za pomocą niestandardowego zasobu BackupOrgPolicyManager AWS CloudFormation

Dostosowywanie zasad tworzenia kopii zapasowych za pomocą niestandardowego zasobu BackupOrgPolicyManager AWS CloudFormation

Niestandardowy zasób BackupOrgPolicyManager CloudFormation umożliwia definiowanie zasad tworzenia kopii zapasowych dla różnych jednostek organizacyjnych i regionów w organizacji AWS. Zaleca się utworzenie osobnego zasobu niestandardowego dla każdej zasady tworzenia kopii zapasowych. Umożliwi to wprowadzanie mniejszych, przyrostowych zmian w zasadach tworzenia kopii zapasowych. Przykład szablonu CloudFormation aws-backup-org-policy zintegrowany z rozwiązaniem open source jest zgodny z tym podejściem. Możesz także utworzyć osobne zasoby niestandardowe dostosowane do jednostek organizacyjnych. Na przykład możesz mieć jednostkę organizacyjną z innym harmonogramem tworzenia kopii zapasowych i wymaganiami dotyczącymi przechowywania. Możesz zdefiniować osobne zasoby niestandardowe dla każdego z nich, aby oddzielnie zarządzać dla nich zasadami tworzenia kopii zapasowych za pośrednictwem CloudFormation. Podczas definiowania zasad należy zwrócić uwagę na wpływ dziedziczenia zdefiniowanych zasad tworzenia kopii zapasowych, aby upewnić się, że przyniosą pożądany efekt.

Porządkowanie

Aby uniknąć ponoszenia opłat w przyszłości, usuń zasoby. Najpierw usuń instancje stosu, a następnie usuń StackSets z konsoli AWS CloudFormation lub interfejsu wiersza polecenia. Aby obniżyć koszty, wyczyść kopie zapasowe, które nie są już potrzebne do odzyskiwania lub przechowywania. Możesz użyć AWS Backup i Amazon Data Lifecycle Manager, aby zautomatyzować zasady przechowywania dla części kopii zapasowych.

Podsumowanie

Za pomocą tego artykułu autorzy przedstawili, jak wdrożyć i zautomatyzować strategię ochrony danych i tworzenia kopii zapasowych przy użyciu nowoczesnych praktyk tworzenia oprogramowania CI/CD w celu zarządzania zasadami tworzenia kopii zapasowych w całej organizacji za pomocą AWS Backup. Pokazali, jak zastosować zasady tworzenia kopii zapasowych z delegowanego konta administratora, aby skalować i zarządzać kopiami zapasowymi w usługach AWS na kontach członkowskich.

Automatyzacja tworzenia kopii zapasowych przy użyciu potoków CI/CD jest ważna dla implementacji częstych, niezawodnych i przyrostowych zmian kodu z szybkim i bezproblemowym dostarczaniem kodu. Automatyzacja zmniejsza obciążenie ręczne, zapewnia centralną kontrolę źródła kodu, ciągłą integrację i wdrażanie oraz zwiększa zgodność z zasadami tworzenia kopii zapasowych na dużą skalę.

Kompleksowa strategia tworzenia kopii zapasowych jest istotną częścią planu ochrony danych organizacji, aby wytrzymać, odzyskać i ograniczyć wszelkie skutki, które mogą wystąpić w wyniku zdarzenia związanego z bezpieczeństwem. Należy zdefiniować rozbudowaną strategię tworzenia kopii zapasowych ze szczegółowymi planami tworzenia kopii zapasowych i przydziałami zasobów, aby odzwierciedlić zasady ochrony danych w przedsiębiorstwie. Automatyzacja i wdrażanie zasad tworzenia kopii zapasowych lub planów tworzenia kopii zapasowych w całej organizacji przy użyciu metod wdrażania CI/CD umożliwia standaryzację i skalowanie strategii tworzenia kopii zapasowych w celu ograniczenia ryzyka utraty danych.

Aby rozpocząć korzystanie z AWS Backup w konsoli, odwiedź konsolę AWS Backup.

źródło: AWS

Case Studies
Referencje

Bardzo profesjonalne podejście, niesamowicie szybki czas reakcji i bardzo miła obsługa sprawiły, że na pewno podejmiemy jeszcze współpracę. 

Marcin Krzaczkowski
Założyciel Automa.Net
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.