Podstawy ochrony danych: jak wykonać kopię zapasową zasobnika Amazon S3
Amazon S3 to niezawodny magazyn-chmura oferowany przez Amazon Web Services (AWS). Pliki są przechowywane jako obiekty w zasobnikach Amazon S3. Usługa ta jest powszechnie wykorzystywana do przechowywania kopii zapasowych danych ze względu na wysoką niezawodność Amazon S3. W przeciwieństwie do usługi Amazon Elastic Block Storage (EBS), w której dane redundantne są przechowywane w jednej strefie dostępności, w Amazon S3 dane redundantne są rozdzielane między wiele stref dostępności.
Jeśli centrum danych w jednej strefie stanie się niedostępne, można uzyskać dostęp do danych w innej strefie. W niektórych przypadkach może zaistnieć potrzeba wykonania kopii zapasowej danych przechowywanych w zasobnikach Amazon S3, aby uniknąć utraty danych spowodowanej błędem ludzkim lub awarią oprogramowania. Dane mogą zostać usunięte lub uszkodzone, jeśli użytkownik mający dostęp do zasobnika S3 usunie dane lub je uszkodzi, wprowadzając niepożądane zmiany. Awaria oprogramowania może spowodować podobne skutki.
Przechowywanie wersji w Amazon S3
Przechowywanie wersji obiektów to skuteczna funkcja serwisu Amazon S3, która chroni dane przechowywane w zasobniku przed uszkodzeniem, wprowadzeniem niepożądanych zmian oraz usunięciem. Gdy wprowadzane są zmiany w pliku (przechowywanym jako obiekt w S3), tworzona jest nowa wersja tego obiektu. W zasobniku przechowywane są różne wersje tego samego obiektu. Można uzyskać dostęp do poprzednich wersji obiektu i je przywrócić. Jeśli obiekt zostanie usunięty, zostanie na niego nałożony „znacznik usunięcia”, ale można cofnąć tę czynność i otworzyć poprzednią wersję obiektu sprzed usunięcia. Funkcję przechowywania wersji w usłudze Amazon S3 można wykorzystywać bez dodatkowego oprogramowania do tworzenia kopii zapasowej S3.
Za pomocą polityki cyklu życia można określić, jak długo wersje powinny być przechowywane w zasobniku S3, aby uzyskać swego rodzaju kopię zapasową do usługi Amazon S3. Dodatkowe koszty przechowywania kolejnych wersji nie powinny być wysokie, jeśli odpowiednio skonfigurujesz politykę cyklu życia, a nowe wersje zastępują najstarsze. Stare wersje można usunąć lub przenieść do bardziej ekonomicznego magazynu (na przykład do przechowywania typu „cold storage”) w celu optymalizacji kosztów.
Jak włączyć przechowywanie wersji w AWS S3
Zaloguj się do konsoli zarządzania AWS, korzystając z konta o odpowiednich uprawnieniach. Kliknij Services , a następnie wybierz S3 w kategorii Magazyn .
W panelu nawigacyjnym kliknij Buckets i wybierz odpowiedni zasób S3, dla którego chcesz włączyć przechowywanie wersji. W tym przykładzie wybieram zasób o nazwie blog-bucket01 . Kliknij nazwę zasobu, aby otworzyć jego szczegóły.
Otwórz kartę Properties dla wybranego zasobu.
W sekcji Bucket Versioning kliknij Edit.
Przechowywanie wersji jest domyślnie wyłączone.
Kliknij Enable , aby włączyć przechowywanie wersji dla zasobnika.
Kliknij Save Changes.
Wyświetli się wskazówka, że może być konieczna aktualizacja reguł cyklu życia. To jest następny krok.
Jeśli zmiany konfiguracji zostały zastosowane, u góry strony wyświetli się komunikat: Pomyślnie edytowano przechowywanie wersji dla zasobnika .
Reguły cyklu życia
Aby skonfigurować reguły cyklu życia dla przechowywania wersji w usłudze Amazon S3, przejdź do zakładki Management na stronie wybranego zasobnika. W sekcji Reguły cyklu życia kliknij Create lifecycle rule.
Otworzy się strona Utwórz regułę cyklu życia .
Lifecycle Rule configuration. Wprowadź nazwę reguły cyklu życia, na przykład Cykl życia bloga 01 .
Wybierz zakres reguły. Możesz zastosować filtry, aby reguły cyklu życia dotyczyły określonych obiektów, lub zastosować regułę do wszystkich obiektów w zasobniku. Zdefiniuj znaczniki obiektów, aby wskazać obiekty, do których należy zastosować działania dotyczące cyklu życia. Wprowadź klucz i wartość w odpowiednich polach, a następnie kliknij przycisk Add tag, aby dodać znacznik lub przycisk Remove, aby usunąć znacznik.
Lifecycle rule actions. Wybierz działania, które ma wykonać ta reguła:
- Przenieś bieżące wersje obiektów między klasami przechowywania
- Przenieś poprzednie wersje obiektów między klasami przechowywania
- Wygaszenie bieżących wersji obiektów
- Trwałe usunięcie poprzednich wersji obiektów
- Usunięcie wygasłych markerów usunięcia lub niekompletnych przesyłań częściowych
Transition noncurrent versions of objects between storage classes.
Wybierz przejścia klas przechowywania i liczbę dni, po których obiekty stają się nieaktualne.
W moim przykładzie obiekty są przenoszone z bieżącej klasy przechowywania S3 do Standard-IA po 35 dniach.
Permanently delete previous versions of objects.
Wprowadź liczbę dni, po upływie których poprzednie wersje muszą zostać usunięte. Wartość musi być wyższa niż liczba dni, po których obiekty stają się nieaktualne. W moim przykładzie obiekty są trwale usuwane po 40 dniach.
Kliknij Create Rule, aby utworzyć regułę cyklu życia.
Replikacja zasobnika
Alternatywnie do automatycznej kopii zapasowej S3 Amazon, możesz replikować zasobnik między regionami. Musisz utworzyć drugi zasobnik, który będzie celem w innym regionie, oraz utworzyć regułę replikacji. Po utworzeniu reguły replikacji wszystkie zmiany wprowadzone w zasobniku źródłowym będą automatycznie odzwierciedlane w zasobniku docelowym.
Znajdź sekcję Replication rules w karcie Zarządzanie dla zasobnika źródłowego i kliknij Create replication rule.
Strona Utwórz regułę replikacji zostanie otwarta.
Wprowadź nazwę reguły replikacji, na przykład Replikacja zasobnika Blog S3 .
Określ status reguły, gdy jest tworzona (enabled lub disabled).
Zasobnik źródłowy. Zasobnik źródłowy został już wybrany ( blog-bucket01 ).
Wybierz zakres reguły. Możesz użyć reguły replikacji dla wszystkich obiektów w zasobniku lub skonfigurować filtry i zastosować regułę do niestandardowych obiektów.
Miejsce docelowe. Wprowadź nazwę zasobnika docelowego lub kliknij Browse S3 i wybierz zasobnik z listy. Możesz wybrać zasobnik w tym koncie lub w innym koncie. Jeśli wersjonowanie AWS S3 jest włączone dla zasobnika źródłowego, wersjonowanie obiektów musi być również włączone dla zasobnika docelowego. Dla wybranego zasobnika docelowego wyświetla się region docelowy. 
Skonfiguruj tożsamość i zarządzanie dostępem (IAM), a następnie wybierz klasę magazynową i dodatkowe opcje replikacji. Kliknij Save, aby zapisać konfigurację i utworzyć regułę replikacji dla zasobnika.
AWS S3 Kopia zapasowa w CLI
AWS CLI to potężny interfejs wiersza poleceń do pracy z różnymi usługami Amazon, w tym Amazon S3. Dostępne polecenie synchronizacji umożliwia wykonanie kopii zapasowej zasobników Amazon S3 na maszynie Linux poprzez kopiowanie plików z zasobnika do lokalnego katalogu w systemie Linux działającym na instancji EC2.
Funkcja polecenia synchronizacji w AWS CLI polega na tym, że pliki w lokalnym systemie plików (miejsce docelowe kopii zapasowej Amazon S3) nie są usuwane, jeśli te pliki są brakujące w źródłowym zasobniku S3 i vice versa. Jest to ważne dla AWS S3 kopii zapasowej, ponieważ jeśli niektóre pliki zostały przypadkowo usunięte w zasobniku S3, istniejące pliki nie są usuwane w lokalnym katalogu maszyny z systemem Linux po synchronizacji.
Zalety:
- Obsługa dużych zasobników S3 i skalowalność
- Obsługa wielu wątków podczas synchronizacji
- Możliwość synchronizacji tylko nowych i zaktualizowanych plików
- Wysoka prędkość synchronizacji dzięki inteligentnym algorytmom
Wady:
- Linux działający na instancji EC2 zużywa przestrzeń magazynową woluminów EBS. Koszty przechowywania woluminów EBS są wyższe niż dla zasobników S3.
Polecenia dla serwera Ubuntu są używane w tym przewodniku.
Najpierw musisz zainstalować AWS CLI.
Aktualizuj drzewo repozytoriów:
sudo apt-get update
Zainstaluj AWS CLI:
sudo apt install awscli
lub
Zainstaluj unzip:
sudo apt install unzip
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscli-exe-linux-x86_64.zip
sudo ./aws/install
Sprawdź poświadczenia AWS w systemie Linux uruchomionym na twojej instancji EC2.
aws configure list
Dodaj poświadczenia, aby uzyskać dostęp do AWS z AWS CLI z instancji Linux, jeśli poświadczenia nie zostały ustawione:
aws configure
Wprowadź następujące parametry:
Identyfikator klucza dostępu AWS
Sekretny klucz dostępu AWS
Domyślna nazwa regionu
Domyślny format wyjściowy
Utwórz katalog do przechowywania swojej kopii zapasowej Amazon S3. W moim przykładzie tworzę katalog ~/s3/ do przechowywania kopii zapasowych S3 oraz podkatalog o nazwie identycznej z nazwą zasobnika. Pliki przechowywane w zasobniku S3 powinny być kopiowane do tego lokalnego katalogu na maszynie z systemem Linux. ~ to katalog domowy użytkownika, który jest /home/ubuntu w moim przypadku.
mkdir -p ~/s3/your_bucket_name
Zamień twoja_nazwa_zasobnika na nazwę twojego zasobnika ( blog-zasobnik01 w naszym przykładzie). mkdir -p ~/s3/blog-bucket01
Zsynchronizuj zawartość zasobnika z lokalnym katalogiem na instancji EC2 z systemem Linux:
aws s3 sync s3:// blog-bucket01 /home/ubuntu/s3/ blog-bucket01/
Jeśli konfiguracja poświadczeń, nazwa zasobnika i ścieżka docelowa są poprawne, dane powinny zacząć się pobierać z zasobnika S3. Czas potrzebny do zakończenia operacji zależy od rozmiaru plików w zasobniku oraz prędkości połączenia internetowego.
Automatyczne tworzenie kopii zapasowych w Amazon S3
Możesz skonfigurować zadania automatycznego tworzenia kopii zapasowych w Amazon S3 za pomocą polecenia sync w AWS CLI. Utwórz plik skryptowy sync.sh do uruchamiania kopii zapasowej AWS S3 (synchronizacja plików z zasobnika S3 do lokalnego katalogu na instancji systemu Linux), a następnie uruchamiaj ten skrypt zgodnie z harmonogramem.
nano /home/ubuntu/s3/sync.sh
#!/bin/sh
# Display the current date and time
echo '-----------------------------'
date
echo '-----------------------------'
echo ''
# Display the script initialization message
echo 'Syncing remote S3 bucket...'
# Running the sync command
/usr/bin/aws s3 sync s3://{BUCKET_NAME} /home/ubuntu/s3/{BUCKET_NAME}/
# Echo "Script execution is completed"
echo 'Sync complete'
Zastąp {BUCKET_NAME} nazwą zasobnika S3, którego kopię zapasową chcesz wykonać.
Pełna ścieżka do aws (plik binarny AWS CLI) jest zdefiniowana w celu zapewnienia, że crontab poprawnie uruchomi aplikację aws w środowisku powłoki używanej przez crontab.
Nadaj skryptowi uprawnienia do uruchamiania:
sudo chmod +x /home/ubuntu/s3/sync.sh
Uruchom skrypt, aby sprawdzić, czy działa:
/home/ubuntu/s3/sync.sh
Edytuj plik crontab (harmonogram zadań w systemie Linux) bieżącego użytkownika, aby zaplanować uruchamianie skryptu tworzenia kopii zapasowej do usługi Amazon S3.
crontab -e
Być może konieczne będzie wybranie edytora tekstu do edycji konfiguracji crontab.
Format crontab służący do planowania zadań wygląda następująco:
m h dom mon dow command
Gdzie: m – minuty; h – godziny; dom – dzień miesiąca; dow – dzień tygodnia.
Dodajmy wiersz konfiguracyjny dla zadania, które co godzinę uruchamia synchronizację i zapisuje wyniki kopii zapasowej AWS S3 do pliku dziennika. Dodaj ten wiersz na końcu konfiguracji crontab.
0 * * * * /home/ubuntu/s3/sync.sh > /home/ubuntu/s3/sync.log
Automatyczna kopia zapasowa Amazon S3 została skonfigurowana. Plik dziennika można wykorzystać do sprawdzenia wykonania zadań synchronizacji.
Wnioski
Istnieje wiele metod wykonywania kopii zapasowej do usługi Amazon S3, a dwie z nich zostały omówione w tym wpisie na blogu. Można włączyć przechowywanie wersji obiektów dla zasobnika, aby zachować poprzednie wersje obiektów, co pozwala odzyskać pliki w przypadku wprowadzenia do nich niepożądanych zmian. Replikacja w usłudze Amazon S3 to kolejne natywne narzędzie służące do tworzenia kopii plików przechowywanych w zasobniku Amazon S3 jako obiekty. W tym przypadku obiekty są replikowane z jednego zasobnika do drugiego. Można również utworzyć kopię zapasową zasobnika Amazon S3 za pomocą narzędzia synchronizacji w AWS CLI, które pozwala zsynchronizować pliki w zasobniku z lokalnym katalogiem na komputerze z systemem Linux działającym na instancji EC2. Automatyczne tworzenie kopii zapasowej w usłudze Amazon S3 można zaplanować za pomocą skryptu i crontabu.
Ogólnie rzecz biorąc, usługa magazynu-chmury Amazon S3 jest bardzo niezawodna, a tworzenie kopii zapasowej do tej usługi jest powszechną praktyką. Jeśli posiadasz strategię ochrony danych programowych oraz strategię tworzenia kopii zapasowych w AWS, powinieneś dysponować kopią zapasową. W takim przypadku zaleca się wykonanie kopii zapasowej danych zarówno w usłudze Amazon S3, jak i w innej lokalizacji docelowej. Skorzystaj z NAKIVO Backup & Replication, aby zabezpieczyć swoje dane na maszynach fizycznych i wirtualnych. NAKIVO Backup & Replication to solidne oprogramowanie do tworzenia kopii zapasowych w środowisku wirtualnym, które można wykorzystać do ochrony maszyn wirtualnych, a także instancji Amazon EC2 i maszyn fizycznych.










