Usar um pipeline do OpenSearch Ingestion com o OpenSearch - 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á.

Usar um pipeline do OpenSearch Ingestion com o OpenSearch

É possível usar um pipeline do OpenSearch Ingestion com OpenSearch ou Elasticsearch autogerenciados para migrar dados para domínios do Amazon OpenSearch Service e coleções do OpenSearch sem Servidor. O OpenSearch Ingestion suporta configurações de rede pública e privada para a migração de dados do OpenSearch e do Elasticsearch autogerenciados.

Conectividade com clusters públicos do OpenSearch

Você pode usar os pipelines do OpenSearch Ingestion para migrar dados de um cluster do OpenSearch ou do Elasticsearch autogerenciados com uma configuração pública, o que significa que o nome DNS do domínio pode ser resolvido publicamente. Para fazer isso, configure um pipeline do OpenSearch Ingestion com OpenSearch ou Elasticsearch autogerenciados como origem e OpenSearch Service ou OpenSearch sem Servidor como destino. Isso migra efetivamente seus dados de um cluster de origem autogerenciado para um domínio ou coleção de destino gerenciado pela AWS.

Pré-requisitos

Antes de criar o pipeline da Ingestão do OpenSearch, execute as seguintes etapas:

  1. Crie um cluster autogerenciado do OpenSearch ou do Elastisearch que contenha os dados que você deseja migrar e configure um nome DNS público.

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

  3. Configure a autenticação em seu cluster autogerenciado com AWS Secrets Manager. Habilite a alternância de segredos seguindo as etapas em Alternar segredos do AWS Secrets Manager.

  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 Ingestion 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. Lembre-se de 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" ] } ] }

    Para criar um perfil do IAM com as permissões corretas para acessar dados de gravação na coleção ou no domínio, consulte Permissões necessárias para domínios e Permissões necessárias para coleções.

Etapa 1: configurar a função do pipeline

Depois de configurar os pré-requisitos do pipeline do OpenSearch, 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 do OpenSearch Service ou em uma coleção do OpenSearch sem Servidor, bem como permissão para ler segredos do Secrets Manager.

Etapa 2: Criar o pipeline

Em seguida, você pode configurar um pipeline do OpenSearch Ingestion como o seguinte, que especifica o OpenSearch como a origem.

É possível especificar vários domínios do OpenSearch Service como destinos para dados. Esse recurso permite roteamentos condicionais ou a replicação de dados recebidos em vários domínios do OpenSearch Service.

Também é possível migrar dados de um cluster de origem do OpenSearch ou Elasticsearch para uma coleção da VPC do OpenSearch sem Servidor. Forneça uma política de acesso à rede na configuração do pipeline.

version: "2" opensearch-migration-pipeline: source: opensearch: acknowledgments: true host: [ "https://my-self-managed-cluster-name:9200" ] indices: include: - index_name_regex: "include-.*" exclude: - index_name_regex: '\..*' authentication: username: ${aws_secrets:secret:username} password: ${aws_secrets:secret:password} scheduling: interval: "PT2H" index_read_count: 3 start_time: "2023-06-02T22:01:30.00Z" sink: - opensearch: hosts: ["https://search-mydomain.us-east-1.es.amazonaws.com"] aws: sts_role_arn: "arn:aws:iam::{account-id}:role/pipeline-role" region: "us-east-1" #Uncomment the following lines if your destination is an OpenSearch Serverless collection #serverless: true # serverless_options: # network_policy_name: "network-policy-name" index: "${getMetadata(\"opensearch-index\")}" document_id: "${getMetadata(\"opensearch-document_id\")}" enable_request_compression: true dlq: s3: bucket: "bucket-name" key_path_prefix: "apache-log-pipeline/logs/dlq" region: "us-east-1" sts_role_arn: "arn:aws:iam::{account-id}:role/pipeline-role" extension: aws: secrets: secret: secret_id: "my-opensearch-secret" region: "us-east-1" sts_role_arn: "arn:aws:iam::{account-id}:role/pipeline-role" refresh_interval: PT1H

É possível usar um esquema pré-configurado para criar esse pipeline. Para ter mais informações, consulte Usar esquemas para criar um pipeline.

Conectividade com clusters do OpenSearch em uma VPC

