Zbuduj bezserwerowy potok przesyłania strumieniowego za pomocą Amazon MSK Serverless, Amazon MSK Connect i MongoDB Atlas

Zbuduj bezserwerowy potok przesyłania strumieniowego za pomocą Amazon MSK Serverless, Amazon MSK Connect i MongoDB Atlas

Węzeł źródłowy: 1903134

Ten post został napisany wspólnie z Babu Srinivasanem i Robertem Waltersem z MongoDB.

Przesyłanie strumieniowe zarządzane przez Amazon dla Apache Kafka (Amazon MSK) to w pełni zarządzana usługa Apache Kafka o wysokiej dostępności. Amazon MSK ułatwia pozyskiwanie i przetwarzanie danych przesyłanych strumieniowo w czasie rzeczywistym oraz łatwe wykorzystywanie tych danych w ekosystemie AWS. Z Bezserwerowe Amazon MSK, możesz automatycznie udostępniać wymagane zasoby i zarządzać nimi, aby zapewnić pojemność strumieniowania na żądanie i pamięć masową dla swoich aplikacji.

Amazon MSK obsługuje również integrację źródeł danych, takich jak MongoDB Atlas przez Amazon MSK Połącz. MSK Connect umożliwia bezserwerową integrację danych MongoDB z Amazon MSK przy użyciu Złącze MongoDB dla Apache Kafki.

Atlas MongoDB bez serwera zapewnia usługi bazodanowe, które dynamicznie skalują się w górę iw dół wraz z rozmiarem i przepustowością danych — a koszty są odpowiednio skalowane. Najlepiej nadaje się do zarządzania aplikacjami o zmiennych wymaganiach przy minimalnej konfiguracji. Zapewnia wysoką wydajność i niezawodność dzięki automatycznej aktualizacji, szyfrowaniu, bezpieczeństwu, pomiarom i funkcjom tworzenia kopii zapasowych wbudowanym w infrastrukturę MongoDB Atlas.

MSK Serverless to rodzaj klastra dla Amazon MSK. Podobnie jak MongoDB Atlas Serverless, MSK Serverless automatycznie aprowizuje i skaluje zasoby obliczeniowe i magazynowe. Możesz teraz tworzyć kompleksowe bezserwerowe przepływy pracy. Możesz zbudować bezserwerowy potok przesyłania strumieniowego z bezserwerowym pozyskiwaniem przy użyciu MSK Serverless i bezserwerowej pamięci masowej przy użyciu MongoDB Atlas. Ponadto obsługuje teraz MSK Connect prywatne nazwy hostów DNS. Dzięki temu bezserwerowe instancje MSK mogą łączyć się z bezserwerowymi klastrami MongoDB za pośrednictwem Prywatny link AWS, zapewniając bezpieczną łączność między platformami.

Jeśli interesuje Cię korzystanie z klastra bezserwerowego, zobacz Integracja MongoDB z Amazon Managed Streaming dla Apache Kafka (MSK).

W tym poście pokazano, jak zaimplementować bezserwerowy potok przesyłania strumieniowego za pomocą MSK Serverless, MSK Connect i MongoDB Atlas.

Omówienie rozwiązania

Poniższy diagram ilustruje naszą architekturę rozwiązania.

Przepływ danych między AWS MSK a MongoDB Atlas

Przepływ danych rozpoczyna się od Elastyczna chmura obliczeniowa Amazon (Amazon EC2) instancja klienta, która zapisuje rekordy w temacie MSK. W miarę napływu danych instancja MongoDB Connector for Apache Kafka zapisuje dane w kolekcji w klastrze MongoDB Atlas Serverless. W celu zapewnienia bezpiecznej łączności między dwiema platformami tworzone jest połączenie AWS PrivateLink między klastrem MongoDB Atlas a VPC zawierającym instancję MSK.

Ten post przeprowadzi Cię przez następujące kroki:

  1. Utwórz bezserwerowy klaster MSK.
  2. Utwórz klaster MongoDB Atlas Serverless.
  3. Skonfiguruj wtyczkę MSK.
  4. Utwórz klienta EC2.
  5. Skonfiguruj temat MSK.
  6. Skonfiguruj złącze MongoDB dla Apache Kafka jako ujście.

Skonfiguruj bezserwerowy klaster MSK

