컨플루언트 클라우드 OpenSearch Kafka와 함께 통합 파이프라인 사용 - 아마존 OpenSearch 서비스

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

컨플루언트 클라우드 OpenSearch Kafka와 함께 통합 파이프라인 사용

통합 파이프라인을 사용하여 Confluent Cloud Kafka 클러스터에서 OpenSearch Amazon 서비스 도메인 및 서버리스 OpenSearch 컬렉션으로 데이터를 스트리밍할 수 있습니다. OpenSearch OpenSearch Ingestion은 Confluent Cloud Kafka 클러스터에서 서비스 또는 서버리스에서 관리하는 도메인 또는 컬렉션으로 데이터를 스트리밍하기 위한 퍼블릭 및 프라이빗 네트워크 구성을 모두 지원합니다. OpenSearch OpenSearch

Confluent Cloud 퍼블릭 Kafka 클러스터에 대한 연결

OpenSearch 통합 파이프라인을 사용하여 Confluent Cloud Kafka 클러스터의 데이터를 퍼블릭 구성으로 마이그레이션할 수 있습니다. 즉, 도메인 이름을 공개적으로 확인할 수 있습니다. DNS 이렇게 하려면 Confluent Cloud 퍼블릭 Kafka OpenSearch 클러스터를 소스로, 서비스 또는 서버리스를 대상으로 하는 통합 파이프라인을 설정하세요. OpenSearch OpenSearch 이렇게 하면 자체 관리형 소스 클러스터에서 관리되는 대상 도메인 또는 컬렉션으로의 스트리밍 데이터가 처리됩니다. AWS

사전 조건

OpenSearch 통합 파이프라인을 생성하기 전에 다음 단계를 수행하십시오.

  1. 소스 역할을 하는 Confluent Cloud Kafka 클러스터 클러스터를 생성하세요. 클러스터에는 Service로 수집하려는 데이터가 포함되어야 합니다. OpenSearch

  2. 데이터를 마이그레이션하려는 OpenSearch 서비스 도메인 또는 OpenSearch 서버리스 컬렉션을 생성하세요. 자세한 내용은 OpenSearch 서비스 도메인 만들기 및 컬렉션 만들기를 참조하십시오.

  3. 를 사용하여 Confluent Cloud Kafka 클러스터에 인증을 설정하십시오. AWS Secrets Manager암호 교대의 단계에 따라 비밀 회전을 활성화하세요. AWS Secrets Manager

  4. 도메인에 리소스 기반 정책을 연결하거나 컬렉션에 데이터 액세스 정책을 연결하세요. 이러한 액세스 정책을 통해 OpenSearch Ingestion은 자체 관리형 클러스터의 데이터를 도메인이나 컬렉션에 쓸 수 있습니다.

    다음 샘플 도메인 액세스 정책은 다음 단계에서 생성하는 파이프라인 역할이 도메인에 데이터를 쓸 수 있도록 허용합니다. 직접 업데이트해야 ARN 합니다. resource

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

    컬렉션 또는 도메인에 대한 쓰기 데이터에 액세스할 수 있는 올바른 권한이 있는 IAM 역할을 만들려면 도메인에 필요한 권한컬렉션에 필요한 권한을 참조하십시오.

1단계: 파이프라인 역할 구성

Confluent Cloud Kafka 클러스터 파이프라인 사전 요구 사항을 설정한 후, 파이프라인 구성에서 사용할 파이프라인 역할을 구성하고, OpenSearch 서비스 도메인 또는 OpenSearch 서버리스 컬렉션에 쓸 수 있는 권한과 Secrets Manager에서 암호를 읽을 수 있는 권한을 추가합니다.

네트워크 인터페이스를 관리하려면 다음 권한이 필요합니다.

{ "Version": "2012-10-17", "Statement": [ { "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" } } } ] }

다음은 AWS Secrets Manager 서비스에서 비밀을 읽는 데 필요한 권한입니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "SecretsManagerReadAccess", "Effect": "Allow", "Action": ["secretsmanager:GetSecretValue"], "Resource": ["arn:aws:secretsmanager:<region:<account-id>:secret:<,secret-name>"] } ] }

Amazon OpenSearch 서비스 도메인에 글을 쓰려면 다음 권한이 필요합니다.

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

2단계: 파이프라인 생성

그런 다음 Confluent Cloud Kafka를 소스로 지정하는 다음과 같은 OpenSearch 통합 파이프라인을 구성할 수 있습니다.

여러 OpenSearch 서비스 도메인을 데이터 대상으로 지정할 수 있습니다. 이 기능을 사용하면 들어오는 데이터를 여러 OpenSearch 서비스 도메인으로 조건부 라우팅하거나 복제할 수 있습니다.

소스 Confluent Kafka 클러스터의 데이터를 서버리스 컬렉션으로 마이그레이션할 수도 있습니다. OpenSearch VPC 파이프라인 구성 내에서 네트워크 액세스 정책을 제공해야 합니다. Confluent 스키마 레지스트리를 사용하여 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"

사전 구성된 블루프린트를 사용하여 이 파이프라인을 생성할 수 있습니다. 자세한 내용은 청사진을 사용하여 파이프라인 생성 단원을 참조하십시오.

Confluent Cloud Kafka 클러스터에 대한 연결 VPC

