Uso de una canalización OpenSearch de ingestión con 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 Kafka

Puedes usar una canalización de OpenSearch ingestión con Kafka autogestionado para transmitir datos 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 Kafka autogestionada a dominios o colecciones gestionados por Service o Serverless. OpenSearch OpenSearch

Conectividad a clústeres públicos de Kafka

Puede utilizar las canalizaciones de OpenSearch ingestión para migrar datos desde un clúster de Kafka autogestionado con una configuración pública, lo que significa que el DNS nombre de dominio se puede resolver públicamente. Para ello, configura una canalización de OpenSearch ingestión con Kafka autogestionado 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 Kafka autogestionado con una configuración de red pública. 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 autogestionado con AWS Secrets Manager. Para activar la rotación de secretos, sigue 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 Kafka, configura el rol de canalización que quieres usar en la configuración de la canalización y añade 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.

Paso 2: crear la canalización

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

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.

Conectividad a los clústeres de Kafka en un VPC

También puede utilizar las canalizaciones de OpenSearch ingestión para migrar datos desde un clúster Kafka autogestionado que se ejecute en un. VPC Para ello, configure una canalización de OpenSearch ingestión con Kafka autogestionado 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 Kafka autogestionado 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 autogestionado con AWS Secrets Manager. Para activar la rotación de secretos, sigue 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 el rol 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.