Aby utworzyć bezserwerowy klaster MSK, wykonaj następujące kroki:

  1. W konsoli Amazon MSK wybierz Klastry w okienku nawigacji.
  2. Dodaj Utwórz klaster.
  3. W razie zamówieenia projektu Metoda tworzenia, Wybierz Niestandardowe tworzenie.
  4. W razie zamówieenia projektu Nazwa klastra, wchodzić MongoDBMSKCluster.
  5. W razie zamówieenia projektu Typ klastraWybierz Bezserwerowe.
  6. Dodaj Następna.Bezserwerowy interfejs użytkownika do tworzenia klastrów MSK
  7. Na Sieci określ swój VPC, strefy dostępności i odpowiadające im podsieci.
  8. Zanotuj strefy dostępności i podsieci, których użyjesz później.Ustawienia klastra pokazujące VPC i podsieci
  9. Dodaj Następna.
  10. Dodaj Utwórz klaster.

Gdy klaster jest dostępny, jego status to Active.

Klaster dostępny do użytku

Utwórz klaster MongoDB Atlas Serverless

Aby utworzyć klaster MongoDB Atlas, postępuj zgodnie z instrukcjami Pierwsze kroki z Atlasem instruktaż. Pamiętaj, że na potrzeby tego wpisu musisz utworzyć instancję bezserwerową.

Utwórz nowe okno dialogowe klastra

Po utworzeniu klastra skonfiguruj prywatny punkt końcowy AWS, wykonując następujące czynności:

  1. Na Bezpieczeństwo menu, wybierz Dostęp do sieci.Lokalizacja dostępu do sieci w menu Zabezpieczenia
  2. Na Prywatny punkt końcowy kartę, wybierz Instancja bezserwerowa.
    Bezserwerowy dostęp do sieci instancji
  3. Dodaj Utwórz nowy punkt końcowy.
  4. W razie zamówieenia projektu Instancja bezserwerowa, wybierz właśnie utworzoną instancję.
  5. Dodaj Potwierdzać.Utwórz interfejs prywatnego punktu końcowego
  6. Podaj konfigurację punktu końcowego VPC i wybierz Następna.Interfejs konfiguracji punktu końcowego VPC
  7. Podczas tworzenia zasobu AWS PrivateLink upewnij się, że określiłeś dokładnie te same VPC i podsieci, które były używane wcześniej podczas tworzenia konfiguracji sieciowej dla bezserwerowej instancji MSK.
  8. Dodaj Następna.Interfejs konfiguracji podsieci punktu końcowego VPC
  9. Postępuj zgodnie z instrukcjami na Sfinalizować stronę, a następnie wybierz Potwierdzać po utworzeniu punktu końcowego VPC.

Po pomyślnym zakończeniu nowy prywatny punkt końcowy zostanie wyświetlony na liście, jak pokazano na poniższym zrzucie ekranu.

Strona potwierdzenia dostępu do sieci

Skonfiguruj wtyczkę MSK

Następnie tworzymy niestandardową wtyczkę w Amazon MSK przy użyciu złącza MongoDB dla Apache Kafka. Złącze należy przesłać do pliku Usługa Amazon Simple Storage (Amazon S3), zanim będziesz mógł utworzyć wtyczkę. Aby pobrać złącze MongoDB dla Apache Kafka, zobacz Pobierz plik JAR oprogramowania sprzęgającego.

  1. W konsoli Amazon MSK wybierz Dostosowane wtyczki w okienku nawigacji.
  2. Dodaj Utwórz niestandardową wtyczkę.
  3. W razie zamówieenia projektu Identyfikator URI S3, wprowadź lokalizację S3 pobranego oprogramowania sprzęgającego.
  4. Dodaj Utwórz niestandardową wtyczkę.

Szczegóły wtyczki MSK

Skonfiguruj klienta EC2

Następnie skonfigurujmy instancję EC2. Używamy tej instancji do tworzenia tematu i wstawiania danych do tematu. Aby uzyskać instrukcje, zapoznaj się z sekcją Skonfiguruj klienta EC2 w poście Integracja MongoDB z Amazon Managed Streaming dla Apache Kafka (MSK).

Utwórz temat w klastrze MSK

Aby utworzyć temat Kafki, musimy najpierw zainstalować Kafka CLI.

  1. Na instancji klienta EC2 najpierw zainstaluj Javę:

