Wprowadzenie do Amazon S3: Jak działa przechowywanie obiektów w chmurze

Amazon Simple Storage Service (S3) to popularna usługa magazynu-chmury, stanowiąca część platformy Amazon Web Services (AWS). Magazyn-chmura Amazon S3 zapewnia wysoką niezawodność, elastyczność, skalowalność i dostępność. Liczba obiektów i ilość danych przechowywanych w Amazon S3 jest nieograniczona. Magazyn-chmura S3 jest atrakcyjny dla firm, ponieważ płaci się tylko za to, z czego się korzysta.

Jednak terminologia i metodologia mogą prowadzić do nieporozumień i trudności dla nowych użytkowników Amazon S3. Gdzie przechowywane są dane w S3? Jak działa usługa magazynu-chmury Amazon S3? W tym wpisie na blogu wyjaśniono główne pojęcia i zasadę działania usługi magazynu-chmury Amazon S3.

Bezpośrednie tworzenie kopii zapasowej w usłudze AWS S3 | NAKIVO

Bezpośrednie tworzenie kopii zapasowej w usłudze AWS S3 | NAKIVO

Unikaj pojedynczego punktu awarii dzięki prostej integracji z Amazon S3 oraz opcjom ochrony przed oprogramowaniem wymuszającym okup. Funkcje automatycznej obsługi warstw kopii zapasowych i natychmiastowego odzyskiwania danych.

O usłudze przechowywania danych Amazon S3

Amazon S3 była pierwszą usługą chmurową firmy AWS, uruchomioną w 2006 roku. Od tego czasu popularność tej usługi przechowywania danych stale rośnie. Obecnie Amazon oferuje szeroki wachlarz innych usług chmurowych, jednak usługa przechowywania danych Amazon S3 jest najczęściej wykorzystywana. Oprócz usługi Amazon S3 firma AWS oferuje woluminy Amazon EBS dla instancji EC2 oraz usługę Amazon Drive. Te trzy usługi mają jednak różne zastosowania i przeznaczenie.

EBS (Elastic Block Storage) woluminy dla instancji EC2 (Elastic Compute Cloud) to dyski wirtualne dla maszyn wirtualnych znajdujących się w chmurze Amazon. Jak można wywnioskować z nazwy EBS, jest to pamięć blokowa w chmurze, która stanowi odpowiednik dysków twardych w komputerach fizycznych. Na woluminie EBS podłączonym do instancji EC2 można zainstalować system operacyjny.

Amazon Drive (wcześniej znany jako Amazon Cloud Drive) jest odpowiednikiem Google Drive i Microsoft OneDrive. Amazon Drive ma mniejszy zakres funkcji niż Amazon S3. Amazon Drive jest pozycjonowany jako usługa przechowywania danych w chmurze służąca do wykonania kopii zapasowej zdjęć i innych danych użytkownika.

Amazon S3 magazyn-chmura to usługa oparta na obiektach. Nie można zainstalować systemu operacyjnego przy korzystaniu z pamięci Amazon S3, ponieważ dostęp do danych na poziomie bloków – wymagany przez system operacyjny – nie jest możliwy. Jeśli chcesz zamontować pamięć Amazon S3 jako dysk sieciowy w swoim systemie operacyjnym, użyj systemu plików w przestrzeni użytkownika. Przeczytaj wpis na blogu dotyczący podłączenie magazynu-chmury S3 dla różnych systemów operacyjnych. Google Cloud jest odpowiednikiem magazynu-chmura Amazon S3.

Główne pojęcia związane z Amazon S3

Jeśli zamierzasz korzystać z Amazon S3 po raz pierwszy, niektóre pojęcia mogą wydawać ci się nietypowe i nieznane. Metodologia przechowywania danych w chmurze S3 różni się od przechowywania danych na tradycyjnych dyskach twardych, dyskach półprzewodnikowych lub macierzach dyskowych. Poniżej znajduje się przegląd głównych pojęć i technologii wykorzystywanych do przechowywania danych oraz zarządzania nimi w chmurze Amazon S3.

W jaki sposób S3 przechowuje pliki?

