Menggunakan pipeline OpenSearch Ingestion dengan Amazon Kinesis Data Streams - OpenSearch Layanan Amazon

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

Menggunakan pipeline OpenSearch Ingestion dengan Amazon Kinesis Data Streams

Anda dapat menggunakan pipeline OpenSearch Ingestion untuk mengalirkan data dari Amazon Kinesis Data Streams ke domain Layanan Amazon dan koleksi Tanpa Server OpenSearch . OpenSearch OpenSearch Ingestion mendukung konfigurasi jaringan publik dan pribadi untuk streaming data dari Amazon Kinesis Data Streams ke domain atau koleksi yang dikelola oleh Layanan atau Tanpa Server. OpenSearch OpenSearch

Konektivitas ke Amazon Kinesis Data Streams

Anda dapat menggunakan pipeline OpenSearch Ingestion untuk memigrasikan data dari Amazon Kinesis Data Streams dengan konfigurasi publik, yang berarti bahwa nama DNS domain dapat diselesaikan secara publik. Untuk melakukannya, siapkan pipeline OpenSearch Ingestion dengan Amazon Kinesis Data Streams sebagai sumber OpenSearch dan Layanan OpenSearch atau Tanpa Server sebagai tujuan. Ini memproses data streaming Anda dari kluster sumber yang dikelola sendiri ke domain atau AWS koleksi tujuan yang dikelola.

Prasyarat

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

  1. Buat aliran data Amazon Kinesis yang bertindak sebagai sumber. Aliran harus berisi data yang ingin Anda konsumsi ke dalam OpenSearch Layanan.

  2. Buat domain OpenSearch Layanan atau koleksi OpenSearch Tanpa Server tempat Anda ingin memigrasikan data. Untuk informasi selengkapnya, lihat Membuat domain OpenSearch Layanan dan Membuat koleksi.

  3. Siapkan otentikasi pada aliran data Amazon Kinesis Anda dengan. AWS Secrets Manager Aktifkan rotasi rahasia dengan mengikuti langkah-langkah di Putar AWS Secrets Manager rahasia.

  4. Lampirkan kebijakan berbasis sumber daya ke domain Anda atau kebijakan akses data ke koleksi Anda. Kebijakan akses ini memungkinkan OpenSearch Ingestion untuk menulis data dari klaster yang dikelola sendiri ke domain atau koleksi Anda.

    Contoh kebijakan akses domain berikut memungkinkan peran pipeline, yang Anda buat pada langkah berikutnya, untuk menulis data ke domain. Pastikan Anda memperbarui resource dengan ARN Anda sendiri.

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

    Untuk membuat peran IAM dengan izin yang benar untuk mengakses data tulis ke koleksi atau domain, lihat Izin yang diperlukan untuk domain dan Izin yang diperlukan untuk koleksi.

Langkah 1: Konfigurasikan peran pipeline

Setelah Anda menyiapkan prasyarat pipeline Amazon Kinesis Data Streams, konfigurasikan peran pipeline yang ingin Anda gunakan dalam konfigurasi pipeline, dan tambahkan izin untuk menulis ke OpenSearch domain Layanan atau koleksi Tanpa Server, serta izin OpenSearch untuk membaca rahasia dari Secrets Manager.

