Uso de una canalización OpenSearch de ingestión con Confluent Cloud Kafka - OpenSearch Servicio Amazon

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Uso de una canalización OpenSearch de ingestión con Confluent Cloud Kafka

Puedes usar una canalización de OpenSearch ingestión para transmitir datos desde los clústeres de Kafka de Confluent Cloud a los dominios de Amazon OpenSearch Service y OpenSearch a las colecciones sin servidor. OpenSearch Ingestion admite configuraciones de redes públicas y privadas para la transmisión de datos desde los clústeres Kafka de Confluent Cloud a dominios o colecciones gestionados por Service o Serverless. OpenSearch OpenSearch

Conectividad a los clústeres públicos de Kafka de Confluent Cloud

Puede usar las canalizaciones de OpenSearch ingestión para migrar datos desde un clúster Kafka de Confluent Cloud con una configuración pública, lo que significa que el nombre de dominio DNS se puede resolver públicamente. Para ello, configure una canalización de OpenSearch ingestión con el clúster público de Kafka de Confluent Cloud como origen y OpenSearch Service o Serverless como destino. OpenSearch Esto procesa los datos de streaming desde un clúster de origen autogestionado hasta un dominio o colección de destino AWS gestionado.

Requisitos previos

Antes de crear tu canalización OpenSearch de ingestión, lleva a cabo los siguientes pasos:

  1. Cree un clúster de clústeres Kafka de Confluent Cloud que sirva de fuente. El clúster debe contener los datos que desea incorporar a Service. OpenSearch

  2. Cree un dominio OpenSearch de servicio o una colección OpenSearch sin servidor a la que desee migrar los datos. Para obtener más información, consulte Creación de dominios OpenSearch de servicio y Creación de colecciones.

  3. Configure la autenticación en su clúster Kafka de Confluent Cloud con. AWS Secrets Manager Active la rotación de secretos siguiendo los pasos que se indican en Rotar AWS Secrets Manager secretos.

  4. Adjunta una política basada en recursos a tu dominio o una política de acceso a datos a tu colección. Estas políticas de acceso permiten a OpenSearch Ingestion escribir datos de tu clúster autogestionado en tu dominio o colección.

    El siguiente ejemplo de política de acceso a dominios permite que el rol de canalización, que se crea en el siguiente paso, escriba datos en un dominio. Asegúrate de actualizarlo resource con el tuyo propioARN.

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

    Para crear un IAM rol con los permisos correctos para acceder a los datos de escritura de la colección o el dominio, consulte Permisos necesarios para los dominios y Permisos obligatorios para las colecciones.

Paso 1: configurar el rol de canalización

Una vez establecidos los requisitos previos de la canalización de clústeres Kafka de Confluent Cloud, configure el rol de canalización que quiere usar en la configuración de la canalización y añada permiso para escribir en un dominio de OpenSearch servicio o en una colección OpenSearch sin servidor, así como permiso para leer los secretos de Secrets Manager.

Se necesita el siguiente permiso para administrar la interfaz de red:

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

El siguiente es el permiso necesario para leer los secretos del AWS Secrets Manager servicio:

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

