Usando um pipeline de OpenSearch ingestão com a nuvem Confluent 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 a nuvem Confluent Kafka

Você pode usar o Confluent Kafka como fonte na OpenSearch Ingestão para transmitir dados de um cluster do Confluent Kafka para um domínio do Amazon Service ou uma coleção Amazon OpenSearch Serverless. OpenSearch OpenSearch A ingestão suporta o processamento de dados de streaming do Kafka autogerenciado em espaços de rede pública e privada.

Conectividade com o Confluent public Kafka Cloud

Você pode usar pipelines de OpenSearch ingestão para transmitir dados de um cluster do Confluent Kafka com configuração pública (o nome DNS do servidor bootstrap deve ser resolvido publicamente). Para fazer isso, você precisará de um pipeline de OpenSearch ingestão, um cluster confluente do Kafka como origem e um OpenSearch domínio do Amazon Service ou uma coleção do Amazon OpenSearch Serverless como destino.

Para migrar dados, você deve ter o seguinte:

  • Um cluster do Confluent Kafka atuando como fonte. O cluster deve conter os dados que você deseja migrar.

  • Um domínio do Amazon OpenSearch Service ou uma coleção Amazon OpenSearch Serverless atuando como um destino.

  • O cluster Kafka deve ter a autenticação habilitada com as credenciais de. AWS Secrets Manager

Requisitos

Para habilitar a autenticação AWS Secrets Manager baseada em seu cluster de origem autogerenciado OpenSearch ou do Elasticsearch, você deve

  • Configure a autenticação em seu cluster do Confluent Kafka AWS Secrets Manager seguindo as etapas em Rotate secrets. AWS Secrets Manager

  • Crie uma função de pipeline no IAM com permissões para gravar em um domínio do Amazon OpenSearch Service ou em uma coleção Amazon OpenSearch Serverless. Você também deve especificar a permissão para ler as credenciais de AWS Secrets Manager. Para fazer isso:

    • Anexe uma política baseada em recursos ao seu domínio do Amazon OpenSearch Service 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 OpenSearch ou de origem do Elasticsearch no seu domínio do Amazon OpenSearch Service ou na sua coleção Amazon Serverless. OpenSearch

  • Crie um pipeline OpenSearch de ingestão consultando o blueprint.

    Depois de concluir essas etapas, seu pipeline começará automaticamente a processar os dados do seu cluster de origem e os ingerirá em seu domínio do Amazon OpenSearch Service ou no destino de coleta do Amazon OpenSearch Serverless. Você pode usar vários processadores no pipeline OpenSearch de ingestão para realizar qualquer transformação nos dados ingeridos.

Funções e permissões do IAM

