Aktualizacja Amazon MQ - nowa usługa brokera wiadomości RabbitMQ
W 2017 roku, Amazon uruchomił usługę o nazwie Amazon MQ, czyli zarządzany system kolejek dla Apache ActiveMQ , popularnego message brokera open-source, który jest szybki i bogaty w funkcje. Usługa ta oferuje kolejki i tematy, trwałe oraz nietrwałe subskrypcje, wysyłanie wiadomości w trybie „push” i „pull” oraz filtrowanie.
AWS wprowadził wiele nowych funkcji w oparciu o informacje zwrotne od klientów, w celu poprawy skalowalności i wysokiej dostępności, takich jak: skanowanie pionowe i optymalizacja pod względem przepustowości, umowa o poziomie usług (SLA) 99,9%, obsługa uwierzytelniania i autoryzacji LDPAD czy zgodność ze standardami, takimi jak: HIPAA, ISO/PCI DSS, SOC, oraz FIPS 140-2 zatwierdzonymi w amerykańskich regionach handlowych.
Nie tylko ActiveMQ, ale również RabbitMQ jest jednym z najpopularniejszych message brokerów typu open source oraz niezbędnym komponentem aplikacji rozproszonych. Niektórzy klienci wybierają RabbitMQ dla bogactwa funkcji, aktywnego wsparcia społeczności oraz szerokiego zakresu wspieranych klientów i frameworków. Jednakże, RabbitMQ wymaga istotnego zainwestowania w specjalistyczną wiedzę niezbędną do tworzenia i łączenia złożonych klastrowych wdrożeń. Firmy, które chcą zmienić brokera i przejść na usługę zarządzaną, muszą inwestować tygodnie na zmianę ich aplikacji.
4-go listopada 2020 roku, AWS uruchomił Amazon MQ for RabbitMQ, zarządzaną usługę message broker, która zmniejsza koszty operacyjne związane z jej utrzymaniem. Tysiące klientów wykorzystało już usługę Amazon MQ do zredukowania ogólnych kosztów operacyjnych w ich systemach kolejek. Rozszerzenie kompatybilności Amazon MQ poprzez dodanie usługi RabbitMQ uwolniło wiele firm od złożonego wdrażania, skalowania, oraz utrzymania systemu kolejek.
Dzięki uruchomieniu nowej usługi, AWS umożliwił użytkownikom kontynuowanie używania preferowanego brokera przy zachowaniu minimalnego narzutu operacyjnego i w opłacalnym modelu kosztowym. Amazon MQ redukuje ilość prac związanych z wdrożeniem pojedynczych jak i klastrowanych systemów kolejek, poprzez automatyczne przygotowanie infrastruktury i konfigurację oprogramowania. W ramach usługi zarządzanej, Amazon MQ dba o utrzymanie wszystkich komponentów m.in. poprzez aktualizację systemów operacyjnych jak i zainstalowanych brokerów.
Amazon MQ dla RabbitMQ – Pierwsze kroki
Aby utworzyć nowy klaster RabbitMQ, należy kliknąć w przycisk Get started w konsoli Amazon MQ, a następnie wybrać broker engine, niezależnie czy będzie to ActiveMQ czy RabbitMQ, oba oferują natywne obsługę protokołu AMQP 0.9.1 z bibliotekami klienta dla różnych platform, w tym Ruby, Python, Node.js, .NET i innych.
W następnym kroku należy wybrać tryb wdrożenia usługi RabbitMQ. Wdrożenie z jednym brokerem (Single-istance broker) będzie posiadało jedną instancję brokera w jednej strefie dostępności, a wdrożenie Cluster – trzy instancje brokera, zapewniające współdzielony stan, użytkowników i kolejki. W przypadku wdrożenia w klastrze, dane przechowywaną są dodatkowo w wielu strefach dostępności, aby zapewnić trwałość wiadomości.
Klastry RabbitMQ obsługują klasyczny mirroring kolejek dla wdrożeń, które wymagają wysokiej dostępności. Mirrorowane kolejki replikują wiadomości na wiele węzłów. Jeśli główny węzeł hostujący kolejkę zawiedzie, węzeł lustrzany zamienia się w węzeł główny (master), zachowując ciągłość działania.
W następnym kroku, należy wpisać nazwę brokera oraz wybrać typ instancji. Można wybrać mq.t3.micro, do celów testowych, w ramach Free Tier, bazując na wdrożeniu single-instance. Następnie, należy wprowadzić nazwę użytkownika oraz hasło, aby uzyskać dostęp do webowej konsoli RabbitMQ.
W ramach dodatkowych ustawień, można wybrać wersję silnika brokera, włączyć opcję CloudWatch Logs, aby publikować logi brokera do Amazon CloudWatch oraz ustawić typ dostępu z zewnątrz VPC (Virtual Private Cloud) lub tylko w obrębie VPC. Po wybraniu opcji Private access, można przypisać VPC i podsieci do dołączenia swoich instancji EC2 i grup bezpieczeństwa w celu zdefiniowania reguł autoryzujących połączenia ze wszystkich instancji EC2 oraz urządzeń, które wymagają dostępu do posiadanej instancji brokera.
Po kliknięciu Next, należy przejrzeć swoje ustawienia, a następnie kliknąć w Create broker. Broker zostanie utworzony i będzie gotowy do użycia po około 5-10 minutach.
Aby stworzyć brokera RabbitMQ, można użyć prostego polecenia AWS Command Line Interface (CLI) dla wdrożenia klastra:
Po utworzenia nowego brokera, adres URL konsoli webowej oraz endpointy, są dostępna za pomocą jednego kliknięcia:
Dostęp do konsoli internetowej RabbitMQ można uzyskać pod podanym linkiem. Poniżej widok z przetestowanego brokera użytego w Pika Python:
Broker publikuje metryki instancji, kolejek oraz tematów do CloudWatch. Aby dowiedzieć się więcej, warto odwiedzić Amazon MQ for Rabbit MQ Developer Guide.
Aby dowiedzieć się więcej, warto zobaczyć stronę: Amazon MQ for RabbitMQ.