본문 바로가기
클라우드/Azure

[EventHub] EventHub에서 Kafka를 사용

by worldcenter 2025. 1. 30.

1. EventHub Namespace와 EventHub를 생성합니다.

 

2. Kafka가 Event Hub와 통신할 수 있도록 Shared Access Key를 생성합니다. 이 때 Connection Endpoint를 복사해 둡니다.

 

 

Kafka 접속 테스트(Producer)

1. Producer용 Client Pod를 하나 생성합니다.

kubectl run kafka-hub-producer --restart='Never' --image docker.io/bitnami/kafka:3.6.0-debian-11-r0 --namespace kafka --command -- sleep infinity

 

2. 인증된 Client만 접속 가능하도록 Client Properties를 작성합니다.

# Client Properties 생성
sudo mkdir -p /path/to && sudo vi /path/to/client-hub.properties

# /path/to/client-hub.properties
bootstrap.servers=<EventHubNamespace>.servicebus.windows.net:9093
security.protocol=SASL_SSL
sasl.mechanism=PLAIN
sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required \
username="$ConnectionString" \
password="<SharedAccessKeyEndpoint>";

# Pod로 파일 복사
kubectl cp --namespace kafka /path/to/client-hub.properties kafka-hub-producer:/tmp/client.properties

 

3. Client Pod로 접속합니다.

kubectl exec --tty -i kafka-hub-producer --namespace kafka -- bash

 

4. Producer를 실행하여 Broker(Kafka)에 메시지를 전송합니다.

kafka-console-producer.sh \
--producer.config /tmp/client.properties \
--broker-list <EventHubNamespace>.servicebus.windows.net:9093 \
--topic <EventHub> # 만약 Azure에 생성된 EventHub가 없는 경우 Topic 이름으로 자동 생성

 

 

Kafka 접속 테스트(Consumer)

1. Consumer용 Client Pod를 하나 생성합니다.

kubectl run kafka-hub-consumer --restart='Never' --image docker.io/bitnami/kafka:3.6.0-debian-11-r0 --namespace kafka --command -- sleep infinity

 

2. 인증된 Client만 접속 가능하도록 Client Properties를 작성합니다.

# Pod로 파일 복사
kubectl cp --namespace kafka /path/to/client-hub.properties kafka-hub-consumer:/tmp/client.properties

 

3. Client Pod로 접속 합니다.

kubectl exec --tty -i kafka-hub-consumer --namespace kafka -- bash

 

4. Consumer를 실행하여 Broker(Kafka)에서 메시지를 받아옵니다.

kafka-console-consumer.sh \
--consumer.config /tmp/client.properties \
--bootstrap-server <EventHubNamespace>.servicebus.windows.net:9093 \
--topic <Eventhub> \
--from-beginning

 

 

참고 링크

https://learn.microsoft.com/ko-kr/azure/event-hubs/event-hubs-quickstart-kafka-enabled-event-hubs?tabs=connection-string

 

빠른 시작: Azure Event에서 Hubs Apache Kafka 사용 - Azure Event Hubs

이 빠른 시작에서는 Apache Kafka 프로토콜을 사용하여 Azure Event Hubs에서 데이터를 스트리밍하는 방법을 보여줍니다.

learn.microsoft.com