또한 OpenSearch 수집 파이프라인을 사용하여 a에서 실행되는 Confluent Cloud Kafka 클러스터에서 데이터를 마이그레이션할 수 있습니다. VPC 이렇게 하려면 Confluent Cloud Kafka OpenSearch 클러스터를 소스로 사용하고 서비스 또는 서버리스를 대상으로 하는 통합 파이프라인을 설정해야 합니다. OpenSearch OpenSearch 이렇게 하면 Confluent Cloud Kafka 소스 클러스터에서 관리되는 대상 도메인 또는 컬렉션으로의 스트리밍 데이터가 처리됩니다. AWS

OpenSearch 인제션은 Confluent에서 지원되는 모든 네트워크 모드로 구성된 Confluent Cloud Kafka 클러스터를 지원합니다. Ingestion에서는 다음과 같은 네트워크 구성 모드가 소스로 지원됩니다. OpenSearch

  • AWS VPC피어링

  • AWS PrivateLink 전용 클러스터용

  • AWS PrivateLink 엔터프라이즈 클러스터용

  • AWS Transit Gateway

사전 조건

OpenSearch 통합 파이프라인을 생성하기 전에 다음 단계를 수행하십시오.

  1. 서비스에 인제스트하려는 데이터가 포함된 VPC 네트워크 구성을 사용하여 Confluent Cloud Kafka 클러스터를 생성하세요. OpenSearch

  2. 데이터를 마이그레이션하려는 OpenSearch 서비스 도메인 또는 OpenSearch 서버리스 컬렉션을 생성하세요. 자세한 내용은 OpenSearch 서비스 도메인 만들기 및 컬렉션 만들기를 참조하십시오.

  3. 를 사용하여 Confluent Cloud Kafka 클러스터에 인증을 설정하십시오. AWS Secrets Manager암호 교대의 단계에 따라 비밀 회전을 활성화하세요. AWS Secrets Manager

  4. 자체 관리형 Kafka에 액세스할 수 VPC 있는 사용자의 ID를 확보하세요. 인제스팅에서 사용할 버전을 VPC CIDR 선택하세요. OpenSearch

    참고

    를 사용하여 파이프라인을 생성하는 경우 AWS Management Console 자체 관리형 Kafka를 사용하려면 OpenSearch 인제션 파이프라인도 파이프라인을 파이프라인에 VPC 연결해야 합니다. 이렇게 하려면 네트워크 구성 섹션을 찾아 연결 대상 VPC 확인란을 선택한 다음 제공된 기본 옵션 중 하나를 CIDR 선택하거나 직접 선택하십시오.

    사용자 CIDR 지정을 제공하려면 드롭다운 메뉴에서 기타를 선택합니다. OpenSearch 수집과 자체 관리형 간의 IP 주소 충돌을 방지하려면 자체 관리형이 OpenSearch 통합용과 달라야 합니다. OpenSearch VPC CIDR CIDR OpenSearch

  5. 도메인에 리소스 기반 정책을 연결하거나 컬렉션에 데이터 액세스 정책을 연결하세요. 이러한 액세스 정책을 통해 OpenSearch Ingestion은 자체 관리형 클러스터의 데이터를 도메인이나 컬렉션에 쓸 수 있습니다.

    다음 샘플 도메인 액세스 정책은 다음 단계에서 생성하는 파이프라인 역할이 도메인에 데이터를 쓸 수 있도록 허용합니다. 직접 업데이트해야 ARN 합니다. resource

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

    컬렉션 또는 도메인에 대한 쓰기 데이터에 액세스할 수 있는 올바른 권한이 있는 IAM 역할을 만들려면 도메인에 필요한 권한컬렉션에 필요한 권한을 참조하십시오.

1단계: 파이프라인 역할 구성

파이프라인 사전 요구 사항을 설정한 후 파이프라인 구성에서 사용할 파이프라인 역할을 구성하고 역할에 다음 권한을 추가합니다.

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

파이프라인은 이러한 EC2 권한을 사용하여 네트워크 인터페이스를 생성 및 삭제하므로 OpenSearch 수집 파이프라인을 생성하는 데 사용하는 IAM 역할에 대해 위의 Amazon 권한을 제공해야 합니다. VPC 파이프라인은 이 네트워크 인터페이스를 통해서만 Kafka 클러스터에 액세스할 수 있습니다.

2단계: 파이프라인 생성

그런 다음 다음과 같이 OpenSearch Kafka를 소스로 지정하는 통합 파이프라인을 구성할 수 있습니다.

여러 OpenSearch 서비스 도메인을 데이터 대상으로 지정할 수 있습니다. 이 기능을 사용하면 들어오는 데이터를 여러 OpenSearch 서비스 도메인으로 조건부 라우팅하거나 복제할 수 있습니다.

소스 Confluent Kafka 클러스터의 데이터를 서버리스 컬렉션으로 마이그레이션할 수도 있습니다. OpenSearch VPC 파이프라인 구성 내에서 네트워크 액세스 정책을 제공해야 합니다. Confluent 스키마 레지스트리를 사용하여 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"

사전 구성된 블루프린트를 사용하여 이 파이프라인을 생성할 수 있습니다. 자세한 내용은 청사진을 사용하여 파이프라인 생성 단원을 참조하십시오.