Verwenden einer OpenSearch Ingestion-Pipeline mit Kafka - OpenSearch Amazon-Dienst

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwenden einer OpenSearch Ingestion-Pipeline mit Kafka

Sie können eine OpenSearch Ingestion-Pipeline mit selbstverwaltetem Kafka verwenden, um Daten an Amazon OpenSearch Service-Domains und serverlose Sammlungen zu streamen. OpenSearch OpenSearch Ingestion unterstützt sowohl öffentliche als auch private Netzwerkkonfigurationen für das Streaming von Daten von selbstverwaltetem Kafka zu Domänen oder Sammlungen, die von Service oder Serverless verwaltet werden. OpenSearch OpenSearch

Konnektivität zu öffentlichen Kafka-Clustern

Sie können OpenSearch Ingestion-Pipelines verwenden, um Daten aus einem selbstverwalteten Kafka-Cluster mit einer öffentlichen Konfiguration zu migrieren, was bedeutet, dass der DNS Domainname öffentlich aufgelöst werden kann. Richten Sie dazu eine OpenSearch Ingestion-Pipeline mit selbstverwaltetem Kafka als Quelle und Service oder Serverless als Ziel ein. OpenSearch OpenSearch Dadurch werden Ihre Streaming-Daten von einem selbstverwalteten Quellcluster zu einer AWS verwalteten Zieldomäne oder -sammlung verarbeitet.

Voraussetzungen

Bevor Sie Ihre OpenSearch Ingestion-Pipeline erstellen, führen Sie die folgenden Schritte aus:

  1. Erstellen Sie einen selbstverwalteten Kafka-Cluster mit einer öffentlichen Netzwerkkonfiguration. Der Cluster sollte die Daten enthalten, die Sie in den Service aufnehmen möchten. OpenSearch

  2. Erstellen Sie eine OpenSearch Dienstdomäne oder eine OpenSearch serverlose Sammlung, in die Sie Daten migrieren möchten. Weitere Informationen finden Sie unter OpenSearch Dienstdomänen erstellen und Sammlungen erstellen.

  3. Richten Sie die Authentifizierung auf Ihrem selbstverwalteten Cluster mit AWS Secrets Manager ein. Aktivieren Sie die Rotation von Geheimnissen, indem Sie die Schritte unter AWS Secrets Manager Geheimnisse rotieren befolgen.

  4. Fügen Sie Ihrer Domain eine ressourcenbasierte Richtlinie oder Ihrer Sammlung eine Datenzugriffsrichtlinie hinzu. Diese Zugriffsrichtlinien ermöglichen es OpenSearch Ingestion, Daten aus Ihrem selbstverwalteten Cluster in Ihre Domain oder Sammlung zu schreiben.

    Die folgende Beispielrichtlinie für den Domänenzugriff ermöglicht es der Pipeline-Rolle, die Sie im nächsten Schritt erstellen, Daten in eine Domäne zu schreiben. Stellen Sie sicher, dass Sie die resource mit Ihrer eigenen aktualisierenARN.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::{pipeline-account-id}:role/pipeline-role" }, "Action": [ "es:DescribeDomain", "es:ESHttp*" ], "Resource": [ "arn:aws:es:{region}:{account-id}:domain/domain-name" ] } ] }

    Informationen zum Erstellen einer IAM Rolle mit den richtigen Berechtigungen für den Zugriff auf Schreibdaten für die Sammlung oder Domäne finden Sie unter Erforderliche Berechtigungen für Domänen und Erforderliche Berechtigungen für Sammlungen.

Schritt 1: Konfigurieren Sie die Pipeline-Rolle

Nachdem Sie Ihre Voraussetzungen für die Kafka-Pipeline eingerichtet haben, konfigurieren Sie die Pipeline-Rolle, die Sie in Ihrer Pipeline-Konfiguration verwenden möchten, und fügen Sie die Berechtigung zum Schreiben in eine OpenSearch Service-Domain oder eine OpenSearch Serverless-Sammlung sowie die Berechtigung zum Lesen von Geheimnissen aus Secrets Manager hinzu.

Schritt 2: Erstellen Sie die Pipeline

Anschließend können Sie eine OpenSearch Ingestion-Pipeline wie die folgende konfigurieren, die Kafka als Quelle angibt.

Sie können mehrere OpenSearch Dienstdomänen als Ziele für Ihre Daten angeben. Diese Funktion ermöglicht das bedingte Routing oder die Replikation eingehender Daten in mehrere OpenSearch Dienstdomänen.

Sie können auch Daten von einem Confluent-Kafka-Quellcluster zu einer OpenSearch serverlosen Sammlung migrieren. VPC Stellen Sie sicher, dass Sie in der Pipeline-Konfiguration eine Netzwerkzugriffsrichtlinie angeben. Sie können eine Confluent-Schemaregistrierung verwenden, um ein Confluent-Schema zu definieren.

