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 con clústeres de Confluent Cloud Kafka públicos

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 DNS del dominio 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 de Confluent Cloud Kafka que actúe como origen. 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 el clúster de Confluent Cloud Kafka con AWS Secrets Manager. Siga los pasos de Rotate AWS Secrets Manager secrets para activar la rotación de secretos.

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

    El siguiente ejemplo de política de acceso al dominio permite que el rol de canalización, que creará en el paso siguiente, escriba datos en un dominio. Asegúrese de actualizar el resource con su propio ARN.

    JSON
    { "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 rol de IAM con los permisos correctos para acceder a los datos de escritura en la colección o el dominio, consulte. Configuración de roles y usuarios en Amazon OpenSearch Ingestion

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:

JSON
{ "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 servicio: AWS Secrets Manager

JSON
{ "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::account-id:role/pipeline-role" }, "Action": ["es:DescribeDomain", "es:ESHttp*"], "Resource": "arn:aws:es:region: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 de VPC OpenSearch sin servidor. 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 de Confluent para definir un esquema de Confluent.

version: "2" kafka-pipeline: source: kafka: encryption: type: "ssl" topics: - name: "topic-name" group_id: "group-id" bootstrap_servers: - "bootstrap-server.us-east-1.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-east-1.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-east-1.es.amazonaws.com"] aws: region: "us-east-1" aws: secrets: confluent-kafka-secret: secret_id: "my-kafka-secret" region: "us-east-1" schema-secret: secret_id: "my-self-managed-kafka-schema" region: "us-east-1"

Puede utilizar un esquema preconfigurado para crear esta canalización. Para obtener más información, consulte ¿Trabajando con planos.

Conectividad con clústeres de Confluent Cloud Kafka en una VPC

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

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 Emparejamiento de VPC

  • 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 red de VPC que contenga los datos que desea incorporar al servicio. 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 yCreación de colecciones.

  3. Configure la autenticación en el clúster de Confluent Cloud Kafka con AWS Secrets Manager. Siga los pasos de Rotate AWS Secrets Manager secrets para activar la rotación de secretos.

  4. Obtenga el ID de la VPC que tiene acceso al clúster Kafka de Confluent Cloud. Elija el CIDR de VPC 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 ingestión a tu VPC para poder usar el clúster Kafka de Confluent Cloud. Para ello, busque la sección Configuración de la red, seleccione la casilla Adjuntar a la VPC y elija el CIDR de una de las opciones predeterminadas proporcionadas o seleccione una opción propia. Puede usar cualquier CIDR de un espacio de direcciones privado, tal como se define en RFC 1918 Best Current Practice.

    Para proporcionar un CIDR personalizado, seleccione Otros en el menú desplegable. Para evitar una colisión en las direcciones IP entre la OpenSearch ingesta y la autogestión OpenSearch, asegúrese de que el CIDR de la OpenSearch VPC autogestionada sea diferente del CIDR de la ingestión. OpenSearch

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

    nota

    Si utiliza AWS PrivateLink para conectar Confluent Cloud Kafka, tendrá que configurar Opciones de DHCP de VPC. Nombres de host de DNS y Resolución de DNS deben estar habilitados.

    En concreto, utilice los siguientes valores de conjunto de opciones:

    domain-name: aws.private.confluent.cloud domain-name-servers: AmazonProvidedDNS

    Este cambio garantiza que la resolución de DNS para el PrivateLink punto final de Confluent funcione correctamente en la VPC.

    El siguiente ejemplo de política de acceso al dominio permite que el rol de canalización, que creará en el paso siguiente, escriba datos en un dominio. Asegúrese de actualizar el resource con su propio ARN.

    JSON
    { "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 rol de IAM con los permisos correctos para acceder a los datos de escritura en la colección o el dominio, consulte. Configuración de roles y usuarios en Amazon OpenSearch Ingestion

Paso 1: configurar el rol de canalización

Una vez configurados los requisitos previos de la canalización, configure el rol de la canalización que desee usar en la configuración de la canalización y agregue los siguientes permisos al rol:

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

Debe proporcionar los EC2 permisos de Amazon anteriores en la función de IAM que utilice 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 su VPC. 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 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 de VPC OpenSearch sin servidor. 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 de Confluent para definir un esquema de Confluent.

version: "2" kafka-pipeline: source: kafka: encryption: type: "ssl" topics: - name: "topic-name" group_id: "group-id" bootstrap_servers: - "bootstrap-server.us-east-1.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-east-1.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-east-1.es.amazonaws.com"] aws: region: "us-east-1" index: "confluent-index" extension: aws: secrets: confluent-kafka-secret: secret_id: "my-kafka-secret" region: "us-east-1" schema-secret: secret_id: "my-self-managed-kafka-schema" region: "us-east-2"