sudo yum install java-1.8.0

  1. Następnie uruchom następujące polecenie, aby pobrać Apache Kafka:

wget https://archive.apache.org/dist/kafka/2.6.2/kafka_2.12-2.6.2.tgz

  1. Rozpakuj plik tar za pomocą następującego polecenia:

tar -xzf kafka_2.12-2.6.2.tgz

Dystrybucja Kafki zawiera folder bin z narzędziami, które można wykorzystać do zarządzania tematami.

  1. Idź do kafka_2.12-2.6.2 katalog i wydaj następującą komendę, aby utworzyć temat Kafki w bezserwerowym klastrze MSK:

bin/kafka-topics.sh --create --topic sandbox_sync2 --bootstrap-server <BOOTSTRAP SERVER> --command-config=bin/client.properties --partitions 2

Możesz skopiować punkt końcowy serwera ładowania początkowego na Wyświetl informacje o kliencie strona dla bezserwerowego klastra MSK.

Strona połączenia z serwerem Bootstrap

Uwierzytelnianie IAM można skonfigurować, postępując zgodnie z poniższymi instrukcjami instrukcje.

Skonfiguruj złącze zlewu

Teraz skonfigurujmy złącze ujścia, aby wysłać dane do instancji MongoDB Atlas Serverless.

  1. W konsoli Amazon MSK wybierz Złącza w okienku nawigacji.
  2. Dodaj Utwórz łącznik.
  3. Wybierz wtyczkę, którą utworzyłeś wcześniej.
  4. Dodaj Następna.Interfejs złącza zlewu
  5. Wybierz utworzoną wcześniej bezserwerową instancję MSK.
  6. Wprowadź konfigurację połączenia jako następujący kod:
connector.class=com.mongodb.kafka.connect.MongoSinkConnector
key.converter.schema.enable=false
value.converter.schema.enable=false
database=MongoDBMSKDemo
collection=Sink
tasks.max=1
topics=MongoDBMSKDemo.Source
connection.uri=(MongoDB Atlas Connection String Gos Here) value.converter=org.apache.kafka.connect.storage.StringConverter key.converter=org.apache.kafka.connect.storage.StringConverter

Upewnij się, że połączenie z instancją MongoDB Atlas Serverless odbywa się przez AWS PrivateLink. Aby uzyskać więcej informacji, patrz Bezpieczne łączenie aplikacji z płaszczyzną danych MongoDB Atlas za pomocą AWS PrivateLink.

  1. W Uprawnienia dostępu sekcja, utwórz AWS Zarządzanie tożsamością i dostępem (IAM) rola z wymagana polityka zaufania.
  2. Dodaj Następna.Konfiguracja roli IAM
  3. Sprecyzować Dzienniki Amazon CloudWatch jako opcję dostarczania dziennika.
  4. Uzupełnij swoje złącze.

Gdy stan łącznika zmieni się na Aktywny, potok jest gotowy.

Strona potwierdzenia złącza

Wstaw dane do tematu MSK

Na swoim kliencie EC2 wstaw dane do tematu MSK przy użyciu kafka-console-producer w sposób następujący:

bin/kafka-console-producer.sh --topic sandbox_sync2 --bootstrap-server <BOOTSTRAP SERVER> --producer.config=bin/client.properties

Aby zweryfikować, czy dane pomyślnie przepływają z tematu Kafki do bezserwerowego klastra MongoDB, używamy interfejsu MongoDB Atlas.

Interfejs przeglądania kolekcji MongoDB Atlas

Jeśli napotkasz jakiekolwiek problemy, sprawdź pliki dziennika. W tym przykładzie użyliśmy CloudWatch do odczytania zdarzeń wygenerowanych z Amazon MSK i MongoDB Connector for Apache Kafka.

Interfejs dzienników CloudWatch

Sprzątać

