Scott Tiger Tech Blog

Blog technologiczny firmy Scott Tiger S.A.

Archiwum dla Luty 3rd, 2015

Amazon Web Services Storage

Autor: Piotr Karpiuk o 3. lutego 2015

Wybierając usługę chmury Amazona zwykle określamy region w którym ona ma fizycznie działać (USA, Brazylia, Azja, Europa), różnice cen między regionami zwykle wahają się w okolicach 10%. Każdy region jest podzielony na osobno zasilane i rozrzucone geograficznie strefy dostępności (ang. availability zones, AZ). Niektóre usługi (np. EBS – dysk sieciowy, patrz niżej, czy instancja EC2 – maszyna wirtualna) wymagają podania również strefy dostępności. Amazon ma dedykowane, szybkie połączenia sieciowe między strefami dostępności w obrębie tego samego regionu.

Propozycje Amazonu w zakresie przechowywania danych:

  • Instance storage: w wynajętej maszynie wirtualnej może być podłączony dysk SSD lub HDD o żądanej pojemności, np. instancja typu c3.8xlarge ma 2 dyski SSD po 320 GB każdy
  • Elastic Block Storage (EBS) [Cennik]: odpowiednik NASa, czyli dysk sieciowy widoczny tak samo jak dysk lokalny; jego standardowa wydajność jest słaba i wynosi ok. 100 IOPS (I/O operations per second), ale można zażyczyć sobie opcję Provisioned IOPS pozwalającą zwiększyć wydajność nawet 40-krotnie poprzez zarezerwowanie przepustowości sieci w obrębie strefy dostępności, co oczywiście dodatkowo kosztuje.
    Inne cechy EBS:
    • rozmiar jednego wolumenu waha się między 1GB a 1TB; na jednym koncie AWS można mieć max. 20 wolumenów EBS
    • cykl życia wolumenu EBS jest niezależny od instancji EC2 — można go przepinać między różnymi maszynami wirtualnymi,
    • funkcjonalność migawek (ang. snapshots) pozwala wykonać (spakowaną) migawkę zawartości wolumenu w postaci obiektu S3 (patrz dalej) a kolejne migawki mogą być przyrostowe (uwzględniają tylko zmiany od poprzedniej migawki); nowy wolumen EBS można wypełnić migawką,
    • Amazon twierdzi że każdy wolumin EBS jest duplikowany dla uchronienia się przed awarią dysku (macierz?)
  • Simple Storage Service (S3) [Cennik]: bodaj najpopularniejsza usługa Amazonu, mówi się o niej że jest magazynem Internetu (ang. the filing cabinet of the Internet), bazują na niej firmy takie jak Dropbox, Netflix czy Medcommons (ta ostatnia przechowuje w chmurze dane medyczne pacjentów). Szacuje się że 25% dużych aplikacji enterprise korzysta z S3. W ciągu ostatnich 2 lat ceny przechowywania 1 GB spadły 3-krotnie.
    • każdy obiekt ma swój klucz (łańcuch) i wartość (ciąg bajtów o wielkości od 1B do 5TB),
    • obiekty są przechowywane w wiadrach (ang. bucket, odpowiednik tabeli), jedno konto AWS może mieć max. 100 wiader; wiadro jest umiejscowione w konkretnym regionie
    • każdy obiekt S3 ma swojego URLa postaci http://s3.amazonaws.com/bucket/key, np. http://s3-us-west-1.amazonaws.com/aws4dummies/Cat+Photo.JPG i jest dostępny poprzez interfejs REST (czyli np. z przeglądarki internetowej, curl-em, itp.) o ile nadamy mu odpowiednie uprawnienia,
    • nie obsługuje modyfikacji, np. poprzez dołączenie czegoś na końcu; można tylko nadpisać obiekt nowym obiektem (można włączyć wersjonowanie, czyli dostęp do poprzednich wersji obiektu) – jest to bardzo duża różnica w porównaniu z plikiem w typowym systemie plików,
    • uprawnienia mają postać listy ACL określającej kto może wykonywać jakie operacje, klasy użytkowników to: właściciel, wskazani użytkownicy lub grupy, autoryzowani użytkownicy AWS, każdy.
    • obiekt może mieć datę ważności, po upływie której jest usuwany (stosowane np. przy wypożyczaniu filmów na określony czas), lub przenoszony do archiwum (usługa Glacier, patrz niżej),
    • obiekty mogą być szyfrowane,
    • można logować dostęp do obiektów,
    • w celu zapobiegania awariom i zwiększenia dostępności każdy obiekt jest duplikowany na kilku maszynach; można zrezygnować z tej możliwości aby zmniejszyć koszty usługi
  • DynamoDB [Cennik]: NoSQLowa baza typu key-value, odpowiednik opisanej wcześniej na blogu bazy danych Riak; korzysta z dysków SSD, dane są duplikowane w różnych strefach dostępności regionu; dostęp jest poprzez REST, lub z poziomu języków Java, .NET, Python i PHP.
  • Glacier [Cennik]: usługa backupu oparta na S3; pojedynczy plik archiwum może mieć do 40TB, dane są szyfrowane i przesyłane po SSL; zamiast wysyłać zawartość dysku po sieci, można pocztą zwykłą wysłać do Amazona fizyczny dysk – jego zawartość zostanie wrzucona do Glaciera przez pracownika Amazonu.
  • RDS [Cennik]: relacyjna baza danych (Oracle, MySQL, PostgreSQL, SQL Server, Aurora)

Zwraca się uwagę, że usługi przechowywania danych oferowane przez Amazona: DynamoDB a zwłaszcza sztandarowa S3, są świetnie przystosowane do ery BigData: nie trzeba deklarować ani rezerwować wymaganej przestrzeni dyskowej ponieważ ten sposób przechowywania danych jest wybitnie skalowalny i nie ogranicza się do pojedynczej maszyny. Redundancja w celu zapewnienia odporności na awarie pozwala nie martwić się o backupy.

Powstaje pytanie czym różni się w praktyce usługa S3 od DynamoDB. Odpowiedź na to pytanie znajdziemy w DynamoDB FAQ:

Q: When should I use Amazon DynamoDB vs Amazon S3?

A: Amazon DynamoDB stores structured data, indexed by primary key, and allows low latency read and write access to items ranging from 1 byte up to 400KB. Amazon S3 stores unstructured blobs and suited for storing large objects up to 5 TB. In order to optimize your costs across AWS services, large objects or infrequently accessed data sets should be stored in Amazon S3, while smaller data elements or file pointers (possibly to Amazon S3 objects) are best saved in Amazon DynamoDB.

Tags:
Napisany w Cloud computing | Brak komentarzy »