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
Topik
MSKPrasyarat Amazon
Sebelum Anda membuat pipeline OpenSearch Ingestion, lakukan langkah-langkah berikut:
-
Buat klaster yang MSK disediakan Amazon dengan mengikuti langkah-langkah dalam Membuat klaster di Amazon Managed Streaming for Apache Kafka Developer Guide. Untuk jenis Broker, pilih opsi apa pun kecuali untuk
t3
jenis, karena ini tidak didukung oleh OpenSearch Ingestion. -
Setelah klaster memiliki status Aktif, ikuti langkah-langkah di Aktifkan VPC multi-konektivitas.
-
Ikuti langkah-langkah di Lampirkan kebijakan klaster ke MSK klaster 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 MSK klaster Amazon Anda dan membaca data dari topik Kafka. Pastikan Anda memperbarui
resource
dengan milik Anda sendiriARN.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: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
" } ] }Jika MSK klaster Amazon Anda berbeda Akun AWS dari pipeline Anda, lampirkan kebijakan berikut sebagai gantinya. Perhatikan bahwa akses lintas akun hanya dimungkinkan dengan kluster Amazon yang disediakan dan bukan kluster MSK Amazon Tanpa Server. MSK ARNUntuk itu AWS
principal
harus ARN untuk peran pipeline yang sama yang Anda berikan ke konfigurasi pipleine YAML Anda:{ "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
/*" ] } ] } -
Buat topik Kafka dengan mengikuti langkah-langkah di Buat topik. Pastikan itu
adalah salah satu bootstrap URLs endpoint pribadi (single-VPC). Nilai untukBootstrapServerString
--replication-factor
harus2
atau3
, berdasarkan jumlah zona yang dimiliki MSK kluster Amazon Anda. Nilai untuk setidaknya--partitions
harus10
. -
Menghasilkan dan mengkonsumsi data dengan mengikuti langkah-langkah dalam Menghasilkan dan mengkonsumsi data. Sekali lagi, pastikan itu
adalah salah satu bootstrap URLs endpoint pribadi Anda (tunggal-VPC).BootstrapServerString
MSKPrasyarat Amazon Tanpa Server
Sebelum Anda membuat pipeline OpenSearch Ingestion, lakukan langkah-langkah berikut:
-
Buat klaster Amazon MSK Tanpa Server dengan mengikuti langkah-langkah di Buat klaster MSK Tanpa Server di Panduan Pengembang Amazon Managed Streaming for Apache Kafka.
-
Setelah klaster memiliki status Aktif, ikuti langkah-langkah di Lampirkan kebijakan klaster ke MSK klaster untuk melampirkan kebijakan berikut. Pastikan Anda memperbarui
resource
dengan milik Anda sendiriARN.{ "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
" } ] }Kebijakan ini memungkinkan OpenSearch Ingestion untuk membuat AWS PrivateLink sambungan ke klaster Amazon MSK Tanpa Server dan membaca data dari topik Kafka. Kebijakan ini berlaku jika klaster dan pipeline Anda berada dalam kondisi yang sama Akun AWS, yang harus benar karena Amazon MSK Tanpa Server tidak mendukung akses lintas akun.
-
Buat topik Kafka dengan mengikuti langkah-langkah di Buat topik. Pastikan itu
adalah salah satu IAM bootstrap URLs Simple Authentication and Security Layer (SASL) Anda. Nilai untukBootstrapServerString
--replication-factor
harus2
atau3
, berdasarkan jumlah zona yang dimiliki kluster Amazon MSK Tanpa Server Anda. Nilai untuk setidaknya--partitions
harus10
. -
Menghasilkan dan mengkonsumsi data dengan mengikuti langkah-langkah dalam Menghasilkan dan mengkonsumsi data. Sekali lagi, pastikan itu
adalah salah satu IAM bootstrap URLs Simple Authentication and Security Layer (SASL) Anda.BootstrapServerString
Langkah 1: Konfigurasikan peran pipeline
Setelah Anda menyiapkan MSK kluster Amazon atau tanpa server, tambahkan izin Kafka berikut dalam peran pipeline yang ingin Anda gunakan dalam konfigurasi 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
/*" ] } ] }
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
" 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
Anda dapat menggunakan MSK cetak biru Amazon yang telah dikonfigurasi sebelumnya 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 AmazonMSK, Anda dapat menggunakan format AVRO data 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 disarankan (OCUs) untuk pipeline Amazon MSK
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 CPU penggunaan 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 maksimum OCUs per pipeline), kami sarankan Anda mengonfigurasi pipeline dengan OCUs 1-96. 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 baru OCUs ke topik dan grup konsumen yang sama, Anda dapat menskalakan throughput hampir secara linier.