Menggunakan pipa OpenSearch Ingestion dengan 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 Kafka

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

Konektivitas ke cluster Kafka publik

Anda dapat menggunakan pipeline OpenSearch Ingestion untuk memigrasikan data dari cluster Kafka yang dikelola sendiri dengan konfigurasi publik, yang berarti bahwa nama DNS domain dapat diselesaikan secara publik. Untuk melakukannya, siapkan pipa OpenSearch Ingestion dengan Kafka yang dikelola sendiri sebagai sumber dan OpenSearch Layanan atau Tanpa OpenSearch 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 cluster Kafka yang dikelola sendiri dengan konfigurasi jaringan publik. Cluster harus berisi data yang ingin Anda konsumsi ke dalam OpenSearch Service.

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

  3. Siapkan autentikasi pada klaster yang dikelola sendiri 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 Kafka, konfigurasikan peran pipeline yang ingin Anda gunakan dalam konfigurasi pipeline, dan tambahkan izin untuk menulis ke domain OpenSearch Layanan atau koleksi OpenSearch Tanpa Server, serta izin untuk membaca rahasia dari Secrets Manager.

Langkah 2: Buat pipa

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

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 cluster Confluent Kafka sumber ke koleksi VPC Tanpa Server OpenSearch . Pastikan Anda menyediakan kebijakan akses jaringan dalam konfigurasi pipeline. Anda dapat menggunakan registri skema Confluent untuk menentukan skema Confluent.

version: "2" kafka-pipeline: source: kafka: encryption: type: "ssl" topics: - name: "topic-name" group_id: "group-id" bootstrap_servers: - "bootstrap-server.us-west-2.aws.private.confluent.cloud:9092" authentication: sasl: plain: username: ${aws_secrets:confluent-kafka-secret:username} password: ${aws_secrets:confluent-kafka-secret:password} schema: type: confluent registry_url: https://my-registry.us-west-2.aws.confluent.cloud api_key: "${{aws_secrets:schema-secret:schema_registry_api_key}}" api_secret: "${{aws_secrets:schema-secret:schema_registry_api_secret}}" basic_auth_credentials_source: "USER_INFO" sink: - opensearch: hosts: ["https://search-mydomain.us-west-2.es.amazonaws.com"] aws: sts_role_arn: "arn:aws:iam::{account-id}:role/pipeline-role" region: "us-west-2" index: "confluent-index" extension: aws: secrets: confluent-kafka-secret: secret_id: "my-kafka-secret" region: "us-west-2" sts_role_arn: "arn:aws:iam::{account-id}:role/pipeline-role" schema-secret: secret_id: "my-self-managed-kafka-schema" region: "us-west-2" sts_role_arn: "arn:aws:iam::{account-id}:role/pipeline-role"

Anda dapat menggunakan cetak biru yang telah dikonfigurasi sebelumnya untuk membuat pipeline ini. Untuk informasi selengkapnya, lihat Menggunakan cetak biru untuk membuat pipeline.

Konektivitas ke cluster Kafka dalam VPC

Anda juga dapat menggunakan pipeline OpenSearch Ingestion untuk memigrasikan data dari cluster Kafka yang dikelola sendiri yang berjalan di VPC. Untuk melakukannya, siapkan pipa OpenSearch Ingestion dengan Kafka yang dikelola sendiri sebagai sumber dan OpenSearch Layanan atau Tanpa OpenSearch 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 cluster Kafka yang dikelola sendiri dengan konfigurasi jaringan VPC yang berisi data yang ingin Anda konsumsi ke dalam Layanan. OpenSearch

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

  3. Siapkan autentikasi pada klaster yang dikelola sendiri dengan. AWS Secrets Manager Aktifkan rotasi rahasia dengan mengikuti langkah-langkah di Putar AWS Secrets Manager rahasia.

  4. Dapatkan ID VPC yang memiliki akses ke Kafka yang dikelola sendiri. Pilih VPC CIDR yang akan digunakan oleh Ingestion. OpenSearch

    catatan

    Jika Anda menggunakan AWS Management Console untuk membuat pipeline, Anda juga harus melampirkan pipeline OpenSearch Ingestion Anda ke VPC Anda untuk menggunakan Kafka yang dikelola sendiri. Untuk melakukannya, cari bagian Konfigurasi jaringan, pilih kotak centang Lampirkan ke VPC, dan pilih CIDR Anda dari salah satu opsi default yang disediakan, atau pilih sendiri. Anda dapat menggunakan CIDR apa pun dari ruang alamat pribadi seperti yang didefinisikan dalam Praktik Terkini Terbaik RFC 1918.

    Untuk menyediakan CIDR khusus, pilih Lainnya dari menu tarik-turun. Untuk menghindari tabrakan dalam alamat IP antara OpenSearch Ingestion dan self-managed OpenSearch, pastikan bahwa OpenSearch VPC CIDR yang dikelola sendiri berbeda dari CIDR untuk Ingestion. OpenSearch

  5. 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 prasyarat pipeline disiapkan, konfigurasikan peran pipeline yang ingin Anda gunakan dalam konfigurasi pipeline, dan tambahkan izin berikut dalam peran:

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

Anda harus memberikan EC2 izin Amazon di atas pada peran IAM yang Anda gunakan untuk membuat pipeline OpenSearch Ingestion karena pipeline menggunakan izin ini untuk membuat dan menghapus antarmuka jaringan di VPC Anda. Pipeline hanya dapat mengakses cluster Kafka melalui antarmuka jaringan ini.

Langkah 2: Buat pipa

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

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 cluster Confluent Kafka sumber ke koleksi VPC Tanpa Server OpenSearch . Pastikan Anda menyediakan kebijakan akses jaringan dalam konfigurasi pipeline. Anda dapat menggunakan registri skema Confluent untuk menentukan skema Confluent.

version: "2" kafka-pipeline: source: kafka: encryption: type: "ssl" topics: - name: "topic-name" group_id: "group-id" bootstrap_servers: - "bootstrap-server.us-west-2.aws.private.confluent.cloud:9092" authentication: sasl: plain: username: ${aws_secrets:confluent-kafka-secret:username} password: ${aws_secrets:confluent-kafka-secret:password} schema: type: confluent registry_url: https://my-registry.us-west-2.aws.confluent.cloud api_key: "${{aws_secrets:schema-secret:schema_registry_api_key}}" api_secret: "${{aws_secrets:schema-secret:schema_registry_api_secret}}" basic_auth_credentials_source: "USER_INFO" sink: - opensearch: hosts: ["https://search-mydomain.us-west-2.es.amazonaws.com"] aws: sts_role_arn: "arn:aws:iam::{account-id}:role/pipeline-role" region: "us-west-2" index: "confluent-index" extension: aws: secrets: confluent-kafka-secret: secret_id: "my-kafka-secret" region: "us-west-2" sts_role_arn: "arn:aws:iam::{account-id}:role/pipeline-role" schema-secret: secret_id: "my-self-managed-kafka-schema" region: "us-west-2" sts_role_arn: "arn:aws:iam::{account-id}:role/pipeline-role"

Anda dapat menggunakan cetak biru yang telah dikonfigurasi sebelumnya untuk membuat pipeline ini. Untuk informasi selengkapnya, lihat Menggunakan cetak biru untuk membuat pipeline.