Kafka에서 Azure Stream Analytics로 데이터 스트리밍

Apache Kafka는 앱들이 레코드 스트림을 게시하고 구독하는 데 사용하는 오픈 소스 분산 스트리밍 플랫폼입니다. 메시징, 웹사이트 활동 추적, 지표, 로그 집계, 스트림 처리에 주로 사용됩니다.

데이터가 Kafka 클러스터를 통해 흐른다면, Azure Stream Analytics를 직접 클러스터에 연결해 사용자 맞춤 소비자를 만들지 않고도 데이터를 인징하고 처리할 수 있습니다. Kafka 입력은 로우코드이며, 비즈니스 준수 기준을 충족하기 위해 Microsoft가 완전히 관리하고, 0.10부터 클라이언트 버전과 하위 호환됩니다. 기존 Kafka 구성 규칙을 사용하여 가상 네트워크 내나 공개 엔드포인트와 Kafka 클러스터에 연결할 수 있습니다. 지원되는 압축 형식은 None, Gzip, Snappy, LZ4 및 Zstd입니다.

이 글에서는 Azure Stream Analytics 작업의 입력 소스로 Kafka 클러스터를 구성하는 방법을 보여줍니다.

카프카를 입력 소스로 설정하세요

이 문서에서는 Azure Stream Analytics에 대한 입력 원본으로 Kafka를 설정하는 방법을 보여 줍니다. 다음 단계를 다룹니다.

  1. Azure Stream Analytics 작업 만들기.
  2. mTLS 또는 SASL_SSL 보안 프로토콜을 사용하는 경우 관리 ID를 사용하도록 Azure Stream Analytics 작업을 구성합니다.
  3. mTLS나 SASL_SSL 보안 프로토콜을 사용 중이라면 Azure Key Vault 설정하세요.
  4. 인증서를 비밀로 Azure Key Vault에 업로드하세요.
  5. 업로드된 인증서에 액세스할 수 있는 Azure Stream Analytics 권한을 부여합니다.
  6. Azure Stream Analytics 작업에서 Kafka 입력을 구성합니다.

참고

Kafka 클러스터 구성과 사용 중인 클러스터 유형에 따라 이 중 일부 단계는 해당되지 않을 수 있습니다. 예를 들어, Confluent Cloud Kafka를 사용 중이라면 Kafka 커넥터를 사용하기 위해 인증서를 업로드할 필요가 없습니다. 만약 Kafka 클러스터가 가상 네트워크(VNet) 내부나 방화벽 뒤에 있다면, Azure Stream Analytics 작업을 설정하여 프라이빗 링크나 전용 네트워킹 구성을 통해 Kafka 주제에 접근해야 할 수도 있습니다.

카프카 입력을 구성

Azure Stream Analytics 작업이 Kafka 클러스터에 연결하고 토픽에서 읽을 수 있도록 Kafka 입력을 설정하세요.

중요한

Kafka 클러스터를 입력으로 구성하려면 입력 토픽의 타임스탬프 유형이 LogAppendTime이어야 합니다. Azure Stream Analytics에서 지원하는 유일한 타임스탬프 유형은 LogAppendTime입니다. Azure Stream Analytics는 숫자 10진수 형식만 지원합니다.

  1. Azure Stream Analytics job에서 Kafka 입력을 추가하세요.

  2. 다음 표에 설명된 값을 사용하여 각 입력 속성을 설정합니다:

    속성 이름 설명
    입력/출력 별칭 입력이나 출력을 참조할 때 쿼리에서 사용하는 친근한 이름입니다.
    부트스트랩 서버 주소 Kafka 클러스터에 연결할 호스트/포트 쌍 목록입니다.
    Kafka 토픽 메시지의 게시-구독 및 이벤트 기반 처리를 지원하는 이름 붙여지고, 순서가 정해졌으며, 분할된 데이터 스트림입니다.
    보안 프로토콜 Kafka 클러스터에 어떻게 연결하고 싶으신가요? Azure Stream Analytics는 mTLS, SASL_SSL, SASL_PLAINTEXT 또는 None을 지원합니다.
    소비자 그룹 ID 입력이 속해야 하는 Kafka 소비자 그룹의 이름입니다. 직접 지정하지 않으면 Azure Stream Analytics가 자동으로 할당합니다.
    이벤트 직렬화 형식 들어오는 데이터 스트림의 직렬화 형식(JSON, CSV, Avro, Parquet, Protobuf)입니다.
  3. 입력 설정을 저장하세요.

인증 및 암호화 설정

