AWS, czyli Amazon Web Services, jest dziś najpopularniejszą chmurą obliczeniową na świecie posiadając blisko 1/3 udziałów na tym niezwykle dochodowym rynku. Przez lata swojej rynkowej egzystencji, AWS rozrastał się o kolejne usługi, których liczba w chwili pisania tego artykułu wynosi pokaźne 165 pozycji. Powiadają, że od przybytku głowa nie boli, ale początkujący użytkownik chmury łatwo może się zgubić w tak rozbudowanej ofercie – stąd, aby nieco ułatwić to zadanie, w tym artykule znajdziesz informacje o piętnastu najbardziej podstawowych i najczęściej wykorzystywanych usługach dostępnych na platformie Amazon Web Services. 

Niniejszy artykuł jest pierwszym artykułem z serii „Podstawy AWS”, której celem jest przybliżenie działania chmury obliczeniowej oraz podstawowych umiejętności związanych z administracją nią na przykładzie Amazon Web Services. Na łamach serwisu regularnie pojawiać się będą kolejne wpisy z tej serii – zachęcam do zaglądania. 

Podstawowe usługi AWS, które warto znać 

Poniższa lista zawiera jedynie skrawek możliwości oferowanych przez Amazon Web Services. Wybór usług jest subiektywny i podyktowany popularnością, użytecznością, a także mający na celu ukazanie przeróżnych możliwości wykorzystania chmury obliczeniowej.

1. Amazon EC2

Amazon EC2

Amazon EC2, czyli Elastic Compute Cloud, to nic innego, jak wirtualne maszyny w chmurze z możliwością skalowania, tak zwane instancje chmurowe. Istnieje kilkadziesiąt typów maszyn dostosowanych do różnych zadań i różniących się ilością wirtualnych rdzeni CPU, pamięci RAM, obecnością GPU oraz lokalnego dysku, a także sposobem rozliczeń za wykorzystane zasoby. Instancje chmurowe EC2 przypominają w działaniu serwery VPS, ale – wbrew obiegowej opinii – nie są nimi. Więcej o różnicach pomiędzy instancją chmurową, a serwerem VPS dowiesz się z tego artykułu.

2. Amazon S3 

Amazon S3 usługi AWS

Simple Storage Service to rozwiązanie zapewniające dostęp do storage’u obiektowego w chmurze. W celu zapewnienia maksymalnej dostępności i bezpieczeństwa, dane mogą być kopiowane pomiędzy trzema odrębnymi lokalizacjami, co za pomocą potrójnej redundancji zapewnia 99,999999999% trwałość danych. Dane w Amazon S3 są przechowywane w tak zwanych bucketach (wiaderkach) bez limitu pojemności. Buckety mogą być prywatne lub publiczne, dostępne przy pomocy specjalnego API, możliwe jest również przypisanie domeny do poszczególnych bucketów.

Istnieje kilka klas Amazon S3, różniących się przede wszystkim ilością lokalizacji (trzy lub jedna), możliwością inteligentnego dopasowywania się do różniących się w czasie wymagań odnośnie dostępności w celu optymalizacji kosztów, a także dedykowanych dla sporadycznego użytku. Wydzielono także specjalną klasę S3 Glacier, która służy głównie jako archiwum: w zamian za czas dostępu od kilku minut do kilku godzin, pozwala przechowywać duże ilości danych bardzo niskim kosztem.

3. Amazon EBS 

Amazon EBS

Elastic Block Store to w nomenklaturze AWS woluminy w chmurze. Są rozwiązaniem storage’u blokowego. Można je przyrównać do dysków, które przypinane są do instancji EC2. Podobnie, jak w przypadku Amazon S3, również woluminy EBS podzielono na klasy: od wolniejszych dysków HDD, przez standardowe SSD, aż po SSD o zwiększonej wydajności i gwarantowanej ilości IOPS. Możliwe jest robienie tzw. snapshotów, które pozwalają utworzyć migawkę woluminu w danej chwili i zapisać ją w Amazon S3, z możliwością późniejszego przywrócenia. To rozwiązanie przydaje się szczególnie wówczas, gdy na instancji EC2 mają zostać wprowadzone ryzykowne zmiany: w razie niepowodzenia operacji, można przywrócić instancję do stanu sprzed wprowadzenia modyfikacji. Woluminy EBS można również przepinać między instancjami.

