BillionPhotos.com - stock.adobe.
Amazon Kendra versus Elasticsearch Service: die Unterschiede
Amazon Elasticsearch Service und Amazon Kendra bieten native AWS-Suchfunktionen – sonst sind sie jedoch grundverschieden. Wir erklären, was sie können und für wen sie sich eignen.
IT-Teams, Datenanalysten und andere Benutzer müssen häufig unstrukturierte – oder semistrukturierte – Daten mit offenen Search Strings durchsuchen. Um diesen Bedarf nativ in Amazon Web Services (AWS) zu decken, sind Amazon Elasticsearch Service und Amazon Kendra Teil des Angebots.
Obwohl beide Services Abfragen über Datenquellen hinweg durchführen können, dienen sie unterschiedlichen Zwecken. In diesem Artikel geben wir einen Überblick über diese AWS-Angebote und zeigen, wie sie sich unterscheiden, damit Sie beurteilen können, welcher Service am besten zu den Anforderungen Ihrer Anwendung passt.
Amazon Elasticsearch Service
Elasticsearch ist eine Open-Source-Such- und -Analyseplattform. AWS bietet eine verwaltete Version der Software, Amazon Elasticsearch Service, die Rechenkapazität über Amazon EC2-Instanzen bezieht.
Amazon Elasticsearch Service unterstützt die Analyse strukturierter und unstrukturierter Daten und verwendet die JSON-basierte Abfragesprache von Elasticsearch. Diese ist flexibel und versteht unter anderem spezifische oder mehrere Felder, Operatoren (zum Beispiel AND, OR, NOT), Wildcards, reguläre Ausdrücke, Bereiche und Gruppierungen. Abfragen können über REST-APIs, die sich in benutzerdefinierte Anwendungen integrieren lassen, oder über eine grafische Benutzeroberfläche (Graphic User Interface, GUI) übermittelt werden.
Damit Elasticsearch die Daten analysieren kann, müssen sie in ein Elasticsearch-Cluster eingelesen werden. Dies kann über die Integrationen in Amazon Cloud Services wie Amazon Kinesis Data Firehose, Amazon CloudWatch Logs und AWS IoT erfolgen. Auch Logstah, das Teil des gleichen Open-Source-Stacks wie Elasticsearch ist, kann Daten einlesen und in separaten EC2-Instanzen laufen. Alternativ können Nutzer Daten aus benutzerdefinierten Anwendungen mit der REST-API einlesen.
Grundlagen zu Amazon Kendra
Amazon Kendra nutzt maschinelles Lernen (ML), um Daten zu durchsuchen, die in verschiedenen Quellen gespeichert sind.
Entwickler binden Amazon Kendra in ihre Anwendungen ein, damit Endbenutzer semistrukturierte und unstrukturierte Daten nach Suchbegriffen in natürlicher Sprache durchsuchen können. Der Service verfügt über Funktionen zur automatischen oder manuellen Feinabstimmung der Genauigkeit von Ergebnissen im Laufe der Zeit.
Kendra ist serverlos, so dass Nutzer die zugrunde liegende Infrastruktur nicht verwalten müssen. Selbstverständlich müssen sie trotzdem die Infrastruktur der Datenquellen verwalten, je nachdem, wo die Daten gespeichert sind.
Kendra verwendet einen Index, um eine Sammlung von Dokumenten oder FAQs zu gruppieren, aus denen der Dienst Informationen bezieht. Dokumente können explizit in Kendra-Indizes aufgenommen oder in Amazon S3 (Amazon Simple Storage Service) abgelegt werden, damit Kendra darauf zugreifen kann. Der Service unterstützt auch Konnektoren zu einer Reihe von externen Datenquellen, wie Salesforce, OneDrive, Confluence, ServiceNow, Google Drive, SharePoint und Amazon Relational Database Service (RDS).
Sobald Kendra-Indizes erstellt und die zu durchsuchenden Dokumente hinzugefügt sind, können Anwendungen die Daten mit AWS SDK abfragen. AWS bietet in seiner Dokumentation ein Beispielprojekt mit Code für die Interaktion mit Kendra und die Abfrage von Dokumenten über eine benutzerdefinierte Weboberfläche.
Amazon Kendra versus Elasticsearch Service
Bevor sie sich für Kendra oder Elasticsearch entscheiden, müssen IT-Teams wissen, dass diese Dienste sehr unterschiedliche Probleme lösen. Während es eine kleine Überschneidung bei der Suche nach Begriffen gibt, unterscheiden sie sich in den meisten anderen Bereichen signifikant.
Anwendungsfälle
Kendra dient dazu, die Produktivität in Unternehmen zu verbessern, indem es Mitarbeitern schnellere und genauere Suchergebnisse liefert, die ihnen beim Erledigen ihrer Aufgaben helfen. Außerdem können IT-Mitarbeiter besser die Einhaltung gesetzlicher Vorgaben nachverfolgen, um das Wissen über Compliance-Richtlinien zu verbreiten und diese durchzusetzen. Entwickler können es auch für Suchfunktionen für Kunden nutzen, einschließlich benutzerdefinierter Websuchen und Chatbots.
Amazon Elasticsearch bietet ebenfalls personalisierte Sucherlebnisse für Benutzer, verfügt aber über ein viel breiteres Spektrum an Funktionen. Es sammelt, speichert und analysiert Protokolldaten, die ergänzende Informationen für das Überwachen von Infrastruktur, Anwendungen und Sicherheit enthalten.
Beide Tools können für interne oder externe Benutzer verwendet werden, je nachdem, auf welche Daten sie zugreifen sollen und welche Benutzererfahrung gewünscht ist. Es ist auch möglich, beide Tools parallel einzusetzen, je nach den Daten, auf die sie jeweils zugreifen.
Leistungsmerkmale und Kosten
Während Kendra serverlos ist, müssen Entwickler für Amazon Elasticsearch Service Rechenkapazität und Speicher bereitstellen. AWS verwaltet Elasticsearch Service, doch Kunden müssen immer noch selbst Kapazitätskonfigurationen einrichten, zum Beispiel Instanztypen und -größe, Festplattenspeicher, Anzahl der Knoten und Redundanz.
Außerdem verarbeitet Kendra Suchen in natürlicher Sprache, während Amazon Elasticsearch Services ein bestimmtes Abfrageformat erfordert – zum Beispiel Webformulare mit Feldern und Datenbereichen. Amazon Elasticsearch Service bietet eine gewisse Flexibilität bei der Suche nach Schlüsselwörtern, kommt aber nicht an die Fähigkeiten von Kendra heran, das auch Suchen in natürlicher Sprache unterstützt. Amazon Elasticsearch kann keine Anfragen wie Wie viel kostet Produkt X? oder Wo finde ich Artikel Y? beantworten.
Aufgrund der Suchfunktionen ist Amazon Elasticsearch Service wahrscheinlich die bessere Wahl für Szenarien mit expliziten Abfragen, die Datenbereiche, Operatoren, Funktionen, Aggregationen, Bedingungen oder bestimmte Werte nutzen. Allerdings bietet der Dienst keine KI (künstliche Intelligenz) oder Spracherkennung zur Interpretation von Suchanfragen.
Kendra kann Daten in einen Index aufnehmen, und sie auch in ihrer ursprünglichen Quelle abrufen. Amazon Elasticsearch Service bietet diese Möglichkeit nicht, da die Daten in den Elasticsearch-Cluster selbst aufgenommen, dort gehalten und gepflegt werden müssen. Mit Kendra müssen Nutzer ihre Daten synchronisieren, um sicherzustellen, dass die Suche stets aktuelle Ergebnisse liefert.
Auch der Preisunterschied spielt eine große Rolle, wenn IT-Teams sich zwischen Amazon Elasticsearch Service und Kendra entscheiden müssen. Kendra wird nach der Anzahl der Indizes und dem Volumen der zugegriffenen Daten abgerechnet. Zum Zeitpunkt der Veröffentlichung liegen die Mindestkosten pro Index bei 2,50 US-Dollar pro Stunde für die Developer Edition mit weniger gespeicherten Dokumenten und Abfragen am Tag und 7 US-Dollar pro Stunde für die Enterprise Edition – beides in der Verfügbarkeitszone Europa (Irland). Hinzu kommen Kosten für Konnektoren.
Bei einem Cluster von moderater Größe, dürften viele Unternehmen mit den Elasticsearch-Service-Instanzen günstiger davonkommen, deren Preise auf einem etwas höheren Niveau liegen als die üblichen EC2-Instanzen.