Aby uniknąć naliczania przyszłych opłat, wyczyść utworzone zasoby. Najpierw usuń klaster MSK, łącznik i instancję EC2:

  1. W konsoli Amazon MSK wybierz Klastry w okienku nawigacji.
  2. Wybierz swój klaster i na Akcje menu, wybierz Usuń.
  3. Dodaj Złącza w okienku nawigacji.
  4. Wybierz swoje złącze i wybierz Usuń.
  5. Dodaj Dostosowane wtyczki w okienku nawigacji.
  6. Wybierz swoją wtyczkę i wybierz Usuń.
  7. Na konsoli Amazon EC2 wybierz Instancje w okienku nawigacji.
  8. Wybierz utworzoną instancję.
  9. Dodaj Stan instancji, A następnie wybierz Zakończ instancję.
  10. Na Amazon VPC konsola, wybierz Punkty końcowe w okienku nawigacji.
  11. Wybierz utworzony punkt końcowy i na Akcje menu, wybierz Usuń punkty końcowe VPC.

Teraz możesz usunąć klaster Atlas i AWS PrivateLink:

  1. Zaloguj się do konsoli klastra Atlas.
  2. Przejdź do klastra bezserwerowego, który ma zostać usunięty.
  3. Z rozwijanego menu opcji wybierz Zakończyć.
  4. Nawiguj do Dostęp do sieci
  5. Wybierz prywatny punkt końcowy.
  6. Wybierz instancję bezserwerową.
  7. Z rozwijanego menu opcji wybierz Zakończyć.Interfejs zakończenia punktu końcowego

Podsumowanie

W tym poście pokazaliśmy, jak zbudować bezserwerowy potok przetwarzania strumieniowego przy użyciu MSK Serverless i MongoDB Atlas Serverless. Dzięki MSK Serverless możesz automatycznie udostępniać wymagane zasoby i zarządzać nimi w razie potrzeby. Użyliśmy łącznika MongoDB wdrożonego w MSK Connect, aby bezproblemowo zintegrować dwie usługi, a także użyliśmy klienta EC2 do wysłania przykładowych danych do tematu MSK. MSK Connect obsługuje teraz Prywatne nazwy hostów DNS, umożliwiając korzystanie z prywatnych nazw domen między usługami. W tym poście łącznik użył domyślnych serwerów DNS VPC do rozpoznania prywatnej nazwy DNS specyficznej dla strefy dostępności. Ta konfiguracja AWS PrivateLink umożliwiła bezpieczną i prywatną łączność między instancją MSK Serverless a instancją MongoDB Atlas Serverless.

Aby kontynuować naukę, zapoznaj się z następującymi zasobami:


O autorach

Igor Aleksiejew jest starszym architektem rozwiązań partnerskich w AWS w domenie Data and Analytics. W swojej roli Igor współpracuje ze strategicznymi partnerami, pomagając im budować złożone architektury zoptymalizowane pod kątem AWS. Przed dołączeniem do AWS jako Data/Solution Architect zrealizował wiele projektów w domenie Big Data, w tym kilka jezior danych w ekosystemie Hadoop. Jako Data Engineer był zaangażowany w zastosowanie AI/ML do wykrywania nadużyć i automatyzacji biura.

Kiran Matty jest głównym menedżerem produktu w Amazon Web Services (AWS) i współpracuje z zespołem Amazon Managed Streaming for Apache Kafka (Amazon MSK) z siedzibą w Palo Alto w Kalifornii. Pasjonuje się tworzeniem wydajnych usług przesyłania strumieniowego i usług analitycznych, które pomagają przedsiębiorstwom realizować krytyczne przypadki użycia.

 Babu Srinivasana jest starszym architektem rozwiązań partnerskich w MongoDB. W swojej obecnej roli współpracuje z AWS przy tworzeniu integracji technicznych i architektur referencyjnych dla rozwiązań AWS i MongoDB. Ma ponad dwudziestoletnie doświadczenie w technologiach baz danych i chmur. Pasjonuje się dostarczaniem rozwiązań technicznych klientom współpracującym z wieloma globalnymi integratorami systemów (GSI) w różnych regionach.

Roberta Waltersa jest obecnie Senior Product Managerem w MongoDB. Przed MongoDB Rob spędził 17 lat w firmie Microsoft, pracując na różnych stanowiskach, w tym zarządzając programami w zespole SQL Server, konsultując i zajmując się przedsprzedażą techniczną. Rob jest współautorem trzech patentów dotyczących technologii używanych w SQL Server i był głównym autorem kilku książek technicznych na temat SQL Server. Rob jest obecnie aktywnym blogerem w MongoDB Blogs.

Znak czasu:

Więcej z Duże zbiory danych AWS!