O exemplo de política de acesso ao domínio a seguir permite que a função do pipeline, que você cria na próxima etapa, grave dados em um domínio do Amazon OpenSearch Service. Certifique-se de atualizar o recurso com seu próprio ARN.

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

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}/*" } ] }
Criando um pipeline

Depois de anexar a política à função do pipeline, utilize o esquema do pipeline de migração de dados do Confluent Kafka para criar o pipeline. Esse esquema inclui uma configuração padrão para migrar dados entre o Kafka e seu destino.

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

  • Você pode migrar dados de um cluster de origem do Confluent Kafka para uma coleção Amazon Serverless VPC. OpenSearch Certifique-se de fornecer uma política de acesso à rede na configuração do pipeline.

  • Você pode usar o registro de esquema confluente para definir um esquema confluente.

O exemplo de pipeline a seguir ingere dados de um cluster do Confluent Kafka para um domínio do Amazon Service: OpenSearch

version: "2" kafka-pipeline: source: kafka: # Encryption is always required encryption: type: "ssl" topics: - name: "topic_4" group_id: "demoGroup" bootstrap_servers: # TODO: for public confluent kafka use public booststrap server dns - "<<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 is optional schema: type: confluent registry_url: https://<<registry-url>>.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://<<opensearchdomain>>.us-west-2.es.amazonaws.com" ] index: "enterprise-confluent-demo" aws: sts_role_arn: "arn:aws:iam::1234567890:role/os-os-test-role" region: "<<aws-region>>" extension: aws: secrets: confluent-kafka-secret: secret_id: "enterprise-kafka-credentials" region: "<<aws-region>>" sts_role_arn: "arn:aws:iam::1234567890:role/os-os-test-role" schema-secret: secret_id: "self-managed-kafka-schema" region: "<<aws-region>>" sts_role_arn: "arn:aws:iam::1234567890:role/os-os-test-role"

Conectividade com o Confluent Kafka Cloud em VPC

Você pode usar pipelines OpenSearch de ingestão para transmitir dados de um cluster do Confluent Kafka com configuração pública. Para fazer isso, configure um pipeline de OpenSearch ingestão com o Confluent Kafka como fonte e um OpenSearch domínio do Amazon Service ou uma coleção Amazon OpenSearch Serverless como destino. O pipeline processa todos os dados de streaming do seu cluster kafka e ingere os dados no cluster de destino.

Configuração de rede Confluent Kafka

OpenSearch A ingestão é compatível com clusters do Confluent 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 Emparelhamento de VPC

  • AWS PrivateLink para clusters dedicados

  • AWS PrivateLink para clusters corporativos

  • AWS Transit Gateway

Você pode usar o Kafka gerenciado pelo Confluent como fonte para ingerir dados de uma nuvem do Confluent. Para conseguir isso, você configura um pipeline em que configura o Kafka como a origem e um domínio do Amazon OpenSearch Service ou uma coleção Amazon OpenSearch Serverless como coletor. Isso facilita a migração de dados do Kafka para o destino designado. A migração também suporta o uso de um registro confluente ou nenhum registro.

Para realizar a migração de dados, você precisa dos seguintes recursos:

  • Um cluster do Confluent Kafka atuando como fonte, contendo os dados que você pretende migrar.

  • Um destino de destino, como um domínio do Amazon OpenSearch Service ou uma coleção Amazon OpenSearch Serverless como coletor.

  • Um ID de VPC da Amazon VPC que tem acesso ao Confluent VPC.

  • O cluster Kafka deve ter a autenticação habilitada com as credenciais de. AWS Secrets Manager

Requisitos

Para configurar a ingestão em seu cluster Kafka, é necessário o seguinte:

  • Você deve habilitar a autenticação AWS Secrets Manager baseada em seu cluster Kafka.

  • Você precisará fornecer o CIDR da VPC para ser usado pelo OpenSearch serviço de ingestão.

    • Se você estiver usando o AWS Management Console para criar seu pipeline, você também deve anexar o pipeline do Amazon OpenSearch Ingestion à sua VPC para usar o Confluent Kafka como fonte. Para fazer isso, encontre a seção Configuração de rede, marque a caixa de seleção Anexar à VPC e escolha seu CIDR ou insira manualmente qualquer CIDR /24 a ser usado pela ingestão. OpenSearch O CIDR escolhido para ser usado pelo OpenSearch Ingestion deve ser diferente do CIDR da VPC em que o Kafka gerenciado pelo Confluent está sendo executado. Mais informações sobre o Confluent Kafka CIDR a serem evitadas aqui. Abaixo estão as opções padrão de CIDR que podem ser usadas pelo Serviço de OpenSearch Ingestão para criar conectividade de rede.

      • 10.99.20.0/24

      • 192.168.36.0/24

      • 172.21.56.0/24

  • Você precisará criar uma função de pipeline no IAM com permissões para o domínio Amazon OpenSearch Service ou para a coleção Amazon OpenSearch Serverless e permissão para ler os segredos do. AWS Secrets Manager

    • Anexe uma política baseada em recursos ao seu domínio do Amazon OpenSearch Service ou uma política de acesso a dados do Amazon OpenSearch Serverless à sua coleção. Essas políticas de acesso permitem que o OpenSearch Inestion grave dados do seu Kafka no seu domínio do Amazon OpenSearch Service ou na coleção Amazon Serverless. OpenSearch

Funções e permissões do IAM

O exemplo de política de acesso ao domínio a seguir permite que a função do pipeline grave dados em um domínio do Amazon OpenSearch Service.

nota

Você precisará atualizar o resource com seu próprio ARN.

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

O exemplo a seguir fornece as permissões necessárias para gerenciar sua 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" } } } ]

O exemplo a seguir fornece as permissões necessárias para ler segredos de AWS Secrets Manager:

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

O exemplo a seguir fornece as permissões 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}/*" } ] }
Criando um pipeline

Depois de anexar a política à função do pipeline, você pode usar o esquema do pipeline de migração de dados do Confluent Kafka para criar seu pipeline. Esse esquema inclui uma configuração padrão para migrar dados entre o Kafka e seu destino.

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

  • Você pode migrar dados de um cluster de origem do Confluent Kafka para uma coleção Amazon Serverless VPC. OpenSearch Certifique-se de fornecer uma política de acesso à rede na configuração do pipeline.

  • Você pode usar o registro do esquema Confluent para definir um esquema do Confluent.

Exemplo de configuração do pipeline

version: "2" kafka-pipeline: source: kafka: # Encryption is always required encryption: type: "ssl" topics: - name: "topic_4" group_id: "demoGroup" bootstrap_servers: # TODO: for public confluent kafka use public booststrap server dns - "<<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 is optional schema: type: confluent registry_url: https://<<registry-url>>.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://<<opensearchdomain>>.us-west-2.es.amazonaws.com" ] index: "enterprise-confluent-demo" aws: sts_role_arn: "arn:aws:iam::1234567890:role/os-os-test-role" region: "<<aws-region>>" extension: aws: secrets: confluent-kafka-secret: secret_id: "enterprise-kafka-credentials" region: "<<aws-region>>" sts_role_arn: "arn:aws:iam::1234567890:role/os-os-test-role" schema-secret: secret_id: "self-managed-kafka-schema" region: "<<aws-region>>" sts_role_arn: "arn:aws:iam::1234567890:role/os-os-test-role"