version: "2" kafka-pipeline: source: kafka: encryption: type: "ssl" topics: - name: "topic-name" group_id: "group-id" bootstrap_servers: - "bootstrap-server.us-west-2.aws.private.confluent.cloud:9092" authentication: sasl: plain: username: ${aws_secrets:confluent-kafka-secret:username} password: ${aws_secrets:confluent-kafka-secret:password} schema: type: confluent registry_url: https://my-registry.us-west-2.aws.confluent.cloud api_key: "${{aws_secrets:schema-secret:schema_registry_api_key}}" api_secret: "${{aws_secrets:schema-secret:schema_registry_api_secret}}" basic_auth_credentials_source: "USER_INFO" sink: - opensearch: hosts: ["https://search-mydomain.us-west-2.es.amazonaws.com"] aws: sts_role_arn: "arn:aws:iam::{account-id}:role/pipeline-role" region: "us-west-2" index: "confluent-index" extension: aws: secrets: confluent-kafka-secret: secret_id: "my-kafka-secret" region: "us-west-2" sts_role_arn: "arn:aws:iam::{account-id}:role/pipeline-role" schema-secret: secret_id: "my-self-managed-kafka-schema" region: "us-west-2" sts_role_arn: "arn:aws:iam::{account-id}:role/pipeline-role"

Sie können einen vorkonfigurierten Blueprint verwenden, um diese Pipeline zu erstellen. Weitere Informationen finden Sie unter Verwenden von Blueprints zum Erstellen einer Pipeline.

Konnektivität zu Kafka-Clustern in einem VPC

Sie können OpenSearch Ingestion-Pipelines auch verwenden, um Daten aus einem selbstverwalteten Kafka-Cluster zu migrieren, der in einem ausgeführt wird. VPC Richten Sie dazu eine OpenSearch Ingestion-Pipeline mit selbstverwaltetem Kafka als Quelle und Service oder Serverless als Ziel ein. OpenSearch OpenSearch Dadurch werden Ihre Streaming-Daten von einem selbstverwalteten Quellcluster zu einer AWS verwalteten Zieldomäne oder -sammlung verarbeitet.

Voraussetzungen

Bevor Sie Ihre OpenSearch Ingestion-Pipeline erstellen, führen Sie die folgenden Schritte aus:

  1. Erstellen Sie einen selbstverwalteten Kafka-Cluster mit einer VPC Netzwerkkonfiguration, die die Daten enthält, die Sie in Service aufnehmen möchten. OpenSearch

  2. Erstellen Sie eine OpenSearch Dienstdomäne oder eine OpenSearch serverlose Sammlung, in die Sie Daten migrieren möchten. Weitere Informationen finden Sie unter OpenSearch Dienstdomänen erstellen und Sammlungen erstellen.

  3. Richten Sie die Authentifizierung auf Ihrem selbstverwalteten Cluster mit AWS Secrets Manager ein. Aktivieren Sie die Rotation von Geheimnissen, indem Sie die Schritte unter AWS Secrets Manager Geheimnisse rotieren befolgen.

  4. Besorgen Sie sich die ID der PersonVPC, die Zugriff auf das selbstverwaltete Kafka hat. Wählen Sie die aus VPCCIDR, die von OpenSearch Ingestion verwendet werden soll.

    Anmerkung

    Wenn Sie die verwenden, um Ihre Pipeline AWS Management Console zu erstellen, müssen Sie auch Ihre OpenSearch Ingestion-Pipeline an Ihre anhängen, um selbstverwaltetes VPC Kafka verwenden zu können. Suchen Sie dazu den Abschnitt Netzwerkkonfiguration, aktivieren Sie das VPC Kontrollkästchen Anhängen an und wählen Sie eine der bereitgestellten Standardoptionen oder wählen Sie Ihre eigene CIDR aus. Sie können jeden beliebigen Adressraum CIDR aus einem privaten Adressraum verwenden, wie in der Best Current Practice von RFC 1918 definiert.

    Wenn Sie einen benutzerdefinierten Wert angeben möchtenCIDR, wählen Sie im Dropdownmenü die Option Andere aus. Um eine Kollision der IP-Adressen zwischen OpenSearch Ingestion und Self-managed zu vermeiden, stellen Sie sicher OpenSearch, dass sich die selbst verwaltete Adresse von der für OpenSearch VPC CIDR Ingestion unterscheidet. CIDR OpenSearch

  5. Fügen Sie Ihrer Domain eine ressourcenbasierte Richtlinie oder Ihrer Sammlung eine Datenzugriffsrichtlinie hinzu. Diese Zugriffsrichtlinien ermöglichen es OpenSearch Ingestion, Daten aus Ihrem selbstverwalteten Cluster in Ihre Domain oder Sammlung zu schreiben.

    Die folgende Beispielrichtlinie für den Domänenzugriff ermöglicht es der Pipeline-Rolle, die Sie im nächsten Schritt erstellen, Daten in eine Domäne zu schreiben. Stellen Sie sicher, dass Sie die resource mit Ihrer eigenen aktualisierenARN.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::{pipeline-account-id}:role/pipeline-role" }, "Action": [ "es:DescribeDomain", "es:ESHttp*" ], "Resource": [ "arn:aws:es:{region}:{account-id}:domain/domain-name" ] } ] }

    Informationen zum Erstellen einer IAM Rolle mit den richtigen Berechtigungen für den Zugriff auf Schreibdaten für die Sammlung oder Domäne finden Sie unter Erforderliche Berechtigungen für Domänen und Erforderliche Berechtigungen für Sammlungen.