인증과 암호화를 설정하여 Azure Stream Analytics 작업과 Kafka 클러스터 간의 연결을 안전하게 보호하세요. Confluent Cloud Kafka에 연결하는 단계별 자습서는 입력의 경우 Azure Stream Analytics를 사용하여 Confluent Cloud Kafka의 데이터를 스트리밍, 출력의 경우 Azure Stream Analytics의 데이터를 Confluent Cloud로 스트리밍을 참조하세요.

중요한

Confluent Cloud는 API 키, OAuth, 또는 SAML 싱글 사인온(SSO)을 사용하여 인증을 지원합니다. Azure Stream Analytics는 OAuth 또는 SAML SSO(Single Sign-On) 인증을 지원하지 않습니다. SASL_SSL 보안 프로토콜을 통해 주제 수준 접근 권한이 있는 API 키를 사용해 Confluent Cloud에 연결할 수 있습니다.

  1. 다음 표에 설명된 대로 Kafka 클러스터에 맞는 네 가지 지원 보안 프로토콜 중 하나를 선택하세요:

    속성 이름 설명
    mTLS 암호화 및 인증. PLAIN, SCRAM-SHA-256 및 SCRAM-SHA-512 보안 메커니즘을 지원합니다.
    SASL_SSL SASL(단순 인증 및 보안 계층)과 보안 소켓 계층(SSL)이라는 두 가지 보안 메커니즘을 결합하여 데이터 전송에 인증과 암호화가 모두 적용되도록 합니다. SASL_SSL 프로토콜은 PLAIN, SCRAM-SHA-256 및 SCRAM-SHA-512 보안 메커니즘을 지원합니다.
    SASL_PLAINTEXT 표준 인증에 사용자 이름만 있지만 암호화는 없습니다.
    없음 인증 및 암호화가 없습니다.
  2. Azure Stream Analytics 작업에서 선택한 프로토콜의 자격 증명을 설정하세요.

Azure Key Vault와 통합

Azure Stream Analytics mTLS나 SASL_SSL 보안 프로토콜을 사용할 때 인증과 암호화에 필요한 저장된 비밀에 접근할 수 있도록 Azure Key Vault와 통합됩니다. Azure Stream Analytics 작업은 관리 신원을 사용하여 Azure Key Vault에 연결하여 보안 연결을 보장하고 비밀 유출을 방지합니다. 인증서는 키 자격 증명 모음에 비밀로 저장되며 PEM 형식이어야 합니다. Azure Stream Analytics 직무를 Azure Key Vault와 통합하려면, 다음 섹션에서 자세히 설명하는 작업을 완료하세요.

참고

mTLS나 SASL_SSL 보안 프로토콜과 함께 트러스트 스토어 인증서를 사용할 때는 Azure Stream Analytics 작업에 대해 Azure Key Vault 및 관리 신원을 반드시 설정해야 합니다. 키 자격 증명 모음의 네트워크 설정을 확인하여 모든 네트워크에서 공용 액세스 허용이 선택되었는지 확인합니다. 키 볼트가 VNet에 있거나 특정 네트워크에서만 접근할 수 있다면, Azure Stream Analytics 작업을 키 볼트가 포함된 VNet에 주입하거나, Azure Stream Analytics 작업을 VNet에 주입한 후 서비스 엔드포인트를 사용해 키 볼트를 VNet이 포함된 작업에 연결해야 합니다.

  1. 키 금고를 필요한 권한으로 설정하세요.
  2. 인증서를 키 금고에 비밀로 업로드하세요.
  3. Azure Stream Analytics 작업에 관리 식별을 설정하세요.
  4. 스트림 애널리틱스 작업에 키 볼트에 있는 인증서에 접근할 권한을 부여하세요.

키 볼트에 권한을 설정하세요

키 볼트 리소스를 생성하려면 Quickstart: Azure 포털을 이용한 키 볼트 생성 항목을 참조하세요. 인증서를 업로드하려면 Key Vault에 Key Vault 관리자 권한이 필요합니다. 관리자 권한을 부여하려면 다음 단계를 따르세요:

참고

다른 키 볼트 권한을 부여하려면 소유자 권한이 필요합니다.

  1. 액세스 제어(IAM) 를 선택합니다.

  2. 추가>역할 할당 추가를 선택하여 역할 할당 추가 페이지를 엽니다.

  3. 다음 구성을 사용하여 역할을 할당하세요:

    설정
    역할 키 볼트 관리자
    접근 권한 할당 사용자, 그룹 또는 서비스 주체
    회원 <계정 정보 또는 이메일>