Izin berikut diperlukan untuk menulis ke bucket, domain, dan koleksi Amazon S3:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "allowReadFromStream", "Effect": "Allow", "Action": [ "kinesis:DescribeStream", "kinesis:DescribeStreamConsumer", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:ListStreams", "kinesis:ListStreamConsumers", "kinesis:RegisterStreamConsumer", "kinesis:SubscribeToShard" ], "Resource": [ "arn:aws:kinesis:{{region}}:{{account-id}}:stream/{{stream-name}}" ] } ] }

Jika enkripsi sisi server diaktifkan untuk aliran, kebijakan KMS berikut akan mendekripsi catatan aliran:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "allowDecryptionOfCustomManagedKey", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:{{region}}:{{account-id}}:key/{{key-id}}" } ] }

Agar pipeline dapat menulis data ke domain, domain harus memiliki kebijakan akses tingkat domain yang memungkinkan peran pipeline sts_role_arn untuk mengaksesnya. Contoh kebijakan akses domain berikut memungkinkan peran pipeline bernamapipeline-role, yang Anda buat pada langkah sebelumnya, untuk menulis data ke domain bernamaingestion-domain:

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

Langkah 2: Buat pipa

Anda kemudian dapat mengonfigurasi pipeline OpenSearch Ingestion yang menentukan Amazon Kinesis sebagai sumbernya. Atribut metadata yang tersedia adalah:

  • stream_name: nama aliran data Kinesis tempat rekaman itu dicerna.

  • partition_key: kunci partisi dari catatan aliran data Kinesis yang sedang dicerna.

  • sequence_number: nomor urut catatan aliran data Kinesis yang sedang dicerna.

  • sub_sequence_number: nomor sub urutan catatan aliran data Kinesis yang sedang dicerna.

Anda dapat menentukan beberapa domain OpenSearch Layanan sebagai tujuan untuk data Anda. Kemampuan ini memungkinkan routing bersyarat atau replikasi data yang masuk ke beberapa domain Layanan. OpenSearch

Anda juga dapat memigrasikan data dari Amazon Kinesis ke koleksi VPC Tanpa OpenSearch Server. Ada cetak biru yang tersedia di konsol OpenSearch Ingestion untuk membuat pipeline. Untuk membuat pipeline, Anda dapat menggunakan AWS-KinesisDataStreamsPipeline cetak biru berikut.

version: "2" kinesis_data_streams_pipeline: source: kinesis_data_streams: acknowledgments: true codec: newline: streams: - stream_name: "<stream name>" - stream_name: "<stream name>" aws: sts_role_arn: "<<arn:aws:iam::123456789012:role/Example-Role>>" region: "<<us-east-1>>" sink: - opensearch: hosts: [ "<<https://search-mydomain-1a2a3a4a5a6a7a8a9a0a9a8a7a.us-east-1.es.amazonaws.com>>" ] index: "index_${getMetadata(\"stream_name\")}" document_id: "${getMetadata(\"partition_key\")}" aws: sts_role_arn: "<<arn:aws:iam::123456789012:role/Example-Role>>" region: "<<us-east-1>>" s3: bucket: "<<your-dlq-bucket-name>>" region: "<<us-east-1>>" sts_role_arn: "<<arn:aws:iam::123456789012:role/Example-Role>>"

Anda dapat menggunakan cetak biru yang telah dikonfigurasi sebelumnya untuk membuat pipeline ini. Untuk informasi selengkapnya, lihat Menggunakan cetak biru untuk membuat pipeline. Anda juga dapat meninjau dokumentasi Opensearch opensource untuk opsi konfigurasi tambahan. Untuk mempelajari lebih lanjut, lihat opsi konfigurasi.

Konsistensi data

OpenSearch Ingestion mendukung end-to-end pengakuan untuk memastikan daya tahan data. Ketika pipeline membaca catatan aliran dari Kinesis, ia secara dinamis mendistribusikan pekerjaan membaca catatan aliran berdasarkan pecahan yang terkait dengan aliran. Pipeline akan secara otomatis memeriksa aliran pos ketika menerima pengakuan setelah menelan semua catatan dalam domain atau koleksi. OpenSearch Ini akan menghindari pemrosesan duplikat catatan aliran.

catatan

Jika Anda ingin membuat indeks berdasarkan nama aliran, Anda dapat menentukan indeks di bagian sink opensearch sebagai “index_$ {getMetadata (\”\”)}”. stream_name

(Opsional) Konfigurasikan unit komputasi yang direkomendasikan (OCUs) untuk pipeline Kinesis Data Streams

Minimal 2 unit komputasi (OCU) direkomendasikan saat membuat pipeline sumber Kinesis. Ini akan memungkinkan catatan aliran data Kinesis per pemrosesan pecahan didistribusikan secara merata di antara unit komputasi sehingga memastikan mekansim latensi rendah untuk konsumsi catatan aliran.

Pipa sumber aliran OpenSearchKinesis data juga dapat dikonfigurasi untuk menyerap catatan aliran dari lebih dari satu aliran. Disarankan untuk menambahkan unit komputasi tambahan per aliran baru.

catatan

Jika pipeline Anda memiliki lebih banyak unit komputasi (OCU) daripada pecahan dalam kumpulan aliran yang dikonfigurasi dalam pipeline, beberapa unit komputasi dapat diam tanpa memproses catatan aliran apa pun per pecahan.