Schritt 1: Konfigurieren Sie die Pipeline-Rolle

Nachdem Sie Ihre Pipeline-Voraussetzungen eingerichtet haben, konfigurieren Sie die Pipeline-Rolle, die Sie in Ihrer Pipeline-Konfiguration verwenden möchten, und fügen Sie der Rolle die folgenden Berechtigungen hinzu:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "SecretsManagerReadAccess", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": ["arn:aws:secretsmanager:{region}:{account-id}:secret:secret-name"] }, { "Effect": "Allow", "Action": [ "ec2:AttachNetworkInterface", "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DetachNetworkInterface", "ec2:DescribeNetworkInterfaces" ], "Resource": [ "arn:aws:ec2:*:{account-id}:network-interface/*", "arn:aws:ec2:*:{account-id}:subnet/*", "arn:aws:ec2:*:{account-id}:security-group/*" ] }, { "Effect": "Allow", "Action": [ "ec2:DescribeDhcpOptions", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:Describe*" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": "arn:aws:ec2:*:*:network-interface/*", "Condition": { "StringEquals": { "aws:RequestTag/OSISManaged": "true" } } } ] }

Sie müssen die oben genannten EC2 Amazon-Berechtigungen für die IAM Rolle angeben, die Sie zum Erstellen der OpenSearch Ingestion-Pipeline verwenden, da die Pipeline diese Berechtigungen verwendet, um eine Netzwerkschnittstelle in Ihrem zu erstellen und zu löschen. VPC Die Pipeline kann nur über diese Netzwerkschnittstelle auf den Kafka-Cluster zugreifen.

Schritt 2: Erstellen Sie die Pipeline

Anschließend können Sie eine OpenSearch Ingestion-Pipeline wie die folgende konfigurieren, die Kafka als Quelle angibt.

Sie können mehrere OpenSearch Dienstdomänen als Ziele für Ihre Daten angeben. Diese Funktion ermöglicht das bedingte Routing oder die Replikation eingehender Daten in mehrere OpenSearch Dienstdomänen.

Sie können auch Daten von einem Confluent-Kafka-Quellcluster zu einer OpenSearch serverlosen Sammlung migrieren. VPC Stellen Sie sicher, dass Sie in der Pipeline-Konfiguration eine Netzwerkzugriffsrichtlinie angeben. Sie können eine Confluent-Schemaregistrierung verwenden, um ein Confluent-Schema zu definieren.

version: "2" kafka-pipeline: source: kafka: encryption: type: "ssl" topics: - name: "topic-name" group_id: "group-id" bootstrap_servers: - "bootstrap-server.us-west-2.aws.private.confluent.cloud:9092" authentication: sasl: plain: username: ${aws_secrets:confluent-kafka-secret:username} password: ${aws_secrets:confluent-kafka-secret:password} schema: type: confluent registry_url: https://my-registry.us-west-2.aws.confluent.cloud api_key: "${{aws_secrets:schema-secret:schema_registry_api_key}}" api_secret: "${{aws_secrets:schema-secret:schema_registry_api_secret}}" basic_auth_credentials_source: "USER_INFO" sink: - opensearch: hosts: ["https://search-mydomain.us-west-2.es.amazonaws.com"] aws: sts_role_arn: "arn:aws:iam::{account-id}:role/pipeline-role" region: "us-west-2" index: "confluent-index" extension: aws: secrets: confluent-kafka-secret: secret_id: "my-kafka-secret" region: "us-west-2" sts_role_arn: "arn:aws:iam::{account-id}:role/pipeline-role" schema-secret: secret_id: "my-self-managed-kafka-schema" region: "us-west-2" sts_role_arn: "arn:aws:iam::{account-id}:role/pipeline-role"

Sie können einen vorkonfigurierten Blueprint verwenden, um diese Pipeline zu erstellen. Weitere Informationen finden Sie unter Verwenden von Blueprints zum Erstellen einer Pipeline.