Jak wyjaśniono powyżej, dane w Amazon S3 są przechowywane jako obiekty. Takie podejście zapewnia wysoce skalowalną pamięć masową w chmurze. Obiekty mogą znajdować się na różnych fizycznych dyskach rozmieszczonych w całym centrum danych. W centrach danych Amazon stosuje się specjalny sprzęt, oprogramowanie oraz rozproszone systemy plików, aby zapewnić wysoką skalowalność. Nadmiarowość i przechowywanie wersji to funkcje realizowane przy użyciu podejścia opartego na pamięci blokowej. Gdy plik jest przechowywany w usłudze Amazon S3 jako obiekt, domyślnie jest on jednocześnie przechowywany w wielu miejscach (np. na dyskach, w centrach danych lub strefach dostępności). Usługa Amazon S3 regularnie sprawdza spójność danych poprzez weryfikację sum kontrolnych. W przypadku wykrycia uszkodzenia danych obiekt jest odtwarzany przy użyciu danych redundantnych. Obiekty są przechowywane w zasobnikach Amazon S3. Domyślnie dostęp do obiektów w magazynie Amazon S3 oraz zarządzanie nimi odbywa się za pośrednictwem interfejsu internetowego.

Czym jest magazyn obiektowy S3?

Magazyn obiektowy to rodzaj pamięci masowej, w której dane są przechowywane jako obiekty, a nie jako bloki. Koncepcja ta jest przydatna w przypadku danych kopia zapasowa, archiwizacji oraz skalowalności w środowiskach o dużym obciążeniu.

Objects są podstawowymi jednostkami przechowywania danych w zasobnikach Amazon S3. Obiekt składa się z trzech głównych elementów – treści obiektu (danych przechowywanych w obiekcie, takich jak plik lub katalog), unikalnego identyfikatora obiektu (ID) oraz metadanych. Metadane są przechowywane jako pary klucz-wartość i zawierają informacje, takie jak nazwa, rozmiar, data, atrybuty bezpieczeństwa, typ zawartości oraz adres URL.

Każdy obiekt posiada listę kontroli dostępu (ACL), która pozwala skonfigurować, kto ma prawo dostępu do obiektu. Przechowywanie obiektowe Amazon S3 pozwala uniknąć wąskich gardeł sieciowych w godzinach szczytu, kiedy ruch do obiektów przechowywanych w magazynie-chmurze S3 znacznie wzrasta. Amazon zapewnia elastyczną przepustowość sieciową, ale pobiera opłaty za dostęp sieciowy do przechowywanych obiektów. Przechowywanie obiektowe sprawdza się dobrze, gdy duża liczba klientów musi uzyskać dostęp do danych (wysoka częstotliwość odczytu). Wyszukiwanie na podstawie metadanych przebiega szybciej w modelu przechowywania obiektowego.

Przeczytaj również o Szyfrowanie w usłudze Amazon S3 , które może pomóc w ochronie danych przechowywanych w magazynie-chmurze Amazon S3 i zwiększeniu bezpieczeństwa.Amazon S3 storage

Zbiorniki

A bucket to podstawowe kontenery logiczne, w których przechowywane są dane w usłudze Amazon S3. W buckecie można przechowywać nieskończoną ilość danych i nieograniczoną liczbę obiektów. Każdy obiekt S3 jest przechowywany w buckecie. Obowiązuje ograniczenie rozmiaru pojedynczego obiektu przechowywanego w buckecie do 5 TB. Buckety służą do organizowania przestrzeni nazw na najwyższym poziomie oraz do kontroli dostępu.

Klucze

Po przesłaniu do bucketu obiekt otrzymuje unique key . Klucz ten jest ciągiem znaków odzwierciedlającym hierarchię katalogów. Znajomość klucza umożliwia dostęp do obiektu w zasobniku. Zasobnik, klucz oraz identyfikator wersji jednoznacznie identyfikują obiekt. Na przykład, jeśli nazwa zasobnika to blog-bucket01 , region, w którym znajdują się centra danych przechowujące dane, to s3-eu-west-1 , a nazwa obiektu to test1.txt (plik tekstowy), adres URL do potrzebnego pliku przechowywanego jako obiekt w zasobniku to: https://blog-bucket01.s3-eu-west-1.amazonaws.com/test1.txt

