Tworzenie kopii zapasowej danych przechowywanych na Amazon S3

16

Mam instancję EC2 z serwerem WWW, który przechowuje pliki przesłane przez użytkowników do S3. Pliki są zapisywane raz i nigdy się nie zmieniają, ale od czasu do czasu są pobierane przez użytkowników. Prawdopodobnie będziemy gromadzić około 200-500 GB danych rocznie. Chcemy mieć pewność, że te dane są bezpieczne, zwłaszcza przed przypadkowym usunięciem, i chcielibyśmy móc przywracać pliki, które zostały usunięte bez względu na przyczynę.

Czytałem o funkcji kontroli wersji dla segmentów S3, ale nie mogę znaleźć możliwości odzyskania plików bez historii modyfikacji. Zobacz dokumenty AWS tutaj na temat wersji:

http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectVersioning.html

W tych przykładach nie pokazują one scenariusza, w którym dane są przesyłane, ale nigdy nie są modyfikowane, a następnie usuwane. Czy pliki usunięte w tym scenariuszu można odzyskać?

Następnie pomyśleliśmy, że możemy po prostu wykonać kopię zapasową plików S3 do Glacier przy użyciu zarządzania cyklem życia obiektu:

http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html

Ale wygląda na to, że to nie zadziała, ponieważ obiekt pliku nie jest kopiowany do Glacier, ale przenoszony do Glacier (dokładniej wydaje się, że jest to atrybut obiektu, który został zmieniony, ale i tak ...).

Wydaje się więc, że nie ma bezpośredniego sposobu na wykonanie kopii zapasowej danych S3, a przesyłanie danych z S3 na serwery lokalne może być czasochłonne i może z czasem powodować znaczne koszty transferu.