Também é possível usar pipelines do OpenSearch Ingestion para migrar dados de um cluster autogerenciado do OpenSearch ou do Elasticsearch em execução em uma VPC. Para fazer isso, configure um pipeline do OpenSearch Ingestion com OpenSearch ou Elasticsearch autogerenciados como origem e OpenSearch Service ou OpenSearch sem Servidor como destino. Isso migra efetivamente seus dados de um cluster de origem autogerenciado para um domínio ou coleção de destino gerenciado pela AWS.

Pré-requisitos

Antes de criar o pipeline da Ingestão do OpenSearch, execute as seguintes etapas:

  1. Crie um cluster autogerenciado do OpenSearch ou do Elastisearch com uma configuração de rede VPC que contenha os dados que você deseja migrar.

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

  3. Configure a autenticação em seu cluster autogerenciado com AWS Secrets Manager. Habilite a alternância de segredos seguindo as etapas em Alternar segredos do AWS Secrets Manager.

  4. Obtenha o ID da VPC que tem acesso ao OpenSearch ou Elasticsearch autogerenciados. Escolha o CIDR da VPC a ser usado pelo OpenSearch Ingestion.

    nota

    Se você estiver usando o AWS Management Console para criar seu pipeline, você também deve anexar seu pipeline de ingestão do OpenSearch à sua VPC para usar o OpenSearch ou o Elasticsearch autogerenciados. Para fazer isso, encontre a seção Configuração de rede, marque a caixa de seleção Anexar à VPC e escolha seu CIDR em uma das opções padrão fornecidas ou selecione a sua própria. Você pode usar qualquer CIDR de um espaço de endereço privado, conforme definido em Melhor prática atual RFC 1918.

    Para fornecer um CIDR personalizado, selecione Outro no menu suspenso. Para evitar uma colisão de endereços IP entre o OpenSearch Ingestion e o OpenSearch autogerenciado, verifique se o CIDR autogerenciado da VPC do OpenSearch é diferente do CIDR para o OpenSearch Ingestion.

  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 Ingestion 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. Lembre-se de 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" ] } ] }

    Para criar um perfil do IAM com as permissões corretas para acessar dados de gravação na coleção ou no domínio, consulte Permissões necessárias para domínios e Permissões necessárias para coleções.

Etapa 1: configurar a função do pipeline

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

{ "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 permissões do Amazon EC2 acima sobre o perfil do IAM que você usa para criar o pipeline do OpenSearch Ingestion porque o pipeline usa essas permissões para criar e excluir uma interface de rede em sua VPC. O pipeline só pode acessar o cluster do OpenSearch por meio dessa interface de rede.

Etapa 2: Criar o pipeline

Em seguida, você pode configurar um pipeline do OpenSearch Ingestion como o seguinte, que especifica o OpenSearch como a origem.

É possível especificar vários domínios do OpenSearch Service como destinos para dados. Esse recurso permite roteamentos condicionais ou a replicação de dados recebidos em vários domínios do OpenSearch Service.

Também é possível migrar dados de um cluster de origem do OpenSearch ou Elasticsearch para uma coleção da VPC do OpenSearch sem Servidor. Forneça uma política de acesso à rede na configuração do pipeline.

version: "2" opensearch-migration-pipeline: source: opensearch: acknowledgments: true host: [ "https://my-self-managed-cluster-name:9200" ] indices: include: - index_name_regex: "include-.*" exclude: - index_name_regex: '\..*' authentication: username: ${aws_secrets:secret:username} password: ${aws_secrets:secret:password} scheduling: interval: "PT2H" index_read_count: 3 start_time: "2023-06-02T22:01:30.00Z" sink: - opensearch: hosts: ["https://search-mydomain.us-east-1.es.amazonaws.com"] aws: sts_role_arn: "arn:aws:iam::{account-id}:role/pipeline-role" region: "us-east-1" #Uncomment the following lines if your destination is an OpenSearch Serverless collection #serverless: true # serverless_options: # network_policy_name: "network-policy-name" index: "${getMetadata(\"opensearch-index\")}" document_id: "${getMetadata(\"opensearch-document_id\")}" enable_request_compression: true dlq: s3: bucket: "bucket-name" key_path_prefix: "apache-log-pipeline/logs/dlq" region: "us-east-1" sts_role_arn: "arn:aws:iam::{account-id}:role/pipeline-role" extension: aws: secrets: secret: secret_id: "my-opensearch-secret" region: "us-east-1" sts_role_arn: "arn:aws:iam::{account-id}:role/pipeline-role" refresh_interval: PT1H

É possível usar um esquema pré-configurado para criar esse pipeline. Para ter mais informações, consulte Usar esquemas para criar um pipeline.