인증서를 키 볼트에 업로드하세요

Azure CLI를 PowerShell로 로컬에 설정해 두었는지 확인하세요. Azure CLI 설정에 대한 안내는 Get started with Azure CLI를 참조하세요.

다음 단계에서는 인증서를 비밀로 키 금고에 업로드합니다.

중요한

이 명령이 제대로 작동하려면 Key Vault에 대한 Key Vault 관리자 권한이 필요합니다. 인증서를 비밀로 업로드해야 합니다. Azure CLI를 사용하여 인증서를 키 자격 증명 모음에 비밀로 업로드해야 합니다. 인증에 사용되는 인증서가 만료되면 Azure Stream Analytics 작업이 실패합니다. 이 문제를 해결하려면 키 볼트의 인증서를 업데이트하거나 교체한 후 Azure Stream Analytics 작업을 재시작하세요.

  1. Azure CLI 로그인합니다.

    az login
    
  2. 키 금고가 포함된 구독에 연결하세요.

    az account set --subscription <subscription name>
    
  3. 인증서를 비밀로 업로드하세요. <name of the secret>를 키 볼트 이름으로, <file path to certificate>을 비밀에 지정할 이름으로, <your key vault>를 인증서 파일의 경로로 바꾸세요. 인증서의 경로를 마우스 오른쪽 단추로 클릭하고 복사할 수 있습니다.

    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는 키 볼트에 접근하기 위해 관리 신원이 필요합니다. Azure Stream Analytics 작업이 관리형 ID를 사용하도록 구성하려면 구성 아래의 관리형 ID 탭으로 이동하세요.

관리 신원을 설정하려면 다음 단계를 따르세요:

  1. 구성 아래에서 관리 신원 탭을 선택하세요.

    Azure Stream Analytics 작업에서 관리 신원 설정 방법을 보여주는 스크린샷입니다.

  2. 스위치 식별자를 선택한 후, 작업에서 사용할 식별 식별자: 시스템 할당 식별자 또는 사용자 할당 식별 식별자를 선택하세요.

  3. 사용자 지정 신원을 위해, 사용자 지정 신원이 위치한 구독을 선택한 후 신원 이름을 선택하세요.

  4. 검토 후 저장을 선택하세요.

Stream Analytics 작업 권한을 부여하여 인증서에 접근하세요

Azure Stream Analytics 작업이 키 자격 증명 모음에서 비밀을 읽으려면 작업에 키 자격 증명 모음에 액세스할 수 있는 권한이 있어야 합니다.

스트림 분석 직무에 권한을 부여하려면 다음 단계를 따르세요:

  1. 액세스 제어(IAM) 를 선택합니다.

  2. 추가>역할 할당 추가를 선택하여 역할 할당 추가 페이지를 엽니다.

  3. 다음 구성을 사용하여 역할을 할당하세요:

    설정
    역할 Key Vault 비밀 사용자
    관리되는 ID 시스템이 할당한 관리 ID 또는 사용자가 할당한 관리 ID를 위한 Stream Analytics 작업
    회원 <Stream Analytics 작업의 이름> 또는 <사용자가 할당한 ID의 이름>

카프카 입력의 한계와 고려사항

Kafka 클러스터가 가상 네트워크 내에 있거나 방화벽 뒤에 있다면, Azure Stream Analytics 작업을 설정하여 프라이빗 링크나 전용 네트워킹 구성을 통해 Kafka 주제에 접근하도록 설정하세요. 자세한 내용은 'Azure Virtual Network에서 Azure Stream Analytics 작업을 실행하기'를 참조하세요.

카프카를 입력 소스로 사용할 때 다음과 같은 제한점을 고려하세요:

  1. Azure Stream Analytics 작업을 Virtual Network/SWIFT 사용으로 설정할 때, 최소 6개의 스트리밍 유닛 또는 1개의 V2 스트리밍 유닛으로 작업으로 설정하세요.
  2. mTLS나 SASL_SSL를 Azure Key Vault와 함께 사용할 때는 Java Key Store를 PEM 형식으로 변환해야 합니다.
  3. Azure Stream Analytics가 연결할 수 있는 Kafka의 최소 버전은 0.10입니다.
  4. Azure Stream Analytics는 OAuth 또는 SAML 싱글 사인온(SSO)을 사용하여 Confluent Cloud에 대한 인증을 지원하지 않습니다. SASL_SSL 프로토콜을 통해 API 키를 사용해야 합니다.

Azure Stream Analytics Kafka 입력에 대한 직접 지원이 필요하면 askasa@microsoft.com에 문의하세요.