Kafka에서 Azure Stream Analytics로 데이터 스트리밍
Kafka는 레코드 스트림을 게시하고 구독하는 데 사용되는 분산 스트리밍 플랫폼입니다. Kafka는 앱이 레코드가 발생할 때 처리할 수 있도록 설계되었습니다. Apache Software Foundation에서 개발하고 Java 및 Scala로 작성된 오픈 소스 시스템입니다.
주요 사용 사례는 다음과 같습니다.
- 메시지
- 웹 사이트 활동 추적
- 메트릭
- 로그 집계
- 스트림 처리
Azure Stream Analytics를 사용하면 Kafka 클러스터에 직접 연결하여 데이터를 수집할 수 있습니다. 이 솔루션은 로우 코드이며 Microsoft의 Azure Stream Analytics 팀에서 전적으로 관리하므로 비즈니스 준수 표준을 충족할 수 있습니다. Kafka 입력은 이전 버전과 호환되며 버전 0.10부터 시작하는 최신 클라이언트 릴리스가 포함된 모든 버전을 지원합니다. 사용자는 구성에 따라 가상 네트워크 내부의 Kafka 클러스터와 공용 엔드포인트가 있는 Kafka 클러스터에 연결할 수 있습니다. 구성은 기존 Kafka 구성 규칙을 따릅니다. 지원되는 압축 형식은 None, Gzip, Snappy, LZ4 및 Zstd입니다.
단계
이 문서에서는 Azure Stream Analytics에 대한 입력 원본으로 Kafka를 설정하는 방법을 보여 줍니다. 다음 6단계가 있습니다.
- Azure Stream Analytics 작업 만들기.
- mTLS 또는 SASL_SSL 보안 프로토콜을 사용하는 경우 관리 ID를 사용하도록 Azure Stream Analytics 작업을 구성합니다.
- mTLS 또는 SASL_SSL 보안 프로토콜을 사용하는 경우 Azure Key Vault를 구성합니다.
- Azure Key Vault에 비밀로 인증서를 업로드합니다.
- 업로드된 인증서에 액세스할 수 있는 Azure Stream Analytics 권한을 부여합니다.
- Azure Stream Analytics 작업에서 Kafka 입력을 구성합니다.
참고 항목
Kafka 클러스터가 구성된 방법과 사용 중인 Kafka 클러스터 유형에 따라 위의 단계 중 일부는 적용되지 않을 수 있습니다. 예를 들어, Confluent 클라우드 Kafka를 사용하는 경우 Kafka 커넥터를 사용하기 위해 인증서를 업로드할 필요가 없습니다. Kafka 클러스터가 VNET(가상 네트워크) 내부 또는 방화벽 뒤에 있는 경우 프라이빗 링크 또는 전용 네트워킹 구성을 사용하여 Kafka 토픽에 액세스하도록 Azure Stream Analytics 작업을 구성해야 할 수 있습니다.
구성
다음 표에는 SQL Database 입력을 만들기 위한 속성 이름 및 해당 설명이 나와 있습니다.
Important
Kafka 클러스터를 입력으로 구성하려면 입력 토픽의 타임스탬프 유형이 LogAppendTime이어야 합니다. Azure Stream Analytics에서 지원하는 유일한 타임스탬프 유형은 LogAppendTime입니다. Azure Stream Analytics는 숫자 10진수 형식만 지원합니다.
Property name | 설명 |
---|---|
입력/출력 별칭 | 쿼리에서 입력 또는 출력을 참조하기 위해 사용되는 친숙한 이름 |
부트스트랩 서버 주소 | Kafka 클러스터에 대한 연결을 설정하는 호스트/포트 쌍 목록. |
Kafka 항목 | 메시지의 게시-구독 및 이벤트 기반 처리를 허용하는 명명되고 순서가 지정된 분할된 데이터 스트림. |
보안 프로토콜 | Kafka 클러스터에 연결하는 방법 Azure Stream Analytics는 mTLS, SASL_SSL, SASL_PLAINTEXT 또는 None을 지원합니다. |
소비자 그룹 ID | 입력이 속해야 하는 Kafka 소비자 그룹의 이름입니다. 제공되지 않으면 자동으로 할당됩니다. |
이벤트 직렬화 형식 | 들어오는 데이터 스트림의 serialization 형식(JSON, CSV, Avro, Parquet, Protobuf)입니다. |
인증 및 암호화
네 가지 유형의 보안 프로토콜을 사용하여 Kafka 클러스터에 연결할 수 있습니다.
Property name | 설명 |
---|---|
mTLS | 암호화 및 인증. PLAIN, SCRAM-SHA-256 및 SCRAM-SHA-512 보안 메커니즘을 지원합니다. |
SASL_SSL | SASL(단순 인증 및 보안 계층) 및 SSL(Secure Sockets Layer)의 두 가지 보안 메커니즘을 결합하여 데이터 전송을 위해 인증과 암호화가 모두 적용되도록 합니다. SASL_SSL 프로토콜은 PLAIN, SCRAM-SHA-256 및 SCRAM-SHA-512 보안 메커니즘을 지원합니다. |
SASL_PLAINTEXT | 암호화 없이 사용자 이름 및 암호를 사용한 표준 인증 |
없음 | 인증 및 암호화가 없습니다. |
Important
Confluent Cloud는 API 키, OAuth 또는 SAML SSO(Single Sign-On)를 사용하는 인증을 지원합니다. Azure Stream Analytics는 OAuth 또는 SAML SSO(Single Sign-On) 인증을 지원하지 않습니다. SASL_SSL 보안 프로토콜을 통해 토픽 수준 액세스가 있는 API 키를 사용하여 confluent 클라우드에 연결할 수 있습니다.
Confluent 클라우드 Kafka에 연결하는 단계별 자습서는 설명서를 참조하세요.
- Confluent cloud kafka 입력: Azure Stream Analytics를 사용하여 confluent cloud Kafka에서 데이터 스트리밍
- Confluent cloud kafka 출력: Azure Stream Analytics에서 confluent cloud로 데이터 스트리밍
키 자격 증명 모음 통합
참고 항목
mTLS 또는 SASL_SSL 보안 프로토콜과 함께 트러스트 저장소 인증서를 사용하는 경우 Azure Stream Analytics 작업에 대해 Azure Key Vault 및 관리 ID가 구성되어 있어야 합니다. 키 자격 증명 모음의 네트워크 설정을 확인하여 모든 네트워크에서 공용 액세스 허용이 선택되었는지 확인합니다. 키 자격 증명 모음이 VNET에 있거나 특정 네트워크에서만 액세스를 허용한다고 가정합니다. 이 경우 키 자격 증명 모음이 포함된 VNET에 ASA 작업을 삽입하거나 ASA 작업을 VNET에 삽입한 다음 서비스 엔드포인트를 사용하여 작업이 포함된 VNET에 키 자격 증명 모음을 연결해야 합니다.
Azure Stream Analytics는 Azure Key Vault와 원활하게 통합되어 mTLS 또는 SASL_SSL 보안 프로토콜을 사용할 때 인증 및 암호화에 필요한 저장된 비밀에 액세스합니다. Azure Stream Analytics 작업은 관리 ID를 사용하여 Azure Key Vault에 연결하여 보안 연결을 보장하고 비밀 반출을 방지합니다. 인증서는 키 자격 증명 모음에 비밀로 저장되며 PEM 형식이어야 합니다.
권한을 사용하여 키 자격 증명 모음 구성
설명서 빠른 시작: Azure Portal을 사용하여 키 자격 증명 모음 만들기를 따라 키 자격 증명 모음 리소스를 만들 수 있습니다. 인증서를 업로드하려면 키 자격 증명 모음에 대한 "키 자격 증명 모음 관리자" 액세스 권한이 있어야 합니다. 관리자 액세스 권한을 부여하려면 다음을 수행합니다.
참고 항목
다른 키 자격 증명 모음 권한을 부여하려면 "소유자" 권한이 있어야 합니다.
액세스 제어(IAM) 를 선택합니다.
추가>역할 할당 추가를 선택하여 역할 할당 추가 페이지를 엽니다.
다음 구성을 사용하여 역할을 할당합니다.
설정 | 값 |
---|---|
역할 | Key Vault 관리자 |
다음에 대한 액세스 할당 | 사용자, 그룹 또는 서비스 주체 |
멤버 | <계정 정보 또는 이메일> |
Azure CLI를 통해 키 자격 증명 모음에 인증서 업로드
Important
이 명령이 제대로 작동하려면 키 자격 증명 모음에 대한 "키 자격 증명 모음 관리자" 권한 액세스가 있어야 합니다. 인증서를 비밀로 업로드해야 합니다. Azure CLI를 사용하여 인증서를 키 자격 증명 모음에 비밀로 업로드해야 합니다. 인증에 사용된 인증서가 만료되면 Azure Stream Analytics 작업이 실패합니다. 이 문제를 해결하려면 키 자격 증명 모음의 인증서를 업데이트/교체하고 Azure Stream Analytics 작업을 다시 시작해야 합니다.
PowerShell을 사용하여 Azure CLI를 로컬로 구성했는지 확인합니다. Azure CLI 시작 페이지를 방문하여 Azure CLI 설정에 대한 지침을 얻을 수 있습니다.
Azure CLI에 로그인:
az login
키 자격 증명 모음을 포함하는 구독에 연결합니다.
az account set --subscription <subscription name>
다음 명령은 인증서를 키 자격 증명 모음에 비밀로 업로드할 수 있습니다.
<your key vault>
는 인증서를 업로드하려는 키 자격 증명 모음의 이름입니다. <name of the secret>
은 비밀에 부여하려는 이름과 키 자격 증명 모음에 표시되는 방식입니다. <file path to certificate>
는 인증서가 있는 인증서의 경로입니다. 인증서의 경로를 마우스 오른쪽 단추로 클릭하고 복사할 수 있습니다.
az keyvault secret set --vault-name <your key vault> --name <name of the secret> --file <file path to certificate>
예시:
az keyvault secret set --vault-name mykeyvault --name kafkasecret --file C:\Users\Downloads\certificatefile.pem
관리 ID 구성
Azure Stream Analytics를 사용하려면 키 자격 증명 모음에 액세스하도록 관리 ID를 구성해야 합니다. 구성의 왼쪽에 있는 관리 ID 탭으로 이동하여 관리 ID를 사용하도록 ASA 작업을 구성할 수 있습니다.
- 구성 중인 관리 ID 탭을 선택합니다.
- ID 전환을 선택하고 작업과 함께 사용할 ID(시스템이 할당한 ID 또는 사용자가 할당한 ID)를 선택합니다.
- 사용자가 할당한 ID의 경우, 사용자가 할당한 ID가 있는 구독을 선택한 다음, ID 이름을 선택합니다.
- 검토하고 저장합니다.
키 자격 증명 모음의 인증서에 액세스할 수 있는 Stream Analytics 작업 권한 부여
Azure Stream Analytics 작업이 키 자격 증명 모음의 비밀을 읽으려면 작업에 키 자격 증명 모음에 액세스할 수 있는 권한이 있어야 합니다. 다음 단계를 사용하여 스트림 분석 작업에 특별한 권한을 부여합니다.
액세스 제어(IAM) 를 선택합니다.
추가>역할 할당 추가를 선택하여 역할 할당 추가 페이지를 엽니다.
다음 구성을 사용하여 역할을 할당합니다.
설정 | 값 |
---|---|
역할 | 키 자격 증명 모음 비밀 사용자 |
관리 ID | 시스템이 할당한 관리 ID 또는 사용자가 할당한 관리 ID를 위한 Stream Analytics 작업 |
멤버 | <Stream Analytics 작업의 이름> 또는 <사용자가 할당한 ID의 이름> |
가상 네트워크 통합
Kafka 클러스터가 가상 네트워크 내부 또는 방화벽 뒤에 있는 경우 프라이빗 링크 또는 전용 네트워킹 구성을 사용하여 Kafka 토픽에 액세스하도록 Azure Stream Analytics 작업을 구성합니다. 자세한 내용은 Azure Virtual Network 설명서에서 Azure Stream Analytics 작업 실행을 참조하세요.
제한 사항
- Virtual Network/SWIFT를 사용하도록 Azure Stream Analytics 작업을 구성할 때는 6개 이상의 스트리밍 단위 또는 1개(1) V2 스트리밍 단위로 작업을 구성해야 합니다.
- Azure Key Vault에서 mTLS 또는 SASL_SSL 사용하는 경우 Java 키 저장소를 PEM 형식으로 변환해야 합니다.
- Azure Stream Analytics를 0.10 버전으로 연결하도록 구성할 수 있는 Kafka의 최소 버전입니다.
- Azure Stream Analytics는 OAuth 또는 SAML SSO(Single Sign-On)를 사용하여 confluent cloud에 대한 인증을 지원하지 않습니다. SASL_SSL 프로토콜을 통해 API 키를 사용해야 합니다.
참고 항목
Azure Stream Analytics Kafka 입력 사용에 대한 직접적인 도움말은 askasa@microsoft.com에 문의하세요.