Utilizzo di una pipeline di OpenSearch ingestione con Amazon Managed Streaming for Apache Kafka - OpenSearch Servizio Amazon

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Utilizzo di una pipeline di OpenSearch ingestione con Amazon Managed Streaming for Apache Kafka

Puoi utilizzare il plug-in Kafka per inserire dati da Amazon Managed Streaming for Apache Kafka (Amazon MSK) nella tua pipeline di Ingestion. OpenSearch Con Amazon MSK, puoi creare ed eseguire applicazioni che utilizzano Apache Kafka per elaborare dati in streaming. OpenSearch Ingestion utilizza AWS PrivateLink per connettersi ad Amazon MSK. Puoi importare dati da cluster Amazon MSK e Amazon MSK Serverless. L'unica differenza tra i due processi sono i passaggi preliminari da eseguire prima di configurare la pipeline.

Prerequisiti di Amazon MSK

Prima di creare la pipeline di OpenSearch Ingestion, esegui i seguenti passaggi:

  1. Crea un cluster con provisioning Amazon MSK seguendo i passaggi descritti nella sezione Creazione di un cluster nella Amazon Managed Streaming for Apache Kafka Developer Guide. Per il tipo di broker, scegli qualsiasi opzione tranne i t3 tipi, poiché questi non sono supportati da Ingestion. OpenSearch

  2. Dopo che il cluster ha uno stato Attivo, segui i passaggi in Attivare la connettività multi-VPC.

  3. Segui i passaggi in Allegare una politica del cluster al cluster MSK per allegare una delle seguenti politiche, a seconda che il cluster e la pipeline coincidano. Account AWS Questa policy consente a OpenSearch Ingestion di creare una AWS PrivateLink connessione al tuo cluster Amazon MSK e leggere dati da argomenti di Kafka. Assicurati di aggiornarlo resource con il tuo ARN.

    Le seguenti politiche si applicano quando il cluster e la pipeline coincidono: Account AWS

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "osis.amazonaws.com" }, "Action": [ "kafka:CreateVpcConnection", "kafka:DescribeClusterV2" ], "Resource": "arn:aws:kafka:us-east-1:{account-id}:cluster/cluster-name/cluster-id" }, { "Effect": "Allow", "Principal": { "Service": "osis-pipelines.amazonaws.com" }, "Action": [ "kafka:CreateVpcConnection", "kafka:GetBootstrapBrokers", "kafka:DescribeClusterV2" ], "Resource": "arn:aws:kafka:us-east-1:{account-id}:cluster/cluster-name/cluster-id" } ] }

    Se il tuo cluster Amazon MSK si trova in una pipeline Account AWS diversa dalla tua, allega invece la seguente policy. Tieni presente che l'accesso tra account è possibile solo con i cluster Amazon MSK forniti e non con i cluster Amazon MSK Serverless. L'ARN per il AWS principal dovrebbe essere l'ARN per lo stesso ruolo di pipeline fornito alla configurazione YAML della pipeline:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "osis.amazonaws.com" }, "Action": [ "kafka:CreateVpcConnection", "kafka:DescribeClusterV2" ], "Resource": "arn:aws:kafka:us-east-1:{msk-account-id}:cluster/cluster-name/cluster-id" }, { "Effect": "Allow", "Principal": { "Service": "osis-pipelines.amazonaws.com" }, "Action": [ "kafka:CreateVpcConnection", "kafka:GetBootstrapBrokers", "kafka:DescribeClusterV2" ], "Resource": "arn:aws:kafka:us-east-1:{msk-account-id}:cluster/cluster-name/cluster-id" }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::{pipeline-account-id}:role/pipeline-role" }, "Action": [ "kafka-cluster:*", "kafka:*" ], "Resource": [ "arn:aws:kafka:us-east-1:{msk-account-id}:cluster/cluster-name/cluster-id", "arn:aws:kafka:us-east-1:{msk-account-id}:topic/cluster-name/cluster-id/*", "arn:aws:kafka:us-east-1:{msk-account-id}:group/cluster-name/*" ] } ] }
  4. Crea un argomento di Kafka seguendo la procedura descritta in Creare un argomento. Assicurati che BootstrapServerString sia uno degli URL di bootstrap dell'endpoint privato (Single-VPC). Il valore per --replication-factor dovrebbe essere 2 o3, in base al numero di zone del tuo cluster Amazon MSK. Il valore di --partitions deve essere almeno10.

  5. Produci e consuma dati seguendo i passaggi descritti in Produrre e consumare dati. Ancora una volta, assicurati che BootstrapServerString sia uno degli URL di bootstrap dell'endpoint privato (Single-VPC).

Prerequisiti per Amazon MSK Serverless