Wreszcie pomyśleliśmy, że co miesiąc będziemy tworzyć nowy segment, który będzie służył jako miesięczna pełna kopia zapasowa, i kopiujemy dane oryginalnego segmentu do nowego w Dniu 1. Następnie używamy czegoś takiego jak duplikat ( http://duplicity.nongnu.org/ ) synchronizujemy łyżkę zapasową co noc. Pod koniec miesiąca umieściliśmy zawartość wiadra zapasowego w magazynie Glacier i utworzyliśmy nowy wiadro zapasowe przy użyciu nowej, bieżącej kopii oryginalnego wiadra ... i powtórzymy ten proces. Wydaje się, że to zadziałałoby i zminimalizowało koszty przechowywania / transferu, ale nie jestem pewien, czy duplikacja pozwala na bezpośrednie przesyłanie z jednego koszyka do drugiego bez wcześniejszego przekazywania danych do klienta kontrolującego.

Myślę, że tutaj jest kilka pytań. Po pierwsze, czy wersja S3 umożliwia odzyskiwanie plików, które nigdy nie były modyfikowane? Czy istnieje jakiś sposób na „skopiowanie” plików z S3 na Glacier, które przegapiłem? Czy duplikat lub inne narzędzie może przenosić pliki bezpośrednio między segmentami S3, aby uniknąć kosztów transferu? Wreszcie, czy jestem daleko w tyle w moim podejściu do tworzenia kopii zapasowych danych S3?

Z góry dziękuję za wszelkie informacje, które możesz podać!

Aktualizacja

Amazon niedawno ogłosił, że przechowywanie wersji działa teraz z regułami cyklu życia

Piątka
źródło
aws.amazon.com/blogs/aws/archive-s3-to-glacier/... + u dołu znajduje się fajny krótki film z youtube wyjaśniający s3 do lodowca
odpowiednik8

Odpowiedzi:

10

Czytałem o funkcji kontroli wersji dla segmentów S3, ale nie mogę znaleźć, czy> odzyskiwanie jest możliwe dla plików bez historii modyfikacji. Zobacz dokumenty AWS tutaj na> wersjonowanie:

Właśnie tego spróbowałem. Tak, możesz przywrócić z oryginalnej wersji. Kiedy usuwasz plik, tworzy on znacznik usuwania i możesz przywrócić wcześniejszą wersję, tj .: pojedynczą, jedyną wersję.

Następnie pomyśleliśmy, że możemy po prostu wykonać kopię zapasową plików S3 do Glacier przy użyciu cyklu życia obiektu> zarządzania:

Ale wygląda na to, że to nie zadziała, ponieważ obiekt pliku nie jest kopiowany do Glacier, ale> przenoszony do Glacier (dokładniej wydaje się, że jest to atrybut obiektu, który został zmieniony, ale> i tak ...).

Lodowiec jest naprawdę przeznaczony do długotrwałego przechowywania, do którego dostęp jest bardzo rzadki. Odzyskiwanie dużej części danych za jednym razem może być bardzo kosztowne, ponieważ nie jest przeznaczone do przywracania dużej ilości danych w określonym momencie (procentowo).

Wreszcie, pomyśleliśmy, że co miesiąc będziemy tworzyć nowy segment, który będzie służył jako miesięczna pełna> kopia zapasowa, i kopiujemy dane oryginalnego segmentu do nowego w Dniu 1. Następnie używamy czegoś> takiego jak duplikat ( http: //duplicity.nongnu). org / ) synchronizujemy wiadro kopii zapasowej co> noc.

Nie rób tego, możesz mieć tylko 100 wiader na konto, więc w ciągu 3 lat zużyjesz jedną trzecią swojego limitu przy użyciu kopii zapasowych.

Myślę, że tutaj jest kilka pytań. Po pierwsze, czy wersja S3 umożliwia odzyskiwanie> plików, które nigdy nie były modyfikowane?

tak

Czy istnieje jakiś sposób na „skopiowanie” plików z S3 na Glacier, które przegapiłem?

Nie żebym o tym wiedział

Sirex
źródło
Dzięki, Sirex, jedno wyjaśnienie: zamierzaliśmy przechowywać tylko jeden segment kopii zapasowej na raz (bieżący miesiąc) i archiwizować kopię zapasową z ostatniego miesiąca na Glacier, a następnie usunąć kopie Glacier na niektórych ogólnych zasadach przechowywania (następnie co miesiąc przez 3 miesiące kwartalnie przez rok). Czy uważasz, że jest to możliwe, czy może jakieś inne ograniczenia AWS uniemożliwiają tę strategię?
Fiver
hmm, myślę, że to rozsądne. Nie próbowałem tego jednak w gniewie (ani lodowca, używamy Sydney i nie było to możliwe, gdy się temu przyjrzeliśmy)
Sirex,
3

Nie lubię mieć zamontowanego s3, ponieważ jest wolny i może się zawiesić i działa jak oldschoolowy NFS. lepiej po prostu w górę / w dół w razie potrzeby.

http://s3tools.org/s3cmd

jest łatwy do skryptu ... nie zapomnij pliku ~ / .s3cfg

nandoP
źródło
Wow, to wygląda świetnie!
JakeGould,
@nandoP +1 Myślałem o użyciu s3cmd i toczeniu własnego
Fiver
1

Wygląda na to, że możesz potrzebować S3FS, który zasadniczo montuje twoje segmenty S3, jakby były lokalnymi systemami plików:

http://code.google.com/p/s3fs/wiki/FuseOverAmazon

Wolę używać tej rozwidlonej wersji, ponieważ zachowuje tę samą strukturę folderów, co ta utworzona w panelu sterowania dla Amazon S3:

https://github.com/tongwang/s3fs-c

Następnie mam kilka skryptów powłoki, które w zasadzie używają rsyncdo synchronizacji danych z moimi lokalnymi ustawieniami.

Ogólnie rzecz biorąc, uważam, że S3FS działa najlepiej do czytania treści umieszczonych w segmentach Amazon S3. Pisanie nie jest tak konsekwentne. Ale do tworzenia kopii zapasowych segmentów S3 świetnie sprawdza się widelec Tony Wang w S3FS.

JakeGould
źródło
1
Brzmi użytecznie. Czy przenosi bezpośrednio między segmentami, bez pobierania do klienta?
Fiver
Prawdopodobnie tak. Używam go głównie do montowania na lokalnym serwerze i tworzenia kopii zapasowych na naszych lokalnych komputerach. Ale ponieważ ma możliwość zapisu, nie rządziłbym używaniem go jako „przejścia pomiędzy”, aby tasować dane między segmentami. Zasadniczo na maszynie pośredniej zamontuj jedną łyżkę w jednym punkcie mocowania. Następnie zamontuj drugie wiadro jako kolejny punkt montażu. A potem po prostu zrób rsync. Ale jak powiedziałem, czasy / daty modyfikacji mogą być dziwne w przypadku Amazon S3, ponieważ tak naprawdę nie jest to system plików. Ale eksperymentuj.
JakeGould,