Jeśli chcesz udostępniać obiekty innym użytkownikom, musisz skonfigurować uprawnienia poprzez edycję atrybutów obiektów. Podobnie można utworzyć folder TextFiles i zapisać w nim plik tekstowy:

https://blog-bucket01.s3-eu-west-1.amazonaws.com/TextFiles/test1.txt

Istnieją dwa rodzaje adresów URL, z których można korzystać:

  • bucketname.s3.amazonaws.com/objectname
  • s3.amazon.aws.com/bucketname/objectname

Regiony AWS

Amazon posiada centra danych w różnych regionach na całym świecie, w tym w USA, Irlandii, RPA, Indiach, Japonii, Chinach, Korei, Kanadzie, Niemczech, Włoszech i Wielkiej Brytanii. Podczas tworzenia zasobnika można wybrać żądany region. Zaleca się wybranie regionu położonego najbliżej użytkownika lub jego klientów, aby zapewnić mniejsze opóźnienia w połączeniu sieciowym lub zminimalizować koszty (ponieważ cena przechowywania danych różni się w zależności od regionu). Dane przechowywane w danym regionie AWS nigdy nie opuszczają centrów danych tego regionu, dopóki użytkownik nie przeniesie ich ręcznie. Regiony AWS są odizolowane od siebie, co zapewnia odporność na awarie i stabilność.

Każdy region zawiera strefy dostępności, które są odizolowanymi lokalizacjami w obrębie regionu AWS. W każdym regionie dostępne są co najmniej trzy strefy dostępności, co ma na celu zapobieganie awariom spowodowanym katastrofami, takimi jak pożary, tajfuny, huragany, powodzie itp.

Model spójności danych

W przypadku obiektów przechowywanych w usłudze Amazon S3 przeprowadzana jest kontrola spójności typu „odczyt po zapisie”. Amazon S3 replikuje dane między serwerami i centrami danych w obrębie wybranego regionu, aby zapewnić wysoką dostępność. Po pomyślnym wykonaniu żądania PUT zmienione dane muszą zostać zreplikowane na serwerach. Proces ten może zająć trochę czasu. W takim przypadku użytkownik może otrzymać stare dane lub zaktualizowane dane, ale nie dane uszkodzone. Dotyczy to również usuniętych obiektów i zasobników. Blokowanie obiektów nie jest wykonywane podczas wysyłania nowych obiektów do zasobników S3. Jeśli jednocześnie wykonywanych jest wiele żądań PUT, pierwszeństwo ma ostatnie żądanie PUT. Można stworzyć własną aplikację z mechanizmem blokowania, który współpracuje z obiektami przechowywanymi w usłudze Amazon S3.

Funkcje usługi Amazon S3

Koncepcja pamięci masowej opartej na obiektach pozwala firmie Amazon zapewnić przydatne funkcje i wysoką elastyczność w zakresie przechowywania danych w usłudze Amazon S3 oraz zarządzania nimi. Przyjrzyjmy się tym funkcjom.

Przechowywanie wersji

Przechowywanie wersji obiektów pozwala na przechowywanie wielu wersji jednego obiektu w jednym zasobniku. Funkcja ta chroni obiekty przechowywane w usłudze Amazon S3 przed niezamierzoną edycją, nadpisaniem lub usunięciem. Po zmianie lub usunięciu obiektu można przywrócić jedną z jego poprzednich wersji. Przechowywanie wersji jest realizowane dzięki zastosowaniu modelu przechowywania obiektowego. Przechowywanie wersji można korzystać do celów archiwizacji. Przechowywanie wersji jest domyślnie wyłączone.

Każdemu obiektowi S3 przypisywany jest identyfikator wersji, nawet jeśli przechowywanie wersji nie jest włączone (w tym przypadku wartość identyfikatora wersji jest ustawiona na null). Jeśli przechowywanie wersji jest włączone, po zapisaniu zmian nowej wersji obiektu przypisywana jest nowa wartość identyfikatora wersji. Przechowywanie wersji można włączyć na poziomie zasobnika. Wartość identyfikatora wersji pierwszej wersji obiektu pozostaje niezmieniona. Podczas usuwania obiektu z zasobnika S3 (z włączonym przechowywaniem wersji) znacznik usunięcia jest nakładany na najnowszą wersję obiektu.