Prima di creare la pipeline di OpenSearch Ingestion, esegui i seguenti passaggi:

  1. Crea un cluster Serverless Amazon MSK seguendo i passaggi descritti in Creare un cluster Serverless MSK nella Amazon Managed Streaming for Apache Kafka Developer Guide.

  2. Dopo che il cluster ha lo stato Attivo, segui i passaggi in Allegare una politica del cluster al cluster MSK per allegare la seguente politica. Assicurati di aggiornarlo resource con il tuo ARN.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "osis.amazonaws.com" }, "Action": [ "kafka:CreateVpcConnection", "kafka:DescribeClusterV2" ], "Resource": "arn:aws:kafka:us-east-1:{account-id}:cluster/cluster-name/cluster-id" }, { "Effect": "Allow", "Principal": { "Service": "osis-pipelines.amazonaws.com" }, "Action": [ "kafka:CreateVpcConnection", "kafka:GetBootstrapBrokers", "kafka:DescribeClusterV2" ], "Resource": "arn:aws:kafka:us-east-1:{account-id}:cluster/cluster-name/cluster-id" } ] }

    Questa policy consente a OpenSearch Ingestion di creare una AWS PrivateLink connessione al tuo cluster Amazon MSK Serverless e leggere dati da argomenti di Kafka. Questa politica si applica quando il cluster e la pipeline coincidono Account AWS, il che deve essere vero in quanto Amazon MSK Serverless non supporta l'accesso tra account.

  3. Crea un argomento su Kafka seguendo la procedura descritta in Creare un argomento. Assicurati che BootstrapServerString sia uno degli URL di bootstrap IAM Simple Authentication and Security Layer (SASL). Il valore per --replication-factor dovrebbe essere 2 o3, in base al numero di zone del tuo cluster Amazon MSK Serverless. Il valore di --partitions deve essere almeno. 10

  4. Produci e consuma dati seguendo i passaggi descritti in Produrre e consumare dati. Ancora una volta, assicurati che BootstrapServerString sia uno degli URL di bootstrap IAM Simple Authentication and Security Layer (SASL).

Fase 1: Configurare il ruolo della pipeline

Dopo aver configurato il cluster Amazon MSK con provisioning o serverless, aggiungi le seguenti autorizzazioni Kafka nel ruolo pipeline che desideri utilizzare nella configurazione della pipeline:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kafka-cluster:Connect", "kafka-cluster:AlterCluster", "kafka-cluster:DescribeCluster", "kafka:DescribeClusterV2", "kafka:GetBootstrapBrokers" ], "Resource": [ "arn:aws:kafka:us-east-1:{account-id}:cluster/cluster-name/cluster-id" ] }, { "Effect": "Allow", "Action": [ "kafka-cluster:*Topic*", "kafka-cluster:ReadData" ], "Resource": [ "arn:aws:kafka:us-east-1:{account-id}:topic/cluster-name/cluster-id/topic-name" ] }, { "Effect": "Allow", "Action": [ "kafka-cluster:AlterGroup", "kafka-cluster:DescribeGroup" ], "Resource": [ "arn:aws:kafka:us-east-1:{account-id}:group/cluster-name/*" ] } ] }

Fase 2: Creare la pipeline

È quindi possibile configurare una pipeline OpenSearch di ingestione come la seguente, che specifica Kafka come origine:

version: "2" log-pipeline: source: kafka: acknowledgements: true topics: - name: "topic-name" group_id: "group-id" aws: msk: arn: "arn:aws:kafka:{region}:{account-id}:cluster/cluster-name/cluster-id" region: "us-west-2" sts_role_arn: "arn:aws:iam::{account-id}:role/pipeline-role" processor: - grok: match: message: - "%{COMMONAPACHELOG}" - date: destination: "@timestamp" from_time_received: true sink: - opensearch: hosts: ["https://search-domain-endpoint.us-east-1.es.amazonaws.com"] index: "index_name" aws_sts_role_arn: "arn:aws:iam::{account-id}:role/pipeline-role" aws_region: "us-east-1" aws_sigv4: true

Puoi utilizzare un blueprint Amazon MSK preconfigurato per creare questa pipeline. Per ulteriori informazioni, consulta Utilizzo dei blueprint per creare una pipeline.

Fase 3: (Facoltativo) Usa il registro degli schemi AWS Glue

Quando usi OpenSearch Ingestion con Amazon MSK, puoi utilizzare il formato di dati AVRO per gli schemi ospitati nel registro degli schemi. AWS Glue Con lo AWS Glue Schema Registry, puoi scoprire, controllare ed evolvere centralmente gli schemi dei flussi di dati.

Per utilizzare questa opzione, abilita lo schema type nella configurazione della pipeline:

schema: type: "aws_glue"

Devi inoltre fornire i permessi AWS Glue di accesso in lettura nel tuo ruolo di pipeline. È possibile utilizzare la politica AWS gestita denominata. AWSGlueSchemaRegistryReadonlyAccess Inoltre, il registro deve trovarsi nella stessa Account AWS area geografica della pipeline di OpenSearch Ingestion.

Fase 4: (Facoltativo) Configurazione delle unità di calcolo consigliate (OCU) per la pipeline Amazon MSK

Ogni unità di elaborazione ha un consumatore per argomento. I broker bilanciano le partizioni tra questi consumatori per un determinato argomento. Tuttavia, quando il numero di partizioni è maggiore del numero di consumatori, Amazon MSK ospita più partizioni per ogni consumatore. OpenSearch Ingestion dispone della scalabilità automatica integrata per aumentare o ridurre in base all'utilizzo della CPU o al numero di record in sospeso nella pipeline.

Per prestazioni ottimali, distribuisci le partizioni su più unità di calcolo per l'elaborazione parallela. Se gli argomenti hanno un numero elevato di partizioni (ad esempio, più di 96, che è il numero massimo di OCU per pipeline), si consiglia di configurare una pipeline con 1—96 OCU. Questo perché verrà ridimensionato automaticamente in base alle esigenze. Se un argomento ha un numero basso di partizioni (ad esempio, meno di 96), mantieni l'unità di calcolo massima uguale al numero di partizioni.

Quando una pipeline ha più di un argomento, scegli l'argomento con il maggior numero di partizioni come riferimento per configurare il numero massimo di unità di calcolo. Aggiungendo un'altra pipeline con un nuovo set di OCU allo stesso argomento e allo stesso gruppo di consumatori, puoi scalare il throughput in modo quasi lineare.