Utiliser un pipeline d' OpenSearch ingestion avec Kafka - Amazon OpenSearch Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utiliser un pipeline d' OpenSearch ingestion avec Kafka

Vous pouvez utiliser un pipeline d' OpenSearch ingestion avec Kafka autogéré pour diffuser des données vers des domaines Amazon OpenSearch Service et des collections OpenSearch sans serveur. OpenSearch L'ingestion prend en charge les configurations de réseaux publics et privés pour le streaming de données depuis Kafka autogéré vers des domaines ou des collections gérés par OpenSearch Service ou OpenSearch Serverless.

Connectivité aux clusters Kafka publics

Vous pouvez utiliser des pipelines d' OpenSearch ingestion pour migrer les données d'un cluster Kafka autogéré avec une configuration publique, ce qui signifie que le DNS nom de domaine peut être résolu publiquement. Pour ce faire, configurez un pipeline d' OpenSearch ingestion avec Kafka autogéré comme source et OpenSearch Service ou OpenSearch Serverless comme destination. Cela traite vos données de streaming depuis un cluster source autogéré vers un domaine ou une collection de destination AWS géré.

Prérequis

Avant de créer votre pipeline OpenSearch d'ingestion, effectuez les étapes suivantes :

  1. Créez un cluster Kafka autogéré avec une configuration de réseau public. Le cluster doit contenir les données que vous souhaitez ingérer dans OpenSearch Service.

  2. Créez un domaine OpenSearch de service ou une collection OpenSearch sans serveur vers lequel vous souhaitez migrer les données. Pour plus d'informations, consultez les sections Création OpenSearch de domaines de service et Création de collections.

  3. Configurez l'authentification sur votre cluster autogéré avec AWS Secrets Manager. Activez la rotation des secrets en suivant les étapes de la section Rotation AWS Secrets Manager des secrets.

  4. Associez une politique basée sur les ressources à votre domaine ou une politique d'accès aux données à votre collection. Ces politiques d'accès permettent à OpenSearch Ingestion d'écrire des données de votre cluster autogéré vers votre domaine ou votre collection.

    L'exemple de politique d'accès au domaine suivant permet au rôle de pipeline, que vous créez à l'étape suivante, d'écrire des données dans un domaine. Assurez-vous de le mettre à jour resource avec le vôtreARN.

    { "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" ] } ] }

    Pour créer un IAM rôle doté des autorisations appropriées pour accéder aux données d'écriture de la collection ou du domaine, consultez les sections Autorisations requises pour les domaines et Autorisations requises pour les collections.

Étape 1 : configurer le rôle du pipeline

Une fois les prérequis de votre pipeline Kafka configurés, configurez le rôle de pipeline que vous souhaitez utiliser dans la configuration de votre pipeline et ajoutez l'autorisation d'écrire dans un domaine de OpenSearch service ou une collection OpenSearch sans serveur, ainsi que l'autorisation de lire les secrets depuis Secrets Manager.

Étape 2 : Création du pipeline

Vous pouvez ensuite configurer un pipeline d' OpenSearch ingestion comme le suivant, qui spécifie Kafka comme source.

Vous pouvez spécifier plusieurs domaines OpenSearch de service comme destinations pour vos données. Cette fonctionnalité permet le routage conditionnel ou la réplication des données entrantes dans plusieurs domaines OpenSearch de service.

Vous pouvez également migrer les données d'un cluster Confluent Kafka source vers une collection OpenSearch ServerlessVPC. Assurez-vous de fournir une politique d'accès au réseau dans la configuration du pipeline. Vous pouvez utiliser un registre de schémas Confluent pour définir un schéma Confluent.

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"

Vous pouvez utiliser un plan préconfiguré pour créer ce pipeline. Pour de plus amples informations, veuillez consulter Utiliser des plans pour créer un pipeline.

Connectivité aux clusters Kafka dans un VPC

Vous pouvez également utiliser des pipelines d' OpenSearch ingestion pour migrer des données à partir d'un cluster Kafka autogéré exécuté dans un. VPC Pour ce faire, configurez un pipeline d' OpenSearch ingestion avec Kafka autogéré comme source et OpenSearch Service ou OpenSearch Serverless comme destination. Cela traite vos données de streaming depuis un cluster source autogéré vers un domaine ou une collection de destination AWS géré.

