Amazon S3 - Co to jest i jak z niego korzystać?
Jak wiesz AWS to ocean możliwości. Trzeba tylko wiedzieć jak z nich korzystać. Jednym z jego podstawowych usług jest Amazon S3. Co to takiego? Dowiesz się po lekturze tego artykułu.
Czym jest S3?
S3 to skrót od Simple Storage Service i jest to usługa pamięci masowej oferowana przez Amazon Web Services. Jej głównym zadaniem jest możliwość przechowywania i łatwego dostępu do dowolnej ilości danych.
S3 można wykorzystać samodzielnie, we współpracy z innymi usługami Amazon Web Services lub nawet z programami firm trzecich.
Najczęściej używany jest do:
• Backupu i archiwizacji
• Analizy Big Data
• Przechowywania i dystrybucji contentu
• Disaster Recovery
• Hostingu statycznych plików (np. zdjęcia)
Kluczowe pojęcia
Zanim przejdę dalej, warto zapoznać Cię z kluczowymi pojęciami, które będą często powtarzać się w opisach związanych z działaniem Amazon S3.
Najważniejszymi sformułowaniami są:
Bucket – to rodzaj folderu, w którym przechowuje się obiekty. Pełni on rolę m.in. w organizacji przestrzeni w ramach S3 oraz nadawaniu do niego dostępów.
Obiekty – tak nazywamy pliki, które przechowywane są w bucketach.
Klucz – unikalny identyfikator obiektu w ramach bucketu. Każdy obiekt w S3 można zidentyfikować po kombinacji nazwy bucketu, klucza oraz opcjonalnie id wersji danego obiektu.
Region – to geograficzna lokalizacja, w której Amazon przechowuje dane. W tym momencie jest ich 14. Wybór odpowiedniego regionu jest bardzo istotny, gdyż ma on wpływ m.in. na opóźnienia w przesyłaniu danych oraz koszty tej usługi.
Availability Zone(AZ) – To wyizolowana lokalizacja w ramach Data Center, w ramach jednego regionu.
Zalety
Wiesz już czym jest Amazon S3 i do czego możesz go użyć. Znasz też kluczowe pojęcia, które trzeba przyswoić używając tej usługi. Pewnie teraz zastanawiasz się, co w nim takiego wyjątkowego? Dlaczego warto skorzystać właśnie z tego rozwiązania i jakie są jego zalety?
Oczywiście jest ich całe mnóstwo. W moim odczuciu najważniejsze to:
- Natychmiastowy start – Nie musisz kupować i konfigurować infrastruktury. Od skorzystania z nieograniczonej przestrzeni dyskowej dzieli Cię tylko kilka kliknięć myszki.
- Nieograniczona powierzchnia – W S3 praktycznie nie masz ograniczeń w dostępnej przestrzeni dyskowej. Nie musisz wiec martwić się, że jej zabraknie. Jedynym ograniczaniem, którego musi pilnować, jest wielkość pojedynczego obiektu. Wynosi ona 5 TB.
- Skalowalność – Po co zgadywać jak dużego dysku będziesz potrzebować? Z S3 nie musisz się z góry deklarować, na powierzchnie którą masz zamiar wykorzystywać. Umieszczasz tyle danych, ile potrzebujesz, wiedząc, że nigdy nie zabraknie Ci miejsca.
- Koszty – Płacisz tylko za to co faktycznie wykorzystasz. Aktualny Amazon S3 znajduje się pod tym linkiem.
- Trwałość – Amazon gwarantuje trwałość danych nawet do poziomu 99,999999999%. Uzyskujesz więc pewność, że jeśli umieścisz dane na S3, one rzeczywiście tam się znajdują, są bezpieczne i nie ulegną skasowaniu.
- Wysoka dostępność – Dostępność to możliwość dostępu do danych wtedy, kiedy tego potrzebujesz. W AWS jest ona na poziomie 99,99%.
- Dostęp na różne sposoby – W zależności od tego czego potrzebujesz i jak Ci jest wygodniej, możesz uzyskać dostęp do swoich danych przez konsolę AWS, przez SDK, przez API lub przez CLI.
- Bezpieczeństwo – Transfer szyfrowany jest za pomocą SSL. Jest kilka sposobów zabezpieczenia obiektów, ale najbardziej popularny to SSE, czyli automatyczne szyfrowanie po stronie serwera (256 bitów) przy zapisie i odczycie danych.
Porady
Na co zwrócić uwagę tworząc bucket? Jak wykorzystać jego możliwości? Poniżej znajdziesz kilka ciekawych porad, na temat opcji, które masz konfigurując bucket.
Ciekawym rozwiązaniem jest ustawienie Lifecyle Rules. Dają one możliwość automatycznego usuwania obiektów lub ich archiwizacji. Tworząc bucket możesz skonfigurować go w taki sposób, aby obiekty w nim się znajdujące, były po pewnym czasie kasowane.
Jeśli nie chcesz się ich pozbywać, a jednocześnie nie potrzebujesz korzystać z nich zbyt często, dobrym rozwiązaniem jest archiwizacja. AWS pozwala ustawić regułę przenoszenia danych do usługi Amazon Glacier. Czemu warto to robić i nie trzymać wszystkich obiektów na S3? Odpowiedzią jest cena. Glacier jest najtańszym rozwiązaniem storagowym oferowanym przez Amazona. Wybierając ta usługę masz dostęp do przechowywanych w niej danych dostępne na żądanie. Po złożeniu odpowiedniej prośby (zgłaszanej przez jedno kliknięcie) uzyskasz do nich dostęp po ok. 3-5 h.
Przy umieszczaniu obiektu w buckecie masz możliwość wybrania jego klasy. Jeśli zdecydujemy się na standardową, gwarantowana trwałość i dostępność będzie na poziomach o których wspomniałem wcześniej (odpowiednio 99,999999999% i 99,99%). Możemy jednak zdecydować się na inne rozwiązania które nazywa się reduced redundancy. Ta klasa ma niższe poziomy dostępności i trwałości, ale przechowywania na niej danych jest tańsze, niż w klasie standardowej. Jeszcze tańszym rozwiązaniem jest Amazon Glacier, o którym wspomniałem powyżej.
Jeśli zdecydujemy się na klasę standardową AWS domyślnie zapisze nasze dane w minimum 3 AZ. Tym samym będą one przechowywane w minimum 3 miejscach. W wypadku ewentualnej niedostępności jednego z nich, system automatycznie przekieruje nasze zapytanie do innego Availability Zone, zapewniając stały dostęp do danych.
Istnieje również możliwość przechowywania wszystkich wersji danego obiektu. Daje to możliwość łatwego odzyskania danych w przypadku ich przypadkowego nadpisania lub usunięcia.
Jeśli chcesz, możesz ograniczyć dostęp do bucketu lub obiektu. Możesz to zrobić określając politykę dostępu na poziomie bucketu albo poprzez odpowiednie ustawienia uprawnień w ramach usługi IAM, (służy do zarządzania kontami użytkowników w AWS). Dzięki temu możesz zdecydować, kto i w jakim zakresie ma dostęp do przechowywanych przez Ciebie danych.
To tylko niektóre, ciekawe możliwości S3. Jest ich oczywiście dużo więcej. AWS daje nam wiele opcji konfiguracji i to jak będzie ostatecznie wyglądał storage, w dużej mierze zależy od Twoich potrzeb.
Jak założyć bucket?
Tak jak wspomniałem utworzenie bucketu nie jest trudne i wystarczy kilka kliknięć, aby móc cieszyć się jego możliwościami. Aby ułatwić Twój start pokażę Ci jak proste jest stworzenie bucketu w AWS.
Zanim jednak zaczniemy, niezbędne jest konto Amazon Web Services. Możesz je utworzyć wchodząc na stronę AWS i klikając w prawym górnym rogu stron aws.amazon.com
Po przejściu tego procesu i założeniu konta, w widoku AWS Management Console w dziale „Storage” wybierz zakładkę S3.
Po wejściu na ta podstronę zobaczysz panel zarzadzania Twoim S3. Jeśli dopiero założyłeś konto, tabelka będzie pusta. Aby założyć bucket, kliknij przycisk ”Create bucket”.
Nazwa i region
Bucket musi mieć unikalną nazwę, która będzie niepowtarzalna nie tylko w skali Twojego konta, ale również całej infrastruktury AWS. Po jego utworzeniu, nie możesz już jej zmienić, dlatego dobrze przemyśl, jak chcesz go nazwać. Dobrym zwyczajem jest umieszczenie w nazwie odniesienia do tego co będziemy w nim trzymać.
W polu region wybierz odpowiedni dla swoich wymagań. Jeśli działasz na terenie Europy i zależy Ci na szybkości najlepiej niech będzie to Frankfurt (eu-central-1,) Irlandia(eu-west-1) albo Londyn (eu-west-2). Jeśli ważniejsza jest dla Ciebie cena, lepiej wybrać region w USA, np. N.Virginia (us-east). Po wykonaniu tych czynności, można by było zakończyć tworzenie bucketu, wybierając opcję „Create”. Nie rób tego jeszcze. W dalszej części artykułu poznasz konfigurację zaawansowaną.
Jak wspomniałem, istnieje możliwość, skorzystania z kreatora zaawansowanego , przez którego etapy teraz wspólnie przejdziemy. Zamiast buttona „Create” kliknij „Next”. Przed oczami zobaczysz następujący obraz :
Za co odpowiadają poszczególne zakładki?
1 – Versioning – Uruchomienie tej opcji pozwala na trzymanie wielu wersji tego samego pliku w buckecie. Ta opcja przydaje się, jako zabezpieczenie plików przed ich przypadkowym nadpisaniem i usunięciem.
2- Server access logging – Pozwala na śledzenie żądań dostępu. Uruchomienie tej opcji pozwala określić żądającego, nazwę bucketu, czas żądania, żądaną akcję, status odpowiedzi oraz ewentualny kod błędu. Funkcja ta, jest przydatna przy audytach bezpieczeństwa i dostępów oraz przy kontroli wydatków.
3 – Tags – Pozwalają śledzić Twoje aktualne koszty w stosunku do założonych..
4 - Object – level logging – Ta funkcja jest dodatkowa płatna. Za pomocą usługi Cloudtrail pozwala śledzić wcześniej określone wydarzenia związane z bucketem ( np. usunięcie z niego plików o określonej nazwie)
5 – Default encryption - Możesz ustawić domyślne szyfrowanie, tak aby wszystkie przechowywane w buckecie obiekty były szyfrowane.
Po wybraniu interesujących Cię ustawień, możesz przejść do kolejnego kroku klikając „Next”.
Uprawnienia
W tej zakładce możesz nadać uprawnienia (konkretnym osobom lub publiczne) do umieszczenia i usuwania obiektów w buckecie oraz do ich odczytu i nadpisywania. Od Ciebie zależy jakie dostępy, komu nadasz.
Gdy skonfigurujesz już odpowiednie uprawnienia kliknij przycisk „Next”.
Podsumowanie
Na koniec, pojawi się podsumowanie wszystkich wybranych opcji. Jeśli zdecydujesz się coś zmienić, możesz to zrobić klikając ”Edit”. Jeśli wszystko się zgadza, kliknij przycisk "Create". W trakcie konfiguracji, nie wybrałem żadnych dodatkowych funkcji, więc u mnie ekran wygląda następująco:
Podsumowanie
W tym artykule przybliżyłem Ci usługę Amazon S3. Po jego lekturze wiesz już do czego ona służy i jakie są jej zalety. Znasz również przykłady ciekawych konfiguracji, a nawet wiesz, jak utworzyć swój pierwszy bucket.
Oczywiście to tylko mała próbka tego, co daje nam Amazon Web Services. S3 można użyć również do hostowania statycznej strony internetowej (będziemy o tym pisać w kolejnych artykułach). Prawdziwy ocean możliwości, które nam daje Amazon, to odpowiednie łączenie usług. Do tego jednak potrzeba znajomości całej oferty AWS i dużego doświadczenia w tym temacie. Jeśli więc potrzebujesz pomocy w konfiguracji Amazon Web Services, skontaktuj się z nami. Nasi certyfikowani eksperci wiedzą, jak Ci pomóc. Więcej info znajdziesz tutaj.
Jeśli podobał Wam się ten artykuł napiszcie proszę o tym w komentarzu. Mile widziane są sugestie odnośnie innych tematów, które Was interesują :)
Nie wiesz, czy cloud to miejsce odpowiednie dla Ciebie?
A może potrzebujesz pomocy przy konfiguracji?
Zobacz jak możemy Ci pomóc.
Dowiedz się więcej