Apache Kafka 연결
이 페이지의 내용
Atlas Stream Processing Apache Kafka에 대한 소스 및 싱크 연결을 모두 지원합니다.
Kafka 연결 추가
스트림 처리 인스턴스의 연결 레지스트리에 Kafka 연결을 추가하려면 다음을 수행합니다.
Atlas CLI를 사용하여 지정한 Atlas Stream Processing 인스턴스에 대해 하나의 연결을 생성하려면 다음 명령을 실행합니다.
atlas streams connections create [connectionName] [options]
명령 구문 및 매개변수에 대해 자세히 알아보려면 Atlas 스트림 연결 생성에 대한 Atlas CLI 설명서를 참조하세요.
Atlas에서 프로젝트의 Stream Processing 페이지로 이동합니다.
아직 표시되지 않은 경우 탐색 표시줄의 Organizations 메뉴에서 프로젝트가 포함된 조직을 선택합니다.
아직 표시되지 않은 경우 내비게이션 바의 Projects 메뉴에서 프로젝트를 선택합니다.
사이드바에서 Services 제목 아래의 Stream Processing를 클릭합니다.
스트림 처리 페이지가 표시됩니다.
새 연결을 추가합니다.
Kafka 연결을 선택합니다.
Connection Name을 제공하세요. 각 연결 이름은 스트림 처리 인스턴스 내에서 고유해야 합니다. 이는 Atlas Stream Processing 집계에서 연결을 참조하는 데 사용되는 이름입니다.
Network Access 유형을 선택합니다. Atlas Stream Processing은 Public IP 또는 VPC Peering 연결을 지원합니다.
Public IP 버튼을 클릭합니다. 이 네트워크 액세스 유형에는 추가 구성이 필요하지 않습니다.
VPC Peering 버튼을 클릭합니다.
Enable VPC Peering을 토글합니다. Atlas Stream Processing이 구성된 연결에서 적절한 VPC 피어링 연결을 자동으로 선택합니다.
VPC 피어링 연결이 없는 경우 Atlas 네트워크 피어링 연결을 구성합니다.
하나 이상의 부트스트랩 서버와 Apache Kafka 시스템에 대한 IP 주소를 지정합니다.
드롭다운 메뉴에서 Security Protocol Method를 선택합니다.
Atlas Stream Processing은
SASL_PLAINTEXT
또는SASL_SSL
을 지원합니다.SASL_PLAINTEXT
은(는) VPC 피어링과 호환되지 않습니다. VPC 피어링을 사용하려면SASL_SSL
메서드를 선택해야 합니다.드롭다운 메뉴에서 SASL Mechanism를 선택합니다.
Atlas Stream Processing은 다음을 지원합니다.
PLAIN
SCRAM-SHA-256
SCRAM-SHA-512
인증을 위한 Username을 제공하세요.
인증을 위한 비밀번호를 입력합니다.
Add connection를 클릭합니다.
드롭다운 메뉴에서 SASL Mechanism를 선택합니다.
Atlas Stream Processing은 다음을 지원합니다.
PLAIN
SCRAM-SHA-256
SCRAM-SHA-512
Upload를 클릭하여 Certificate Authority PEM file을 업로드합니다.
인증을 위한 Username을 제공하세요.
인증을 위한 비밀번호를 입력합니다.
Add connection를 클릭합니다.
Atlas 관리 API는 연결 레지스트리에 연결을 추가하기 위한 엔드포인트를 제공합니다.
중요
연결 레지스트리에 Apache Kafka 클러스터와 같은 외부 연결을 추가한 후 해당 외부 연결에 대한 액세스 목록에 Atlas IP 주소를 추가해야 합니다. 자세한 내용은 Atlas Control Plane에 대한 액세스 허용을 참조하세요.
Kafka 비공개 링크 연결 추가
Atlas Stream Processing은 현재 다음에 대한 AWS Private Link 연결 생성을 지원합니다.
AWS Confluent 클러스터
AWS MSK 클러스터
Microsoft Azure EventHub
Amazon Web Services 프라이빗 링크 연결
Atlas Stream Processing 프로젝트에서 사용할 AWS Private Link 연결을 생성하려면:
중요
Atlas 프로젝트 당 특정 Confluent 클러스터 에 대한 Private Link 연결을 두 개 이상 가질 수 없습니다. 이 절차를 시작하기 전에 모든 비공개 링크 연결 반환 엔드포인트를 호출합니다. Atlas 내에서는 Confluent 클러스터 에 대한 기존 Private Link 연결이 있지만 Confluent 계정 내에서는 연결되어 있지 않은 경우, Confluent 측 네트워킹을 구성하는 단계만 수행하세요.
Confluent 클러스터 구성합니다.
Atlas 프로젝트 에서 들어오는 연결을 허용하도록 Confluent 클러스터 구성해야 합니다.
중요
Confluent는 AWS에서 들어오는 연결만 수신합니다. Confluent Private Link 연결을 사용하려면 AWS에서 스트림 처리 인스턴스를 호스팅해야 합니다.
그룹 및 리전 Atlas 관리 API 엔드포인트에 대한 계정 ID 및 VPC ID 반환을 호출합니다.
awsAccountId
의 값을 기록해 둡니다. 이후 단계에서 이 값이 필요합니다.Confluent 계정에서 연결하려는 클러스터 로 이동합니다. 클러스터 네트워킹 인터페이스에서 클러스터 네트워킹 세부 정보로 이동합니다.
Confluent 전용 클러스터 의 경우 원하는 이름을 입력합니다. Amazon Web Services 계정 번호에 앞서 기록해 둔 awsAccountId
필드의 값을 입력합니다.
참고
Confluent 서버리스 클러스터에는 이 단계가 필요하지 않습니다.
cloud 제공자 에게 연결을 요청합니다.
Atlas 관리 API Atlas Stream Processing 위해 구성된 Private Link 연결을 요청하기 위한 엔드포인트를 제공합니다.
AWS Confluent Private Link 연결을 위해 다음 키-값 쌍을 설정해야 합니다.
키 | 값 |
---|---|
| Confluent 클러스터의 VPC Endpoint service name. |
| Confluent 클러스터 에 있는 부트스트랩 서버 의 정규화된 도메인 이름입니다. |
| 클러스터 하위 도메인을 사용하지 않는 경우 이를 빈 배열 |
이러한 값은 Confluent 클러스터의 네트워킹 세부 정보에서 확인할 수 있습니다.
다음 예시 명령은 Confluent 클러스터 에 대한 연결을 요청하고 일반적인 응답을 보여줍니다.
curl --location 'https://cloud.mongodb.com/api/atlas/v2/groups/8358217d3abb5c76c3434648/streams/privateLinkConnections' \ --digest \ --user "slrntglrbn:933fb118-ac62-4991-db05-ee67a3481fde" \ --header 'Content-Type: application/json' \ --header 'Accept: application/vnd.atlas.2023-02-01+json' \ --data '{ "vendor": "Confluent", "provider": "AWS", "region": "us_east_1", "serviceEndpointId": "com.amazonaws.vpce.us-east-1.vpce-svc-93da685022ee702a9", "dnsDomain": "sample.us-east-1.aws.confluent.cloud", "dnsSubDomain: [ "use1-az1.sample.us-east-1.aws.confluent.cloud", "use1-az2.sample.us-east-1.aws.confluent.cloud", "use1-az4.sample.us-east-1.aws.confluent.cloud" ] }'
{"_id":"6aa12e7ccd660d4b2380b1c1","dnsDomain":"sample.us-east-1.aws.confluent.cloud.","vendor":"Confluent","provider":"AWS","region":"us_east_1","serviceEndpointId":"com.amazonaws.vpce.us-east-1.vpce-svc-93da685022ee702a9"}
요청 을 보낸 후 응답 본문의 _id
필드 값을 확인합니다. 이 정보는 이후 단계에서 필요합니다.
인터페이스 엔드포인트 ID Confluent에 제공합니다.
참고
이 단계는 Confluent 서버리스 클러스터에만 적용됩니다.
모든 비공개 링크 연결 반환 엔드포인트를 호출합니다. interfaceEndpointId
값을 확인합니다.
Confluent 계정에서 연결하려는 클러스터 로 이동합니다. 클러스터 네트워킹 인터페이스에서 클러스터 네트워킹 세부 정보로 이동합니다. 액세스 포인트 인터페이스로 이동하여 새 액세스 점 추가합니다. Confluent가 인터페이스 엔드포인트 입력하라는 메시지를 표시하면 이전에 기록해 둔 interfaceEndpointId
값을 입력합니다.
Atlas 측 연결을 생성합니다.
키 | 값 |
---|---|
| cloud 제공업체의 Kafka 부트스트랩 서버 의 IP 주소 . |
|
|
|
|
| Confluent API 키와연결된 비밀번호 |
| Confluent API 키와 연결된 사용자 이름 |
|
|
|
|
| Private Link 요청 응답의 |
필요에 따라 다른 모든 값을 설정합니다.
다음 예시 명령은 Atlas 에서 Apache Kafka 연결을 생성합니다.
curl --location 'https://cloud.mongodb.com/api/atlas/v2/groups/8358217d3abb5c76c3434648/streams/spinstance/connections' \ --digest \ --user "slrntglrbn:933fb118-ac62-4991-db05-ee67a3481fde" \ --header 'Content-Type: application/json' \ --header 'Accept: application/vnd.atlas.2023-02-01+json' \ --data '{ "name": "confluent_demo", "bootstrapServers": "slr-ntgrbn.sample.us-east-1.aws.confluent.cloud:9092", "security": { "protocol": "SASL_SSL" }, "authentication": { "mechanism": "PLAIN", "password": "apiSecretDemo", "username": "apiUserDemo" }, "type": "Kafka", "networking": { "access": { "type": "PRIVATE_LINK", "connectionId": "38972b0cbe9c2aa40a30a246" } } }'
AWS MSK 클러스터를 구성합니다.
AWS MSK 클러스터를 구성하여 Atlas 프로젝트에서 오는 연결을 수락해야 합니다.
중요
AWS MSK는 AWS에서 들어오는 연결만 수신합니다. AWS MSK Private Link 연결을 사용하려면 AWS에서 스트림 처리 인스턴스를 호스팅해야 합니다.
계정 세부 정보 가져오기 엔드포인트를 사용하여 AWS Principal ID를 조회합니다. 이 값은 AWS MSK 클러스터 정책에 필요합니다.
AWS Management Console에 로그인하고 AWS MSK 콘솔로 이동합니다. 연결하려는 클러스터에서
multi-VPC connectivity
이(가) 활성화되어 있는지 확인합니다.IAM 콘솔로 이동하여 탐색 창에서 Policies을(를) 선택합니다. 대상 클러스터 정책을 생성하거나 수정합니다. 이전에 조회한 Principal ID를
Statement.Principal.Aws.[]
의 값으로 사용하고 정책이 다음과 같은 형식을 취하는지 확인합니다.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "123456789012" ] }, "Action": [ "kafka:CreateVpcConnection", "kafka:GetBootstrapBrokers", "kafka:DescribeCluster", "kafka:DescribeClusterV2" ], "Resource": "arn:aws:kafka:us-east-1:123456789012:cluster/testing/de8982fa-8222-4e87-8b20-9bf3cdfa1521-2" } ] }
cloud 제공자 에게 연결을 요청합니다.
Atlas 관리 API Atlas Stream Processing 위해 구성된 Private Link 연결을 요청하기 위한 엔드포인트를 제공합니다.
AWS MSK 비공개 링크 연결의 경우 다음 키-값 쌍을 설정해야 합니다.
키 | 값 |
---|---|
|
|
|
|
| AWS MSK 클러스터의 Amazon 리소스 번호(ARN)를 나타내는 문자열입니다. |
ARN은 AWS MSK 클러스터의 네트워킹 세부 정보에서 찾을 수 있습니다.
다음 예시 명령은 AWS MSK 클러스터에 대한 연결 요청을 하고 일반적인 응답을 보여줍니다.
curl --location 'https://cloud.mongodb.com/api/atlas/v2/groups/8358217d3abb5c76c3434648/streams/privateLinkConnections' \ --digest \ --user "slrntglrbn:933fb118-ac62-4991-db05-ee67a3481fde" \ --header 'Content-Type: application/json' \ --header 'Accept: application/vnd.atlas.2023-02-01+json' \ --data '{ "vendor": "msk", "provider": "AWS", "arn": "1235711"}'
{"_id":"6aa12e7ccd660d4b2380b1c1","dnsDomain":"scram.sample.us-east-1.amazonaws.com","vendor":"msk","provider":"AWS","region":"us_east_1","serviceEndpointId":"com.amazonaws.vpce.us-east-1.vpce-svc-93da685022ee702a9"}
요청 을 보낸 후 응답 본문의 _id
필드 값을 확인합니다. 이 정보는 이후 단계에서 필요합니다.
Atlas 측 연결을 생성합니다.
키 | 값 |
---|---|
| cloud 제공업체의 Kafka 부트스트랩 서버 의 IP 주소 . |
|
|
|
|
| 클러스터에 연결된 SCRAM 비밀번호입니다. AWS Secrets Manager를 사용하여 페어링된 SCRAM 사용자와 비밀번호를 정의하고 이를 AWS MSK 클러스터와 연결해야 합니다. |
| 클러스터와 연결된 SCRAM 사용자입니다. 페어링된 SCRAM 사용자 및 비밀번호를 정의하고 AWS Secrets Manager를 사용하여 AWS MSK 클러스터와 연결해야 합니다. |
|
|
|
|
| Private Link 요청 응답의 |
필요에 따라 다른 모든 값을 설정합니다.
다음 예시 명령은 Atlas 에서 Apache Kafka 연결을 생성합니다.
curl --location 'https://cloud.mongodb.com/api/atlas/v2/groups/8358217d3abb5c76c3434648/streams/spinstance/connections' \ --digest \ --user "slrntglrbn:933fb118-ac62-4991-db05-ee67a3481fde" \ --header 'Content-Type: application/json' \ --header 'Accept: application/vnd.atlas.2023-02-01+json' \ --data '{ "name": "msk_demo", "bootstrapServers": "slr-ntgrbn.sample.us-east-1.amazonaws.com:9092", "security": { "protocol": "SASL_SSL" }, "authentication": { "mechanism": "PLAIN", "password": "scramSecretDemo", "username": "scramUserDemo" }, "type": "Kafka", "networking": { "access": { "type": "PRIVATE_LINK", "connectionId": "38972b0cbe9c2aa40a30a246" } } }'
Microsoft Azure Private Link 연결
Atlas Stream Processing 프로젝트에서 Microsoft Azure Private Link 연결을 생성하려면 다음을 수행하세요.
Atlas에서 프로젝트의 Network Access 페이지로 이동합니다.
아직 표시되지 않은 경우 탐색 표시줄의 Organizations 메뉴에서 프로젝트가 포함된 조직을 선택합니다.
아직 표시되지 않은 경우 내비게이션 바의 Projects 메뉴에서 프로젝트를 선택합니다.
사이드바에서 Security 제목 아래의 Network Access를 클릭합니다.
네트워크 액세스 페이지가 표시됩니다.
Azure EventHub 엔드포인트 세부 정보를 입력합니다.
Azure 서비스 Azure 엔드포인트 ID를 입력합니다.
Endpoint region 을(를) 선택합니다.
Host name 을(를) 선택합니다.
클릭 Next, generate endpoint ID
Network Access Atlas Stream Processing 이제 탭 아래의 View 인터페이스에서 해당 행의 버튼을 클릭하여 Azure EventHub 비공개 엔드포인트를 볼 수 있습니다.
cloud 제공자 에게 연결을 요청합니다.
Atlas 관리 API Atlas Stream Processing 위해 구성된 Private Link 연결을 요청하기 위한 엔드포인트를 제공합니다.
Azure Private Link 연결의 경우 다음 키-값 쌍을 설정하다 해야 합니다.
키 | 값 |
---|---|
| EventHub 네임스페이스 엔드포인트 |
| Azure Event Hub 네임스페이스의 부트스트랩 서버에 대한 정규화된 도메인 이름과 포트 번호. 이 도메인 이름은 여기에 설명된 형식을 준수합니다. |
다음 예시 명령은 Azure Event Hub에 대한 연결을 요청하고 일반적인 응답을 보여줍니다.
curl --location 'https://cloud.mongodb.com/api/atlas/v2/groups/8358217d3abb5c76c3434648/streams/privateLinkConnections' \ --digest \ --user "slrntglrbn:933fb118-ac62-4991-db05-ee67a3481fde" \ --header 'Content-Type: application/json' \ --header 'Accept: application/vnd.atlas.2023-02-01+json' \ --data '{ "provider": "AZURE", "region": "US_EAST_2", "serviceEndpointId": "/subscriptions/b82d6aa0-0b0a-ffa3-7c22-e167dc44f5b0/resourceGroups/asp/providers/Microsoft.EventHub/namespaces/sample", "dnsDomain": "sample.servicebus.windows.net" }'
{"_id":"6aa12e7ccd660d4b2380b1c1","dnsDomain":"sample.servicebus.windows.net","provider":"AZURE","region":"US_EAST_2","serviceEndpointId":"/subscriptions/b82d6aa0-0b0a-ffa3-7c22-e167dc44f5b0/resourceGroups/asp/providers/Microsoft.EventHub/namespaces/sample"}
요청 을 보낸 후 응답 본문의 _id
필드 값을 확인합니다. 이 정보는 이후 단계에서 필요합니다.
cloud 제공자 계정 내에서 요청된 연결을 수락합니다.
Azure 에 대한 Private Link 연결의 경우 Event Hub 네트워킹 페이지로 이동하여 Private endpoint connections 탭 선택합니다. 연결 테이블에서 새로 요청된 연결을 식별하고 승인합니다.
Atlas 측 연결을 생성합니다.
키 | 값 |
---|---|
| cloud 제공업체의 Kafka 부트스트랩 서버 의 IP 주소 . |
|
|
|
|
| Event Hub 연결 문자열 |
|
|
|
|
|
|
| Private Link 요청 응답의 |
필요에 따라 다른 모든 값을 설정합니다.
다음 예시 명령은 Atlas 에서 Apache Kafka 연결을 생성합니다.
curl --location 'https://cloud.mongodb.com/api/atlas/v2/groups/8358217d3abb5c76c3434648/streams/spinstance/connections' \ --digest \ --user "slrntglrbn:933fb118-ac62-4991-db05-ee67a3481fde" \ --header 'Content-Type: application/json' \ --header 'Accept: application/vnd.atlas.2023-02-01+json' \ --data '{ "name": "eventhubpl33333", "bootstrapServers": "sample.servicebus.windows.net:9093", "security": { "protocol": "SASL_SSL" }, "authentication": { "mechanism": "PLAIN", "password": "Endpoint=sb://sample.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=Irlo3OoRkc27T3ZoGOlbhEOqXQRXzb12+Q2hNXm0lc=", "username": "$ConnectionString" }, "type": "Kafka", "networking": { "access": { "type": "PRIVATE_LINK", "connectionId": "38972b0cbe9c2aa40a30a246" } } }'
구성
Kafka 연결을 만들기 위한 각 인터페이스를 사용하면 Kafka 클러스터 대한 구성 매개 변수를 제공할 수 있습니다. 이러한 구성은 키-값 쌍의 형태를 취하며 다음 중 하나에 해당합니다.
Atlas Stream Processing 이러한 매개변수만 Kafka 클러스터 에 전달합니다. 명시적으로 허용되지 않는 매개변수를 선언하면 Atlas Stream Processing 이를 무시합니다.
인터페이스 | 구성 메커니즘 |
---|---|
Atlas CLI | 구성을 |
Atlas 관리 API |
|
Atlas UI | Add Connection 페이지의 Configuration File 필드 에 구성을 제공합니다. |
Atlas Stream Processing 다음 구성을 지원합니다.