Versioning in Amazon S3 storage

Klasy przechowywania

Klasy przechowywania Amazon S3 określają przeznaczenie przestrzeni dyskowej wybranej do przechowywania danych. Klasę przechowywania można ustawić na poziomie obiektu. Można jednak ustawić domyślną klasę przechowywania dla obiektów, które będą tworzone na poziomie zasobnika.

S3 Standard jest domyślną klasą przechowywania. Ta klasa służy do przechowywania danych aktywnych i nadaje się do danych często wykorzystywanych. Klasy magazynowania Standard należy używać do hostowania stron internetowych, dystrybucji treści, tworzenia aplikacji w chmurze itp. Funkcje tej klasy magazynowania to wysokie koszty magazynowania, niskie koszty przywracania oraz szybki dostęp do danych. Klasa

S3 Standard-IA (rzadki dostęp) może służyć do przechowywania danych, do których dostęp jest rzadszy niż w przypadku klasy S3 Standard. Klasa S3 Standard-IA jest zoptymalizowana pod kątem dłuższego okresu magazynowania. Pobieranie danych przechowywanych w klasie magazynu S3 Standard-IA podlega opłacie. Ponadto zarówno w przypadku S3 Standard jak i S3 Standard-IA należy uiścić opłatę za operacje na danych (PUT, COPY, POST, LIST, GET, SELECT).

S3 One Zone-IA jest przeznaczona dla danych, do których dostęp jest sporadyczny. Dane są przechowywane tylko w jednej strefie dostępności (w przypadku klasy S3 Standard dane są przechowywane w trzech strefach dostępności), co skutkuje niższym poziomem nadmiarowości i odporności. Deklarowany poziom dostępności wynosi 99,5%, czyli jest niższy niż w przypadku pozostałych dwóch klas magazynowania. Klasa S3 One Zone-IA charakteryzuje się niższymi kosztami magazynowania, wyższymi kosztami przywracania danych oraz koniecznością płacenia za pobieranie danych w oparciu o liczbę GB. Można rozważyć wykorzystanie tej klasy pamięci masowej jako ekonomicznego rozwiązania do przechowywania kopia zapasowa lub kopii danych utworzonych za pomocą replikacji międzyregionowej w usłudze Amazon S3.

S3 Glacier nie zapewnia natychmiastowego dostępu do przechowywanych danych, w przeciwieństwie do innych klas pamięci masowej. Usługa S3 Glacier może służyć do przechowywania danych w ramach długoterminowej archiwizacji przy niskich kosztach. Nie ma gwarancji nieprzerwanego działania. Pobranie danych może potrwać od kilku minut do kilku godzin. Można przenieść stare dane z magazynu o wyższej klasie (na przykład z S3 Standard) do S3 Glacier, korzystając z zasad cyklu życia S3, i w ten sposób obniżyć koszty przechowywania.

S3 Glacier Deep Archive jest podobna do S3 Glacier, ale czas potrzebny na pobranie danych wynosi od około 12 do 48 godzin. Cena jest niższa niż w przypadku S3 Glacier. Klasa przechowywania S3 Glacier Deep Archive może służyć do przechowywania kopii zapasowych i danych archiwalnych firm, które muszą spełniać wymagania regulacyjne dotyczące archiwizacji danych (np. w sektorze finansowym lub opieki zdrowotnej). Jest to dobra alternatywa dla kaset taśmowych.

S3 Intelligent-Tiering to specjalna klasa przechowywania, która wykorzystuje inne klasy przechowywania. S3 Intelligent-Tiering ma na celu automatyczny wybór lepszej klasy przechowywania do przechowywania danych, gdy nie wiadomo, jak często będzie konieczny dostęp do tych danych. Usługa Amazon S3 może monitorować wzorce dostępu do danych podczas korzystania z funkcji S3 Intelligent-Tiering, a następnie przechowywać obiekty w jednej z dwóch wybranych klas przechowywania (jednej przeznaczonej dla danych, do których dostęp jest częsty, a drugiej dla danych, do których dostęp jest rzadki). Takie podejście zapewnia optymalną opłacalność bez utraty wydajności.