Se necesitan los siguientes permisos para escribir en un dominio de 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}/*" } ] }

Paso 2: crear la canalización

A continuación, puede configurar una canalización de OpenSearch ingestión como la siguiente, que especifica su Confluent Cloud Kafka como fuente.

Puede especificar varios dominios de OpenSearch servicio como destinos de sus datos. Esta capacidad permite el enrutamiento condicional o la replicación de los datos entrantes en varios dominios OpenSearch de servicio.

También puede migrar datos de un clúster de Confluent Kafka de origen a una colección OpenSearch sin servidorVPC. Asegúrese de proporcionar una política de acceso a la red en la configuración de la canalización. Puede utilizar un registro de esquemas confluentes para definir un esquema confluente.

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"

Puede usar un plano preconfigurado para crear esta canalización. Para obtener más información, consulte Uso de esquemas para crear una canalización.

Conectividad a los clústeres de Confluent Cloud Kafka en un VPC

También puede utilizar las canalizaciones de OpenSearch ingestión para migrar datos desde un clúster Kafka de Confluent Cloud que se ejecute en un. VPC Para ello, configure una canalización de OpenSearch ingestión con un clúster Kafka de Confluent Cloud como origen y OpenSearch Service o Serverless como destino. OpenSearch Esto procesa los datos de streaming desde un clúster fuente de Kafka de Confluent Cloud a un AWS dominio o colección de destino gestionado.

OpenSearch Ingestion es compatible con los clústeres Kafka de Confluent Cloud configurados en todos los modos de red compatibles en Confluent. Los siguientes modos de configuración de red son compatibles como fuente en Ingestion: OpenSearch

  • AWS VPCpeering

  • AWS PrivateLink para clústeres dedicados

  • AWS PrivateLink para clústeres empresariales

  • AWS Transit Gateway

Requisitos previos

Antes de crear la canalización OpenSearch de ingestión, lleve a cabo los siguientes pasos:

  1. Cree un clúster Kafka de Confluent Cloud con una configuración de VPC red que contenga los datos que desee incorporar a Service. OpenSearch

  2. Cree un dominio OpenSearch de servicio o una colección OpenSearch sin servidor a la que desee migrar los datos. Para obtener más información, consulte Creación de dominios OpenSearch de servicio y Creación de colecciones.

  3. Configure la autenticación en su clúster Kafka de Confluent Cloud con. AWS Secrets Manager Active la rotación de secretos siguiendo los pasos que se indican en Rotar AWS Secrets Manager secretos.

  4. Obtén el identificador de quien tiene acceso a Kafka autogestionado. VPC Elija el VPC CIDR que utilizará Ingestion. OpenSearch

    nota

    Si utilizas el AWS Management Console para crear tu canalización, también debes adjuntar tu canalización de OpenSearch Ingestion a la tuya para poder utilizar el VPC Kafka autogestionado. Para ello, busca la sección de configuración de red, selecciona la VPC casilla Adjuntar a y elige una CIDR de las opciones predeterminadas disponibles, o selecciona la tuya propia. Puede utilizar cualquiera CIDR de ellos desde un espacio de direcciones privado, tal y como se define en las mejores prácticas actuales de RFC 1918.

    Para crear un personalizadoCIDR, selecciona Otros en el menú desplegable. Para evitar una colisión de direcciones IP entre OpenSearch Ingestion y autogestione OpenSearch, asegúrese de que la dirección autogestionada OpenSearch VPC CIDR sea diferente a la de Ingestion. CIDR OpenSearch

  5. Adjunta una política basada en recursos a tu dominio o una política de acceso a datos a tu colección. Estas políticas de acceso permiten a OpenSearch Ingestion escribir datos de tu clúster autogestionado en tu dominio o colección.

    El siguiente ejemplo de política de acceso a dominios permite que el rol de canalización, que se crea en el siguiente paso, escriba datos en un dominio. Asegúrate de actualizarlo resource con el tuyo propioARN.

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

    Para crear un IAM rol con los permisos correctos para acceder a los datos de escritura de la colección o el dominio, consulte Permisos necesarios para los dominios y Permisos obligatorios para las colecciones.

Paso 1: configurar el rol de canalización

Una vez establecidos los requisitos previos de la canalización, configura la función de canalización que deseas usar en la configuración de la canalización y agrega los siguientes permisos a la función:

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

Debes proporcionar los EC2 permisos de Amazon anteriores en la IAM función que utilices para crear la canalización de OpenSearch ingestión, ya que la canalización utiliza estos permisos para crear y eliminar una interfaz de red en la tuyaVPC. La canalización solo puede acceder al clúster de Kafka a través de esta interfaz de red.

Paso 2: crear la canalización

A continuación, puede configurar una canalización OpenSearch de ingestión como la siguiente, en la que se especifica a Kafka como origen.

Puede especificar varios dominios OpenSearch de servicio como destinos de sus datos. Esta capacidad permite el enrutamiento condicional o la replicación de los datos entrantes en varios dominios OpenSearch de servicio.

También puede migrar datos de un clúster de Confluent Kafka de origen a una colección OpenSearch sin servidorVPC. Asegúrese de proporcionar una política de acceso a la red en la configuración de la canalización. Puede utilizar un registro de esquemas confluentes para definir un esquema confluente.

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"

Puede usar un plano preconfigurado para crear esta canalización. Para obtener más información, consulte Uso de esquemas para crear una canalización.