Local Zone w Warszawie
2 grudnia 2021 roku, w trakcie re:Invent 2021, Werner Vogels zapowiedział powstanie w 2022 roku Local Zone w Warszawie. Zapanował ogólny entuzjazm i radość.
Local Zone w Warszawie
Wczoraj AWS udostępnił ją po prawie rocznym oczekiwaniu.
Postaram się wyjaśnić czym Local Zone jest, a czym zdecydowanie nie jest.
AWS Region i High Availability
W żadnym wypadku nie możemy porównywać Local Zone do regionu. To zupełnie coś innego.
Region w AWS to koncepcja połączonych ze sobą data centers, zgromadzonych, nomen omen, w jakimś regionie. Taka grupa data centers to z kolei Availability Zone. Każdy z regionów składa się więc z wielu, odseparowanych od siebie AZs.
Każda z takich availability zon posiada odrębne źródła zasilania i połączone są między sobą szybkimi i redundantnymi sieciami.
Takich regionów w chwili obecnej mamy w AWS 25. Są to naprawdę ogromne pod kątem infrastruktury rozwiązania.
Projektując wysoko dostępne rozwiązania w chmurze AWS najczęściej koncentrujemy się na jednym regionie. Najczęściej, ponieważ w przypadku konieczności zapewnienia naprawdę bardzo wysokiej dostępności, rozwiązania mogą być tworzone za pomocą kilku regionów. To na wypadek awarii jednego z nich.
Załóżmy jednak, że pozostajemy na poziomie jednego regionu. Także w takim przypadku warto zadbać o HA. Przypadki, w których usługi w jakiejś availability zonie przestają działać się zdarzają. Dlatego warto używać ich więcej niż jednej, w ramach regionu.
Tutaj sprawy zaczynają się komplikować. Usługi zarządzane przez vendora, takie jak Amazon S3 lub moja ulubiona AWS Lambda, domyślnie uruchamiane są w kilku AZs i ten problem, z naszego punktu widzenia nie istnieje. W przypadku usług bardziej typowych, uruchamianych w sieciach, takich jak maszyny wirtualne w usłudze Amazon EC2 lub klastry kubernetesa w Amazon EKS to od nas zależy jak rozmieścimy zasoby. I w znacznej większości przypadków umieszczamy je w ramach kilku AZs.
Siła regionu. Awaria nawet całego data center nie powoduje awarii naszej aplikacji.
AWS Local Zone
Zacznę od powodu wprowadzenia local zones do oferty. W większości przypadków wydajność zapewniana przez zasoby w regionach jest całkowicie wystarczająca. Istnieją jednak aplikacje, które wymagają bardzo krótkich czasów odpowiedzi lub ogromnej przepustowości. Gry real-time, streaming video na żywo, machine learning, procesy migracyjne to niektóre z przykładów. Dla takich rozwiązań local zone, które rozmieszczone są blisko dużych aglomeracji powinny dobrze się sprawdzić. Nie są one jednak regionem. Są częścią regionu, jeszcze jedną zoną, umieszczoną bliżej użytkownika.
W chwili obecnej dostępne są one tylko w USA. Na przyszły rok AWS zapowiedział uruchomienie kolejnych, na całym świecie. W tym jedną w Polsce.
Oprócz opisanych już różnic, local zone od regionu różni się także dostępnością usług.
W każdej z dotychczasowo dostępnych local zones dostępne są na chwilę obecną następujące usługi:
- Amazon EC2
- Amazon EBS
- Amazon EKS
- Amazon ECS
- Amazon VPC
- Amazon FSx
- Amazon EMR
Local zone w Los Angeles ma kilka dodatkowych usług jak bazy danych RDS czy ElastiCache, ale nigdzie nie znajdziemy usług Cloud Native w rodzaju AWS Lambda, Amazon DynamoDB czy Amazon S3. Możemy z nich oczywiście korzystać, ale w ramach głównego regionu.
Poza dostępnością usług, różnią się także ich ceny. Przykładowo, gdy to piszę, instancja t3.xlarge w regionie Ohio kosztuje 0,1664$ za godzinę w modelu on-demand. Ten sam region, ale local zone w Miami to koszt 0,208$ za godzinę. Dodatkowo nie w każdej local zonie dostępne będą na przykład instancje typu spot, przy wykorzystaniu których oszczędności sięgają nawet 90%.
Jak to wygląda w praktyce?
Domyślnie local zony nie są nawet dostępne. Aby umożliwić sobie korzystanie z nich, należy je włączyć w Dashboardzie EC2 na poziomie regionu.
Przykładowo, możemy uruchomić sobie local zonę w Bostonie
Od tego momentu mogę z takiej local zony korzystać podobnie do availability zony. Pokażę na przykładzie sieci.
VPC w AWS tworzymy na poziomie regionu. Podsieci na poziomie availability zon. Bez korzystania z local zony możemy mieć więc coś podobnego do schematu poniżej:
Wszystkie podsieci mogą być oczywiście ze sobą połączone. Dodajmy teraz do tego podsieć w local zone w Bostonie i nasza sieć będzie wyglądała na przykład tak:
Nic nie stoi na przeszkodzie abyśmy umieszczali nasze zasoby w każdej z podsieci. Przy odpowiedniej konfiguracji będą one mogły się pomiędzy sobą komunikować.
Elementy krytyczne z punktu widzenia wydajności możemy umieścić w local zone, a pozostałe w innych AZs w ramach regionu.
Podsieci może być oczywiście więcej, po kilka w jednej AZ.
Więcej ciekawych przykładów można znależć na blogu AWS.
Co mamy w Warszawie
Na początek dostaliśmy:
- EC2: C5, R5, G4dn, M5 (dojdą T3)
- EBS: gp2
- Shield: standard
- ECS
- EKS
- VPC
- Direct Connect
Jeszcze cennik maszyn na otwarcie (2022.10.28).
To tyle.
Podsumowanie
Zawsze powtarzam, że nawet uruchomienie całego regionu w naszym kraju w wielu przypadkach nie zmieni aż tyle, ile mogłoby się wydawać. Tym bardziej nie zmieni tego local zone uruchomione w Warszawie.
W większości przypadków już to co oferuje AWS sprawdzi się doskonale w ramach zaspokajania naszych potrzeb. Korzystajmy więc po prostu mądrze z tego co jest dostępne.
Nie popadajmy w euforię z powodu local zone w Polsce, ale także nie wstrzymujmy ekspansji chmurowej w oczekiwaniu na region w Polsce. Nie kierujmy się też przypadkiem tym czynnikiem przy wyborze dostawcy chmurowego. Oczywiście jeżeli nie stoją na przeszkodzie względy prawne.