Usando um pipeline de OpenSearch ingestão com o Confluent Cloud Kafka - OpenSearch Serviço Amazon

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Usando um pipeline de OpenSearch ingestão com o Confluent Cloud Kafka

Você pode usar um pipeline de OpenSearch ingestão para transmitir dados dos clusters do Confluent Cloud Kafka para domínios do OpenSearch Amazon Service e coleções sem servidor. OpenSearch OpenSearch A ingestão suporta configurações de rede pública e privada para o streaming de dados dos clusters do Confluent Cloud Kafka para domínios ou coleções gerenciados pelo Service ou Serverless. OpenSearch OpenSearch

Conectividade com clusters Kafka públicos do Confluent Cloud

Você pode usar pipelines de OpenSearch ingestão para migrar dados de um cluster do Confluent Cloud Kafka com uma configuração pública, o que significa que o nome de domínio pode ser resolvido publicamente. DNS Para fazer isso, configure um pipeline de OpenSearch ingestão com o cluster Kafka público do Confluent Cloud como origem e OpenSearch Service ou OpenSearch Serverless como destino. Isso processa seus dados de streaming de um cluster de origem autogerenciado para um domínio ou AWS coleção de destino gerenciado.

Pré-requisitos

Antes de criar seu pipeline OpenSearch de ingestão, execute as seguintes etapas:

  1. Crie um cluster de clusters do Confluent Cloud Kafka atuando como fonte. O cluster deve conter os dados que você deseja ingerir no OpenSearch Service.

  2. Crie um domínio OpenSearch de serviço ou uma coleção OpenSearch sem servidor para onde você deseja migrar dados. Para obter mais informações, consulte Criação OpenSearch de domínios de serviço e Criação de coleções.

  3. Configure a autenticação em seu cluster do Confluent Cloud Kafka com. AWS Secrets Manager Ative a rotação de segredos seguindo as etapas em Girar AWS Secrets Manager segredos.

  4. Anexe uma política baseada em recursos ao seu domínio ou uma política de acesso a dados à sua coleção. Essas políticas de acesso permitem que o OpenSearch Inestion grave dados do seu cluster autogerenciado em seu domínio ou coleção.

    O exemplo de política de acesso ao domínio a seguir permite que a função de pipeline, que você cria na próxima etapa, grave dados em um domínio. Certifique-se de atualizar o resource com o seuARN.

    { "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 criar uma IAM função com as permissões corretas para acessar dados de gravação na coleção ou no domínio, consulte Permissões obrigatórias para domínios e Permissões obrigatórias para coleções.

Etapa 1: configurar a função do pipeline

Depois de configurar os pré-requisitos do pipeline de cluster do Confluent Cloud Kafka, configure a função do pipeline que você deseja usar na configuração do pipeline e adicione permissão para gravar em um domínio de OpenSearch serviço ou coleção OpenSearch sem servidor, bem como permissão para ler segredos do Secrets Manager.

A permissão a seguir é necessária para gerenciar a interface de rede:

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

A seguir está a permissão necessária para ler os segredos do AWS Secrets Manager serviço:

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

As seguintes permissões são necessárias para gravar em um domínio do 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}/*" } ] }

Etapa 2: Criar o pipeline

Em seguida, você pode configurar um pipeline de OpenSearch ingestão como o seguinte, que especifica seu Confluent Cloud Kafka como fonte.

Você pode especificar vários domínios OpenSearch de serviço como destinos para seus dados. Esse recurso permite o roteamento condicional ou a replicação de dados recebidos em vários domínios de serviço. OpenSearch

Você também pode migrar dados de um cluster de origem do Confluent Kafka para uma coleção sem servidor. OpenSearch VPC Certifique-se de fornecer uma política de acesso à rede na configuração do pipeline. Você pode usar um registro de esquema do Confluent para definir um esquema do 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"

Você pode usar um blueprint pré-configurado para criar esse pipeline. Para obter mais informações, consulte Usar esquemas para criar um pipeline.

Conectividade com clusters do Confluent Cloud Kafka em um VPC

Você também pode usar pipelines OpenSearch de ingestão para migrar dados de um cluster do Confluent Cloud Kafka executado em um. VPC Para fazer isso, configure um pipeline de OpenSearch ingestão com um cluster do Confluent Cloud Kafka como origem e OpenSearch serviço ou OpenSearch sem servidor como destino. Isso processa seus dados de streaming de um cluster de origem do Confluent Cloud Kafka para um domínio ou coleção de destino AWS gerenciado.

OpenSearch A ingestão é compatível com clusters do Confluent Cloud Kafka configurados em todos os modos de rede compatíveis no Confluent. Os seguintes modos de configuração de rede são suportados como fonte na OpenSearch Ingestão:

  • AWS VPCespiando

  • AWS PrivateLink para clusters dedicados

  • AWS PrivateLink para clusters corporativos

  • AWS Transit Gateway

Pré-requisitos

Antes de criar seu pipeline OpenSearch de ingestão, execute as seguintes etapas:

  1. Crie um cluster do Confluent Cloud Kafka com uma configuração de VPC rede que contenha os dados que você deseja ingerir no Service. OpenSearch

  2. Crie um domínio OpenSearch de serviço ou uma coleção OpenSearch sem servidor para onde você deseja migrar dados. Para obter mais informações, consulte Criação OpenSearch de domínios de serviço e Criação de coleções.

  3. Configure a autenticação em seu cluster do Confluent Cloud Kafka com. AWS Secrets Manager Ative a rotação de segredos seguindo as etapas em Girar AWS Secrets Manager segredos.

  4. Obtenha o ID da pessoa VPC que tem acesso ao Kafka autogerenciado. Escolha o VPC CIDR a ser usado pela OpenSearch Ingestão.

    nota

    Se você estiver usando o AWS Management Console para criar seu pipeline, você também deve anexar seu pipeline de OpenSearch ingestão ao seu para usar o VPC Kafka autogerenciado. Para fazer isso, encontre a seção Configuração de rede, marque a VPC caixa de seleção Anexar a e escolha a sua CIDR dentre as opções padrão fornecidas ou selecione a sua própria. Você pode usar qualquer um CIDR de um espaço de endereço privado, conforme definido nas Melhores Práticas Atuais de RFC 1918.

    Para fornecer um personalizadoCIDR, selecione Outro no menu suspenso. Para evitar uma colisão de endereços IP entre OpenSearch ingestão e autogerenciamento OpenSearch, certifique-se de que o autogerenciado OpenSearch VPC CIDR seja diferente do para ingestão. CIDR OpenSearch

  5. Anexe uma política baseada em recursos ao seu domínio ou uma política de acesso a dados à sua coleção. Essas políticas de acesso permitem que o OpenSearch Inestion grave dados do seu cluster autogerenciado em seu domínio ou coleção.

    O exemplo de política de acesso ao domínio a seguir permite que a função de pipeline, que você cria na próxima etapa, grave dados em um domínio. Certifique-se de atualizar o resource com o seuARN.

    { "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 criar uma IAM função com as permissões corretas para acessar dados de gravação na coleção ou no domínio, consulte Permissões obrigatórias para domínios e Permissões obrigatórias para coleções.

Etapa 1: configurar a função do pipeline

Depois de configurar os pré-requisitos do pipeline, configure a função do pipeline que você deseja usar na configuração do pipeline e adicione as seguintes permissões ao papel:

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

Você deve fornecer as EC2 permissões da Amazon acima sobre a IAM função que você usa para criar o pipeline de OpenSearch ingestão porque o pipeline usa essas permissões para criar e excluir uma interface de rede no seuVPC. O pipeline só pode acessar o cluster Kafka por meio dessa interface de rede.

Etapa 2: Criar o pipeline

Em seguida, você pode configurar um pipeline OpenSearch de ingestão como o seguinte, que especifica o Kafka como a origem.

Você pode especificar vários domínios OpenSearch de serviço como destinos para seus dados. Esse recurso permite o roteamento condicional ou a replicação de dados recebidos em vários domínios de serviço. OpenSearch

Você também pode migrar dados de um cluster de origem do Confluent Kafka para uma coleção sem servidor. OpenSearch VPC Certifique-se de fornecer uma política de acesso à rede na configuração do pipeline. Você pode usar um registro de esquema do Confluent para definir um esquema do 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"

Você pode usar um blueprint pré-configurado para criar esse pipeline. Para obter mais informações, consulte Usar esquemas para criar um pipeline.