Utilisation d'un pipeline d' OpenSearch ingestion avec Confluent Cloud 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.

Utilisation d'un pipeline d' OpenSearch ingestion avec Confluent Cloud Kafka

Vous pouvez utiliser un pipeline d' OpenSearch ingestion pour diffuser des données depuis des clusters Confluent Cloud Kafka vers des domaines Amazon OpenSearch Service et des collections OpenSearch Serverless. OpenSearch Ingestion prend en charge les configurations de réseau public et privé pour le streaming de données depuis les clusters Confluent Cloud Kafka vers des domaines ou des collections gérés par OpenSearch Service ou OpenSearch Serverless.

Connectivité aux clusters Kafka publics de Confluent Cloud

Vous pouvez utiliser des pipelines d' OpenSearch ingestion pour migrer les données d'un cluster Confluent Cloud Kafka 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 le cluster Kafka public Confluent Cloud 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 de clusters Confluent Cloud Kafka faisant office de source. 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 Confluent Cloud Kafka 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

Après avoir défini les prérequis de votre pipeline de cluster Confluent Cloud Kafka, 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 de Secrets Manager.

Les autorisations suivantes sont nécessaires pour gérer l'interface réseau :

{ "Version": "2012-10-17", "Statement": [ { "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" } } } ] }

L'autorisation requise pour lire les secrets du AWS Secrets Manager service est la suivante :

{ "Version": "2012-10-17", "Statement": [ { "Sid": "SecretsManagerReadAccess", "Effect": "Allow", "Action": ["secretsmanager:GetSecretValue"], "Resource": ["arn:aws:secretsmanager:<region:<account-id>:secret:<,secret-name>"] } ] }

Les autorisations suivantes sont nécessaires pour écrire sur un domaine Amazon OpenSearch Service :

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

Étape 2 : Création du pipeline

Vous pouvez ensuite configurer un pipeline d' OpenSearch ingestion comme celui-ci, qui spécifie votre Confluent Cloud 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 Confluent Cloud Kafka dans un VPC

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

OpenSearch Ingestion prend en charge les clusters Confluent Cloud Kafka configurés dans tous les modes réseau pris en charge dans Confluent. Les modes de configuration réseau suivants sont pris en charge en tant que source dans OpenSearch Ingestion :

  • AWS VPCpeering

  • AWS PrivateLink pour les clusters dédiés

  • AWS PrivateLink pour les clusters d'entreprise

  • AWS Transit Gateway

Prérequis

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

  1. Créez un cluster Confluent Cloud Kafka avec une configuration VPC réseau contenant les données que vous souhaitez ingérer dans le 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 Confluent Cloud Kafka 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.