4. Amazon RDS 

Amazon RDS

Amazon Relational Database Service to nic innego, jak specjalne instancje dedykowane obsłudze baz danych MySQL, MariaDB, PostgreSQL, Oracle, Microsoft SQL Server oraz Amazon AuroraDB. Amazon RDS zdejmuje z użytkownika podstawowe czynności administracyjne dla silników baz danych, które wykonywane są przez AWS: są one aktualizowane, tworzone są ich kopie zapasowe i repliki, wgrywane patche. Amazon RDS umożliwia przechowywanie od 5 GB, aż do 6 TB danych na dyskach HDD lub SSD.

5. Amazon VPC

Amazon Virtual Private Cloud pozwala spiąć usługi AWS w całość przy pomocą prywatnych wirtualnych sieci. Są im przypisywane zakresy prywatnych adresów IP, które mogą być podzielone na podsieci oraz wykorzystywać publiczne adresy IP do komunikacji ze światem zewnętrznym. W przeciwieństwie do swoich usług składowych, usługa VPC jest darmowa.

6. Amazon CloudFront

Amazon CloudFront

Amazon CloudFront to usługa CDN, czyli rozproszony system dostarczania treści do wielu centrów danych i punktów wymiany ruchu w internecie. W swym działaniu przypomina popularną usługę CloudFlare. Umożliwia znaczne skrócenie czasu odpowiedzi serwera w różnych lokalizacjach na Ziemi dzięki dostarczaniu treści z wielu centrów danych zamiast jedynego, w którym umieszczony jest serwer.

7. AWS Auto Scaling

AWS Auto Scaling wychodzi naprzeciw rosnącemu lub skokowemu zapotrzebowaniu na moc obliczeniową przez usługi, takie jak strony lub aplikacje internetowe. Umożliwia zarządzanie farmami serwerów, które dostosowują się do zapotrzebowania i umożliwiają optymalizację kosztów. AWS Auto Scaling jest wręcz idealnym przykładem, jak wykorzystując chmurę obliczeniową można zmniejszyć koszta poprzez automatyczne dostosowywanie zasobów do zapotrzebowania dzięki jej elastyczności.

8. AWS Lambda 

Amazon Lambda

AWS Lambda to rozwiązanie typu serverless. Zamiast tworzyć i zarządzać instancjami, możliwe jest podanie usłudze Lambda kodu aplikacji, ona zaś inteligentnie dostosuje zasoby do zapotrzebowania. Usługa nie wymaga jakiejkolwiek administracji, a naliczanie opłat zachodzi jedynie wówczas, gdy kod jest wykonywany.

9. Amazon Elasticache

AWS Elasticache

Amazon Elasticache to usługa zapewniająca mechanizmy pamięci podręcznej (cache) z wykorzystaniem technologii Redis lub Memcached. Jest skalowalna i zarządzana przez AWS. Jej działanie ma ogromny wpływ na wydajność aplikacji, szczególnie tych, które wymagają maksymalnie krótkich opóźnień w dostępie do danych.

10. Amazon SNS 

Amazon SNS

Amazon Simple Notification Service to usługa umożliwiająca wysyłanie powiadomień, którą można zintegrować z dowolną aplikacją i platformą webową lub mobilną. Usługa może wysyłać powiadomienia w formie wiadomości email, SMS, HTML, SQS, a także pracować na serwerze pocztowym.

11. Amazon DynamoDB

Amazon DynamoDB

Amazon DynamoDB to w pełni zarządzana przez AWS baza danych NoSQL typu serverless obsługująca powiązania typu klucz-wartość oraz strukturę danych dokumentów. Zapewnia milisekundowy czas odpowiedzi, obsługę 10 biliardów zapytań dziennie ze szczytową wydajnością 20 milionów zapytań na sekundę, wbudowane mechanizmy bezpieczeństwa, backupu i przywracania, a także niemalże nieskończoną skalowalność. Robi wrażenie.

