

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

# Menggunakan pipa Ing OpenSearch estion dengan Amazon Managed Streaming for Apache Kafka
<a name="configure-client-msk"></a>

Anda dapat menggunakan plugin [ Kafka ](https://opensearch.org/docs/latest/data-prepper/pipelines/configuration/sources/kafka/) untuk menyerap data dari [ Amazon Managed Streaming untuk Apache Kafka ](https://docs.aws.amazon.com/msk/latest/developerguide/) (Amazon MSK) ke dalam pipeline Ingestion Anda. OpenSearch 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. Anda dapat menyerap data dari cluster Amazon MSK dan Amazon MSK Serverless. Satu-satunya perbedaan antara kedua proses adalah langkah-langkah prasyarat yang harus Anda ambil sebelum Anda mengatur pipeline Anda.

**Topics**
+ [Prasyarat Amazon MSK yang disediakan](#msk-prereqs)
+ [Prasyarat tanpa server Amazon MSK](#msk-serverless-prereqs)
+ [Langkah 1: Konfigurasikan peran pipeline](#msk-pipeline-role)
+ [Langkah 2: Buat pipa](#msk-pipeline)
+ [Langkah 3: (Opsional) Gunakan AWS Glue Registri Skema](#msk-glue)
+ [Langkah 4: (Opsional) Konfigurasikan unit komputasi yang direkomendasikan (OCU) untuk pipeline Amazon MSK](#msk-ocu)

## Prasyarat Amazon MSK yang disediakan
<a name="msk-prereqs"></a>

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

1. Buat cluster yang disediakan Amazon MSK dengan mengikuti langkah-langkah dalam [ Membuat cluster di Panduan Pengembang * Amazon *](https://docs.aws.amazon.com/msk/latest/developerguide/msk-create-cluster.html#create-cluster-console) Managed Streaming untuk Apache Kafka. Untuk jenis ** Broker**, pilih opsi apa pun kecuali untuk `t3` jenis, karena ini tidak didukung oleh Inges OpenSearch tion.

1. Setelah cluster memiliki ** status ** Aktif, ikuti langkah-langkah di [ Aktifkan konektivitas multi-VPC. ](https://docs.aws.amazon.com/msk/latest/developerguide/aws-access-mult-vpc.html#mvpc-cluster-owner-action-turn-on)

1. Ikuti langkah-langkah dalam Mel [ ampirkan kebijakan cluster ke cluster MSK ](https://docs.aws.amazon.com/msk/latest/developerguide/aws-access-mult-vpc.html#mvpc-cluster-owner-action-policy) untuk melampirkan salah satu kebijakan berikut, tergantung pada apakah cluster dan pipeline Anda berada di dalam yang sama Akun AWS. Kebijakan ini memungkinkan Ing OpenSearch estion untuk membuat AWS PrivateLink koneksi ke cluster Amazon MSK Anda dan membaca data dari topik Kafka. Pastikan Anda memperbarui `resource` dengan ARN Anda sendiri. 

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

------
#### [ JSON ]

****  

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

------

   Jika cluster Amazon MSK Anda berbeda Akun AWS dari pipeline Anda, lampirkan kebijakan berikut sebagai gantinya. Perhatikan bahwa akses lintas akun hanya dimungkinkan dengan cluster Amazon MSK yang disediakan dan bukan cluster Tanpa Server Amazon MSK. ARN untuk AWS `principal` harus menjadi ARN untuk peran pipeline yang sama yang Anda berikan ke konfigurasi pipeline Anda:

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": "osis.amazonaws.com"
         },
         "Action": [
           "kafka:CreateVpcConnection",
           "kafka:DescribeClusterV2"
         ],
         "Resource": "arn:aws:kafka:{{us-east-1}}:{{111122223333}}: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}}:{{111122223333}}:cluster/{{cluster-name}}/{{cluster-id}}"
       },
       {
         "Effect": "Allow",
         "Principal": {
           "AWS": "arn:aws:iam::{{444455556666}}:role/{{pipeline-role}}"
         },
         "Action": [
           "kafka-cluster:*",
           "kafka:*"
         ],
         "Resource": [
           "arn:aws:kafka:us-east-1:{{111122223333}}:cluster/{{cluster-name}}/{{cluster-id}}",
           "arn:aws:kafka:us-east-1:{{111122223333}}:topic/{{cluster-name}}/{{cluster-id}}/*",
           "arn:aws:kafka:us-east-1:{{111122223333}}:group/{{cluster-name}}/*"
         ]
       }
     ]
   }
   ```

------

1. Buat topik Kafka dengan mengikuti langkah-langkah di [ Buat topik](https://docs.aws.amazon.com/msk/latest/developerguide/create-topic.html). Pastikan itu `{{BootstrapServerString}}` adalah salah satu URL bootstrap titik akhir pribadi (Single-VPC). Nilai untuk `--replication-factor` harus `2` atau`3`, berdasarkan jumlah zona yang dimiliki cluster Amazon MSK Anda. Nilai untuk `--partitions` harus setidaknya`10`.

1. Menghasilkan dan mengkonsumsi data dengan mengikuti langkah-langkah dalam Mengh [ asilkan dan mengkonsumsi data](https://docs.aws.amazon.com/msk/latest/developerguide/produce-consume.html). Sekali lagi, pastikan itu `{{BootstrapServerString}}` adalah salah satu URL bootstrap endpoint pribadi (Single-VPC) Anda.

## Prasyarat tanpa server Amazon MSK
<a name="msk-serverless-prereqs"></a>

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

1. Buat cluster Tanpa Server Amazon MSK dengan mengikuti langkah-langkah di [ Membuat cluster ](https://docs.aws.amazon.com/msk/latest/developerguide/create-serverless-cluster.html#) Tanpa Server MSK di Panduan Pengembang * Amazon Managed Streaming untuk Apache Kafka. *

1. Setelah cluster memiliki ** status ** Aktif, ikuti langkah-langkah di Lamp [ irkan kebijakan cluster ke cluster MSK ](https://docs.aws.amazon.com/msk/latest/developerguide/aws-access-mult-vpc.html#mvpc-cluster-owner-action-policy) untuk melampirkan kebijakan berikut. Pastikan Anda memperbarui `resource` dengan ARN Anda sendiri. 

------
#### [ JSON ]

****  

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

------

   Kebijakan ini memungkinkan Ing OpenSearch estion untuk membuat AWS PrivateLink koneksi ke cluster Amazon MSK Serverless Anda dan membaca data dari topik Kafka. Kebijakan ini berlaku jika cluster dan pipeline Anda berada dalam kondisi yang sama Akun AWS, yang harus benar karena Amazon MSK Serverless tidak mendukung akses lintas akun.

1. Buat topik Kafka dengan mengikuti langkah-langkah di [ Buat topik](https://docs.aws.amazon.com/msk/latest/developerguide/msk-serverless-create-topic.html). Pastikan itu `{{BootstrapServerString}}` adalah salah satu URL bootstrap IAM Simple Authentication and Security Layer (SASL) Anda. Nilai untuk `--replication-factor` harus `2` atau`3`, berdasarkan jumlah zona yang dimiliki cluster Amazon MSK Serverless Anda. Nilai untuk `--partitions` harus setidaknya`10`.

1. Menghasilkan dan mengkonsumsi data dengan mengikuti langkah-langkah dalam Mengh [ asilkan dan mengkonsumsi data](https://docs.aws.amazon.com/msk/latest/developerguide/msk-serverless-produce-consume.html). Sekali lagi, pastikan itu `{{BootstrapServerString}}` adalah salah satu URL bootstrap IAM Simple Authentication and Security Layer (SASL) Anda.

## Langkah 1: Konfigurasikan peran pipeline
<a name="msk-pipeline-role"></a>

Setelah menyiapkan cluster Amazon MSK atau tanpa server, tambahkan izin Kafka berikut dalam peran pipeline yang ingin Anda gunakan dalam konfigurasi pipeline Anda:

------
#### [ JSON ]

****  

```
{
    "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}}:{{111122223333}}:cluster/{{cluster-name}}/{{cluster-id}}"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "kafka-cluster:*Topic*",
                "kafka-cluster:ReadData"
            ],
            "Resource": [
                "arn:aws:kafka:{{us-east-1}}:{{111122223333}}:topic/{{cluster-name}}/{{cluster-id}}/{{topic-name}}"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "kafka-cluster:AlterGroup",
                "kafka-cluster:DescribeGroup"
            ],
            "Resource": [
                "arn:aws:kafka:{{us-east-1}}:{{111122223333}}:group/{{cluster-name}}/*"
            ]
        }
    ]
}
```

------

## Langkah 2: Buat pipa
<a name="msk-pipeline"></a>

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

```
version: "2"
log-pipeline:
  source:
    kafka:
      acknowledgements: true
      topics:
      - name: "{{topic-name}}"
        group_id: "{{grouplambd-id}}"
      aws:
        msk:
          arn: "arn:aws:kafka:{{region}}:{{account-id}}:cluster/{{cluster-name}}/{{cluster-id}}"
        region: "{{us-west-2}}"
  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_region: "{{region}}"
      aws_sigv4: true
```

Anda dapat menggunakan cetak biru Amazon MSK yang telah dikonfigurasi sebelumnya untuk membuat pipeline ini. Untuk informasi selengkapnya, lihat [Bekerja dengan cetak biru](pipeline-blueprint.md).

## Langkah 3: (Opsional) Gunakan AWS Glue Registri Skema
<a name="msk-glue"></a>

Saat Anda menggunakan Ing OpenSearch estion dengan Amazon MSK, Anda dapat menggunakan format data AVRO untuk skema yang dihosting di Registry Schema AWS Glue . Dengan S [AWS Glue chema Registry](https://docs.aws.amazon.com/glue/latest/dg/schema-registry.html), 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 memberikan AWS Glue izin akses baca dalam peran pipeline Anda. Anda dapat menggunakan kebijakan ter AWS kelola yang disebut [ AWSGlueSchemaRegistryReadonlyAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSGlueSchemaRegistryReadonlyAccess.html). Selain itu, registri Anda harus berada di Wilayah yang sama Akun AWS dengan pipeline Ing OpenSearch estion Anda.

## Langkah 4: (Opsional) Konfigurasikan unit komputasi yang direkomendasikan (OCU) untuk pipeline Amazon MSK
<a name="msk-ocu"></a>

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 menghosting beberapa partisi pada setiap konsumen. OpenSearch Ingestion memiliki penskalaan otomatis bawaan untuk meningkatkan atau menurunkan skala 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 OCus maksimum per pipeline), kami sarankan Anda mengonfigurasi pipeline dengan 1—96 OCU. Ini karena secara otomatis akan menskalakan sesuai kebutuhan. Jika topik memiliki jumlah partisi yang rendah (misalnya, kurang dari 96), pertahankan unit komputasi maksimum sama dengan jumlah partisi. 

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