Menggunakan pipa OpenSearch Ingestion dengan Amazon Managed Streaming for Apache Kafka - OpenSearch Layanan Amazon

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menggunakan pipa OpenSearch Ingestion dengan Amazon Managed Streaming for Apache Kafka

Anda dapat menggunakan plugin Kafka untuk menyerap data dari Amazon Managed Streaming for Apache Kafka (Amazon OpenSearch MSK) ke dalam pipeline Ingestion Anda. Dengan Amazon MSK, Anda dapat membangun dan menjalankan aplikasi yang menggunakan Apache Kafka untuk memproses data streaming. OpenSearch Penggunaan konsumsi AWS PrivateLink untuk terhubung ke Amazon MSK.

Prasyarat

Sebelum Anda membuat pipeline OpenSearch Ingestion, lakukan langkah-langkah berikut:

  1. Buat klaster MSK Amazon dengan mengikuti langkah-langkah dalam Membuat klaster di Panduan Pengembang Amazon Managed Streaming for Apache Kafka.

    • Untuk tipe Cluster, pilih Provisioned. OpenSearch Ingestion tidak mendukung kluster MSK Tanpa Server.

  2. Setelah cluster memiliki status Aktif, ikuti langkah-langkah di Aktifkan konektivitas multi-VPC.

  3. Ikuti langkah-langkah di Lampirkan kebijakan klaster ke klaster MSK untuk melampirkan salah satu kebijakan berikut, tergantung pada apakah klaster dan pipeline Anda berada dalam kondisi yang sama Akun AWS. Kebijakan ini memungkinkan OpenSearch Ingestion untuk membuat AWS PrivateLink sambungan ke klaster MSK Amazon Anda dan membaca data dari topik Kafka. Pastikan Anda memperbarui resource dengan ARN Anda sendiri.

    Kebijakan berikut berlaku jika klaster dan pipeline Anda berada dalam kondisi yang sama Akun AWS:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "osis.amazonaws.com" }, "Action": [ "kafka:CreateVpcConnection", "kafka:DescribeCluster", "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:DescribeCluster", "kafka:DescribeClusterV2" ], "Resource": "arn:aws:kafka:us-east-1:{account-id}:cluster/cluster-name/cluster-id" } ] }

    Jika klaster MSK Anda berbeda Akun AWS dari pipeline Anda, lampirkan kebijakan berikut sebagai gantinya. ARN untuk ARN AWS principal harus ARN untuk peran pipeline yang sama yang Anda berikan ke konfigurasi YAMM pipleine Anda:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "osis.amazonaws.com" }, "Action": [ "kafka:CreateVpcConnection", "kafka:DescribeCluster", "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:DescribeCluster", "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. Buat topik Kafka dengan mengikuti langkah-langkah di Buat topik. Pastikan itu BootstrapServerString adalah salah satu URL bootstrap titik akhir pribadi (Single-vPC). Nilai untuk --replication-factor harus 2 atau3, berdasarkan jumlah zona yang dimiliki kluster MSK Anda. Nilai untuk setidaknya --partitions harus10.

  5. Menghasilkan dan mengkonsumsi data dengan mengikuti langkah-langkah dalam Menghasilkan dan mengkonsumsi data. Sekali lagi, pastikan itu BootstrapServerString adalah salah satu URL bootstrap titik akhir pribadi (Single-vPC) Anda.

Langkah 1: Konfigurasikan peran pipeline

Setelah klaster MSK Anda disiapkan, tambahkan izin Kafka berikut dalam peran pipeline yang ingin Anda gunakan dalam konfigurasi pipeline Anda:

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

Langkah 2: Buat pipa

Anda kemudian dapat mengonfigurasi pipeline OpenSearch Ingestion seperti berikut ini, yang menentukan Kafka sebagai sumbernya:

version: "2" log-pipeline: source: kafka: acknowledgements: true topics: - name: "topic-name" group_id: "group-id" serde_format: "json"/"plaintext" aws: msk: arn: "arn:aws:iam::{account-id}:role/cluster-role" region: "us-west-2" sts_role_arn: "arn:aws:iam::{account-id}:role/pipeline-role" schema: # Optional type: "aws_glue" processor: - grok: match: log: - "%{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

Anda dapat menggunakan cetak biru AWS-MSKPipeline untuk membuat pipeline ini. Untuk informasi selengkapnya, lihat Menggunakan cetak biru untuk membuat pipeline.

Langkah 3: (Opsional) Gunakan Registri AWS Glue Skema

Saat Anda menggunakan OpenSearch Ingestion dengan Amazon MSK, Anda dapat menggunakan format data AVRO untuk skema yang dihosting di Registri Skema. AWS Glue Dengan AWS Glue Schema Registry, Anda dapat menemukan, mengontrol, dan mengembangkan skema aliran data secara terpusat.

Untuk menggunakan opsi ini, aktifkan skema type dalam konfigurasi pipeline Anda:

schema: type: "aws_glue"

Anda juga harus AWS Glue memberikan izin akses baca dalam peran pipeline Anda. Anda dapat menggunakan kebijakan AWS terkelola yang disebut AWSGlueSchemaRegistryReadonlyAccess. Selain itu, registri Anda harus sama Akun AWS dan Region sebagai pipeline OpenSearch Ingestion Anda.

Langkah 4: (Opsional) Konfigurasikan unit komputasi yang direkomendasikan (OCU) untuk pipeline MSK Amazon

Setiap unit komputasi memiliki satu konsumen per topik. Pialang menyeimbangkan partisi di antara konsumen ini untuk topik tertentu. Namun, ketika jumlah partisi lebih besar dari jumlah konsumen, Amazon MSK menampung beberapa partisi pada setiap konsumen. OpenSearch Ingestion memiliki penskalaan otomatis bawaan untuk meningkatkan atau menurunkan berdasarkan penggunaan CPU atau jumlah catatan yang tertunda dalam pipeline.

Untuk kinerja optimal, distribusikan partisi Anda di banyak unit komputasi untuk pemrosesan paralel. Jika topik memiliki sejumlah besar partisi (misalnya, lebih dari 96, yang merupakan OCU maksimum per pipeline), kami sarankan Anda mengonfigurasi pipeline dengan 1-96 OCU. Ini karena secara otomatis akan menskalakan sesuai kebutuhan. Jika suatu topik memiliki jumlah partisi yang rendah (misalnya, kurang dari 96), pertahankan unit komputasi maksimum sama dengan jumlah partisi.

Jika pipeline memiliki lebih dari satu topik, pilih topik dengan jumlah partisi tertinggi sebagai referensi untuk mengonfigurasi unit komputasi maksimum. Dengan menambahkan pipeline lain dengan kumpulan OCU baru ke topik dan grup konsumen yang sama, Anda dapat menskalakan throughput hampir secara linier.