Na przykład, jeśli użytkownik uzyska dostęp do obiektu przechowywanego w klasie przeznaczonej dla rzadko używanych danych, obiekt ten zostanie automatycznie przeniesiony do klasy przeznaczonej dla często używanych danych. W przeciwnym razie, jeśli obiekt nie był używany przez dłuższy czas, zostanie przeniesiony do klasy magazynu przeznaczonej dla rzadko używanych danych. Obiekty mogą znajdować się w tym samym zasobniku, a zmiana klasy magazynu odbywa się na poziomie obiektu S3.

Storage classes in Amazon S3 cloud storage

Listy kontroli dostępu

Lista kontroli dostępu (ACL) to funkcja służąca do zarządzania i kontrolowania dostępu do obiektów i zasobników. Listy kontroli dostępu to zasady oparte na zasobach, które są przypisane do każdego zasobnika i obiektu w celu zdefiniowania użytkowników i grup posiadających uprawnienia dostępu do zasobnika i obiektu. Domyślnie właściciel zasobu ma pełny dostęp do zasobnika lub obiektu po utworzeniu zasobu. Uprawnienia dostępu do zasobnika określają, kto może uzyskać dostęp do obiektów w zasobniku. Uprawnienia dostępu do obiektów określają, którzy użytkownicy mogą uzyskać dostęp do obiektów oraz jaki rodzaj dostępu im przysługuje. Można na przykład ustawić uprawnienia tylko do odczytu dla jednego użytkownika, a uprawnienia do odczytu i zapisu dla innego.

Pełna lista użytkowników, którym można przyznać uprawnienia (użytkownik posiadający uprawnienia nazywany jest „grantee”):

Owner – użytkownik, który tworzy zasobnik/obiekt.

Authenticated Users – wszyscy użytkownicy posiadający konto AWS.

All Users – wszyscy użytkownicy, w tym użytkownicy anonimowi (użytkownicy, którzy nie posiadają konta AWS).

User by Email/Id – określony użytkownik posiadający konto AWS. Aby przyznać dostęp temu użytkownikowi, należy podać jego e-mail lub identyfikator AWS.

Dostępne typy uprawnień:

Full Control – ten typ uprawnień zapewnia uprawnienia do odczytu, zapisu, odczytu (ACP) oraz zapisu ACP.

Read – pozwala wyświetlić zawartość zasobnika, gdy jest stosowane na poziomie zasobnika. Pozwala na odczyt danych obiektu i metadanych, gdy jest stosowane na poziomie obiektu.

Write – może być stosowane wyłącznie na poziomie zasobnika i pozwala na tworzenie, usuwanie oraz nadpisywanie dowolnego obiektu w zasobniku.

Read Permissions (READ ACP) – użytkownik może odczytywać uprawnienia dla określonego obiektu lub zasobnika.

Write Permissions (WRITE ACP) – użytkownik może nadpisywać uprawnienia dla określonego obiektu lub zasobnika. Włączenie tego typu uprawnień dla użytkownika jest równoznaczne z nadaniem uprawnień typu „Pełna kontrola”, ponieważ użytkownik może ustawiać dowolne uprawnienia dla swojego konta. Uprawnienie to jest domyślnie dostępne dla właściciela zasobnika.

S3 storage AWS - permissions and access control lists

Zasady zasobników

Zasady zasobników to oparte na zasobach zasady zarządzania tożsamością i dostępem w AWS, które służą do tworzenia reguł warunkowych przyznawania uprawnień dostępu kontom i użytkownikom AWS podczas uzyskiwania dostępu do zasobników i obiektów w nich zawartych. Za pomocą zasad dotyczących zasobników można zdefiniować reguły bezpieczeństwa dla więcej niż jednego obiektu w zasobniku.

Zasada dotycząca zasobnika jest zdefiniowana jako plik JSON. Aby tekst konfiguracji zasady dotyczącej zasobnika był prawidłowy, musi spełniać wymagania dotyczące formatu JSON. Zasada dotycząca zasobnika może być przypisana wyłącznie na poziomie zasobnika i jest dziedziczona przez wszystkie obiekty w zasobniku. Można przyznać dostęp użytkownikom łączącym się z określonych adresów IP, użytkownikom określonych kont AWS i tak dalej.