Amazon DynamoDB jest wykorzystywana do baz NoSQL wymagających krótkich czasów dostępu w aplikacjach mobilnych, webowych, IoT, czy grach.

12.  Amazon Lightsail

Amazon Lightsail

Amazon Lightsail można uznać za uproszczone instancje EC2 służące do hostowania stron i aplikacji internetowych, będące odpowiednikiem serwerów VPS w świecie Amazon Web Services. Możliwość prostego szacowania kosztów, obecność interfejsu pozwalającego na instalację stosu LAMP, a nawet WordPressa, a także szybkiej migracji ku instancjom EC2 i wykorzystania całej potęgi usług AWS, czynią z usługi Lightsail dobry punkt startowy dla tych, którzy chcą utworzyć lub przenieść swoje strony internetowe i aplikacje na tę chmurę w sposób prosty i przystępny nawet dla początkującego użytkownika.

13. AWS Elastic Beanstalk 

AWS Elastic Beanstalk

Usługa AWS Elastic Beanstalk jest bardzo podobna do AWS Lambda, ale jednocześnie stworzona w dedykacji dla deweloperów tworzących projekty z wykorzystaniem Java, .NET, PHP, Node.js, Python, Ruby, Go, oraz Docker na serwerach webowych, takich jak Apache, Nginx, Passenger oraz IIS. Podobnie, jak w przypadku usługi Lambda, zadaniem użytkownika jest jedynie podanie kodu – Elastic Beanstalk, jako usługa typu serverless, sam zajmie się dostarczeniem pamięci, load-balancingiem, autoskalowaniem i monitorowaniem pracy aplikacji. Wszystko idealnie dostosowane do wymagań aplikacji.

14. AWS Amplify 

AWS Amplify

AWS Amplify to kolejna usługa dedykowana deweloperom aplikacji. Znacząco upraszcza ona rozwój, wdrażanie oraz wsparcie aplikacji mobilnych oraz webowych poprzez dostarczenie zasobów oraz zarządzanie backendem aplikacji, a także zapewnienie prostego frameworka, który umożliwia integrowanie backendu aplikacji z jej frontendem. Automatyzuje ona także proces wydawniczy aplikacji, spinając frontend i backend, a przez to umożliwiając szybsze wprowadzanie nowych funkcjonalności i poprawek.

AWS Amplify integruje w sobie możliwości różnych usług AWS, zarządzając nimi i rezerwując zasoby w sposób bezobsługowy. Usługa Amplify jest dedykowana platformom iOS, Android, web oraz React Native.

15. Amazon Route 53 

Amazon Route 53

Route 53 to usługa zapewniająca serwer DNS. Jak każdy tego typu serwer, jej zadaniem jest tłumaczenie nazw domenowych (np. magnifier.pl) na adresy IP serwerów (np. 51.38.130.141). Ułatwia globalne zarządzanie ruchem, tworzenie ścieżek routingu, dba o przekazywanie ruchu do poprawnie działających serwerów. Podobnie, jak zdecydowana większość usług AWS, także Route 53 potrafi świetnie dogadać się z Amazon S3 oraz EC2, dzięki szerokim możliwościom integracji.

Podsumowanie

Wymienione piętnaście usług Amazon Web Services to jedynie wierzchołek góry lodowej. AWS oferuje znacznie, znacznie więcej ciekawych i użytecznych usług, które potrafią znacząco zwiększyć wydajność aplikacji, zminimalizować koszta oraz zapewnić ogromną elastyczność. Aby poznać wszystkie usługi AWS, warto odwiedzić aws.amazon.com, gdzie znajduje się pełna lista usług, cenniki, sposoby wykorzystania i funkcjonalności. Amazon Web Services, a także bezpośredni konkurenci w postaci Microsoft Azure oraz Google Cloud Platform, to bezmiar możliwości, które w dzisiejszych czasach przetwarzania chmurowego naprawdę warto znać.