Prérequis

Avant de créer votre pipeline OpenSearch d'ingestion, effectuez les étapes suivantes :

  1. Créez un cluster Kafka autogéré avec une configuration VPC réseau contenant les données que vous souhaitez ingérer dans Service. OpenSearch

  2. Créez un domaine OpenSearch de service ou une collection OpenSearch sans serveur vers lequel vous souhaitez migrer les données. Pour plus d'informations, consultez les sections Création OpenSearch de domaines de service et Création de collections.

  3. Configurez l'authentification sur votre cluster autogéré avec AWS Secrets Manager. Activez la rotation des secrets en suivant les étapes de la section Rotation AWS Secrets Manager des secrets.

  4. Obtenez l'identifiant de la personne VPC ayant accès à Kafka autogéré. Choisissez le VPC CIDR à utiliser par OpenSearch ingestion.

    Note

    Si vous utilisez le AWS Management Console pour créer votre pipeline, vous devez également attacher votre pipeline d' OpenSearch ingestion à votre VPC afin d'utiliser Kafka autogéré. Pour ce faire, accédez à la section Configuration du réseau, cochez la VPC case Joindre à et choisissez l'une CIDR des options par défaut proposées, ou sélectionnez la vôtre. Vous pouvez utiliser n'importe quel espace CIDR d'adressage privé tel que défini dans les meilleures pratiques actuelles de RFC 1918.

    Pour fournir une personnalisationCIDR, sélectionnez Autre dans le menu déroulant. Pour éviter une collision d'adresses IP entre OpenSearch Ingestion et autogérée OpenSearch, assurez-vous que l'adresse autogérée OpenSearch VPC CIDR est différente de celle destinée à l'CIDRingestion. OpenSearch

  5. Associez une politique basée sur les ressources à votre domaine ou une politique d'accès aux données à votre collection. Ces politiques d'accès permettent à OpenSearch Ingestion d'écrire des données de votre cluster autogéré vers votre domaine ou votre collection.

    L'exemple de politique d'accès au domaine suivant permet au rôle de pipeline, que vous créez à l'étape suivante, d'écrire des données dans un domaine. Assurez-vous de le mettre à jour resource avec le vôtreARN.

    { "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" ] } ] }

    Pour créer un IAM rôle doté des autorisations appropriées pour accéder aux données d'écriture de la collection ou du domaine, consultez les sections Autorisations requises pour les domaines et Autorisations requises pour les collections.

Étape 1 : configurer le rôle du pipeline

Une fois les prérequis de votre pipeline configurés, configurez le rôle de pipeline que vous souhaitez utiliser dans la configuration de votre pipeline et ajoutez-y les autorisations suivantes :

{ "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" } } } ] }

Vous devez fournir les EC2 autorisations Amazon ci-dessus sur le IAM rôle que vous utilisez pour créer le pipeline d' OpenSearch ingestion, car le pipeline utilise ces autorisations pour créer et supprimer une interface réseau dans votreVPC. Le pipeline ne peut accéder au cluster Kafka que via cette interface réseau.

Étape 2 : Création du pipeline

Vous pouvez ensuite configurer un pipeline d' OpenSearch ingestion comme le suivant, qui spécifie Kafka comme source.

Vous pouvez spécifier plusieurs domaines OpenSearch de service comme destinations pour vos données. Cette fonctionnalité permet le routage conditionnel ou la réplication des données entrantes dans plusieurs domaines OpenSearch de service.

Vous pouvez également migrer les données d'un cluster Confluent Kafka source vers une collection OpenSearch ServerlessVPC. Assurez-vous de fournir une politique d'accès au réseau dans la configuration du pipeline. Vous pouvez utiliser un registre de schémas Confluent pour définir un schéma Confluent.

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"

Vous pouvez utiliser un plan préconfiguré pour créer ce pipeline. Pour de plus amples informations, veuillez consulter Utiliser des plans pour créer un pipeline.