Poniżej znajduje się przykład polityki, która przyznaje pełny dostęp wszystkim użytkownikom jednego konta oraz dostęp tylko do odczytu wszystkim użytkownikom innego konta. {

  "Statement": [

    {

      "Effect": "Allow",

      "Principal": {

        "SGWS": "95381782731015222837"

      },

      "Action": "s3:*",

      "Resource": [

        "urn:sgws:s3:::blog-bucket01",

        "urn:sgws:s3:::blog-bucket01/*"

      ]

    },

    {

      "Effect": "Allow",

      "Principal": {

        "SGWS": "30284200178239526177"

      },

      "Action": "s3:GetObject",

      "Resource": "urn:sgws:s3:::blog-bucket01/shared/*"

    },

    {

      "Effect": "Allow",

      "Principal": {

        "SGWS": "30284200178239526177"

      },

      "Action": "s3:ListBucket",

      "Resource": "urn:sgws:s3:::blog-bucket01",

      "Condition": {

        "StringLike": {

          "s3:prefix": "shared/*"

        }

      }

    } 

  ]

}

Użytkownicy mogą uzyskać dostęp do pamięci masowej Amazon S3 za pomocą kluczy dostępu (identyfikatora klucza dostępu i tajnego klucza dostępu) bez konieczności podawania nazwy użytkownika i hasła. Takie podejście pozwala zwiększyć bezpieczeństwo i jest wykorzystywane do tworzenia aplikacji korzystających z interfejsów API w celu uzyskania dostępu do pamięci masowej w magazynie-chmurze Amazon S3.

Interfejsy API dla Amazon S3

Firma Amazon udostępnia interfejsy programowania aplikacji (API) umożliwiające korzystanie z funkcji S3 oraz tworzenie własnych aplikacji, które muszą współpracować z pamięcią masową Amazon S3. Amazon udostępnia interfejsy REST i SOAP. Interfejs REST wykorzystuje standardowe żądania HTTP do obsługi zasobników i obiektów. Interfejs API REST korzysta ze standardowych nagłówków HTTP. Kolejnym dostępnym interfejsem jest SOAP. Korzystanie z protokołu SOAP przez HTTP jest przestarzałe, ale nadal można używać protokołu SOAP przez HTTPS.

Model rozliczeniowy

Usługa Amazon S3 oferuje model „płać tylko za to, z czego korzystasz”. Nie ma opłaty minimalnej – nie musisz płacić za z góry określoną ilość przestrzeni magazynowej ani ruchu sieciowego. Istnieją kategorie użytkowania, za które należy zapłacić:

Storage. Płacisz za obiekty przechowywane w Amazon S3. Kwota do zapłaty zależy od wykorzystanej przestrzeni dyskowej, czasu przechowywania obiektów w magazynie Amazon S3 (w ciągu miesiąca) oraz klasy przechowywania zastosowanej dla przechowywanych obiektów.

Requests and data retrieval. Musisz zapłacić za żądania wysyłane w celu pobrania danych przechowywanych w magazynie-chmura Amazon S3.

Data transfer. Należy uiścić opłatę za całą wykorzystaną przepustowość (ruch przychodzący i wychodzący) z wyjątkiem danych przychodzących z Internetu; danych wychodzących przesyłanych do instancji Amazon EC2 znajdujących się w tym samym regionie AWS co źródłowy zasobnik S3; oraz danych wychodzących z zasobnika S3 do CloudFront.

Management and replication. Należy uiścić opłatę za korzystanie z funkcji zarządzania pamięcią masową, takich jak analityka i oznaczanie obiektów. Amazon pobiera opłaty za replikację międzyregionową oraz replikację w obrębie tego samego regionu.

Skorzystaj z Kalkulator Amazon S3 w celu oszacowania wysokości opłat.

Wypróbuj NAKIVO Backup & Replication

Wypróbuj NAKIVO Backup & Replication

Skorzystaj z bezpłatnej wersji próbnej, aby zapoznać się ze wszystkimi funkcjami rozwiązania w zakresie ochrony danych. 15 dni za darmo. Bez żadnych ograniczeń dotyczących funkcji ani pojemności. Nie jest wymagana karta kredytowa.

People also read