Azure CLI를 사용하여 이벤트 허브 만들기

완료됨

팀에서는 시스템을 통해 들어오는 트랜잭션 볼륨이 증가하는 상황에서 이러한 볼륨을 Azure Event Hubs의 기능을 사용하여 관리하고 처리하기로 결정했습니다.

이벤트 허브는 Azure 리소스이므로 첫 번째 단계는 Azure에서 새 허브를 만들고 앱의 특정 요구 사항을 충족하도록 구성하는 것입니다.

Azure Event Hubs 정의

Azure Event Hubs는 초당 수백만 개의 이벤트를 수신하고 처리할 수 있는 클라우드 기반 이벤트 처리 서비스입니다. Event Hubs는 처리 리소스를 사용할 수 있을 때까지 들어오는 데이터를 수신하고 데이터를 저장하는 이벤트 파이프라인의 Front Door 역할을 합니다.

이벤트 허브로 데이터를 보내는 엔터티를 ‘게시자’라고 하고, 이벤트 허브에서 데이터를 읽는 엔터티를 ‘소비자’ 또는 ‘구독자’라고 합니다. 이벤트 허브는 게시자와 구독자 사이에 자리를 잡은 채 이벤트 데이터 스트림의 프로덕션(게시자의)과 소비(구독자에 대한)를 나눕니다. 이러한 분리는 이벤트 프로덕션의 비율이 소비보다 상당히 높은 시나리오를 관리하는 데 도움이 됩니다. 다음 그림에서는 이벤트 허브의 역할을 보여 줍니다.

An illustration showing an Azure event hub placed between four publishers and two subscribers. The event hub receives multiple events from the publishers, serializes the events into data streams, and makes the data streams available to subscribers.

이벤트

이벤트는 알림을 포함하는 작은 정보 패킷(데이터그램)입니다. 이벤트는 개별 또는 일괄로 게시할 수 있지만, 하나의 게시(개별 또는 일괄)는 1MB를 초과할 수 없습니다.

게시자 및 구독자

이벤트 게시자는 HTTPS, AMQP(고급 메시지 큐 프로토콜) 1.0 또는 Apache Kafka를 사용하여 이벤트를 전송할 수 있는 모든 앱 또는 디바이스입니다.

  • 데이터를 자주 보내는 게시자의 경우 AMQP가 성능이 더 낫습니다. 그러나 지속적 양방향 소켓과 TLS(전송 수준 보안) 또는 SSL/TLS가 먼저 설정되어야 하므로 초기 세션 오버헤드가 더 높습니다.
  • 간헐적으로 게시하는 경우 HTTPS가 더 나은 옵션입니다. HTTPS에는 각 요청에 대한 추가 오버헤드가 필요하지만 세션 초기화 오버헤드는 발생하지 않습니다.
  • Event Hubs는 사용자 고유의 Apache Kafka 클러스터를 실행하는 대신 대부분의 기존 Apache Kafka 클라이언트 애플리케이션에서 사용할 수 있는 Apache Kafka 생산자 및 소비자 API 호환 엔드포인트를 제공합니다. Event Hubs는 버전 1.0 이상에서 Apache Kafka의 생산자 및 소비자 API 클라이언트를 지원합니다. 자세한 내용은 Apache Kafka용 Event Hubs를 참조하세요.

이벤트 구독자는 두 개의 지원되는 프로그래밍 방식 메서드 중 하나를 사용하여 이벤트 허브에서 이벤트를 수신하고 처리하는 앱입니다.

  • EventHubReceiver - 제한된 관리 옵션을 제공하는 단순 메서드입니다.
  • EventProcessorHost - 이 모듈에서 나중에 사용할 효율적인 메서드입니다.

소비자 그룹

이벤트 허브 소비자 그룹은 이벤트 허브 데이터 스트림의 특정 보기를 나타냅니다. 여러 구독자 앱은 개별 소비자 그룹을 사용하여 이벤트 데이터 스트림을 개별적으로 처리할 수 있습니다. 이때 다른 앱에는 영향을 주지 않습니다. 그러나 여러 소비자 그룹을 사용하는 것은 요구 사항이 아니며, 대부분의 앱은 기본 소비자 그룹 하나로 충분합니다.

가격 책정

Azure Event Hubs에는 네 가지 가격 책정 계층(기본, 표준, 프리미엄 및 전용)이 있습니다. 계층은 지원되는 연결, 사용 가능한 소비자 그룹 수 및 처리량에 따라 다릅니다. Azure CLI를 사용하여 Event Hubs 네임스페이스를 만들 때 가격 책정 계층을 지정하지 않으면 기본값인 표준(소비자 그룹 20개, 조정된 연결 1000개)이 할당됩니다. 이러한 계층 간의 주요 차이점은 Azure Event Hubs - 가격 책정을 참조하세요.

이벤트 허브 만들기 및 구성하기

새 이벤트 허브를 만드는 두 가지 주요 단계가 있습니다. 첫 번째 단계는 Event Hubs 네임스페이스를 정의하는 것입니다. 두 번째 단계는 해당 네임스페이스에 이벤트 허브를 만드는 것입니다.

Event Hubs 네임스페이스 정의

Event Hubs 네임스페이스는 하나 이상의 이벤트 허브를 관리하기 위한 컨테이너입니다. 일반적으로 Event Hubs 네임스페이스를 만드는 과정에는 다음과 같은 구성 작업이 수반됩니다.

네임스페이스 수준 설정 정의

네임스페이스 용량(표준 계층의 경우 처리량 단위를 사용하여 구성됨), 가격 책정 계층 및 성능 메트릭은 네임스페이스 수준에서 정의됩니다. 이 설정은 해당 네임스페이스 내의 모든 이벤트 허브에 적용됩니다. 이러한 설정을 정의하지 않으면 기본값인 1(용량) 및 Standard(가격 책정 계층)이 사용됩니다.

다음 측면을 고려해야 합니다.

  • 예상 Azure 예산을 기준으로 구성을 조정해야 합니다.

  • 처리량 요구 사항에 따라 서로 다른 이벤트 허브를 구성하는 것이 좋습니다. 예를 들어 영업 데이터 앱이 있고 두 개의 이벤트 허브를 계획 중인 경우 각 허브에 개별 네임스페이스를 사용하는 것이 좋습니다.

    실시간 영업 데이터의 고처리량 수집에 하나의 네임스페이스를 구성하고 빈번하지 않은 이벤트 로그 수집에 하나의 네임스페이스를 구성합니다. 이렇게 하면 실시간 영업 데이터 허브에서 높은 처리량 용량을 구성하고 이에 대해 요금을 지급하기만 하면 됩니다.

    1. 네임스페이스의 고유 이름을 선택합니다. 네임스페이스는 namespace.servicebus.windows.net이라는 URL을 통해 액세스할 수 있습니다.

    2. 다음 선택적 속성을 정의합니다.

      • 이 네임스페이스 영역을 중복으로 설정합니다. 영역 중복 기능은 자체의 독립적인 전력, 네트워킹, 냉각 인프라를 갖춘 개별 데이터 센터 전반에 걸쳐 데이터를 복제합니다.

      • 처리량 단위(표준 계층)를 자동으로 확장할 수 있습니다. 자동 팽창은 처리량 단위의 수를 최댓값까지 늘려 자동 확장 옵션을 제공합니다. 이 옵션은 들어오거나 나가는 데이터 속도가 현재 설정된 처리량 단위 수를 초과하는 상황에서 제한을 방지하는 데 유용합니다.

Event Hubs 네임스페이스를 만들기 위한 Azure CLI 명령

새 Event Hubs 네임스페이스를 만들려면 az eventhubs namespace 명령을 사용합니다. 다음은 연습에서 사용하는 명령에 대한 간단한 설명입니다.

명령 설명
create Event Hubs 네임스페이스를 만듭니다.
authorization-rule 동일한 네임스페이스 내의 모든 이벤트 허브는 공통 연결 자격 증명을 공유합니다. 이 자격 증명은 이벤트 허브를 사용하여 메시지를 보내고 받도록 앱을 구성할 때 필요합니다. 이 명령은 Event Hubs 네임스페이스의 연결 문자열을 반환합니다.

새 이벤트 허브 구성

Event Hubs 네임스페이스를 만든 후에 이벤트 허브를 만들 수 있습니다. 이벤트 허브를 만들 때 몇 가지 필수 매개 변수가 있습니다.

이벤트 허브를 만들려면 다음 매개 변수가 필요합니다.

  • 이벤트 허브 이름 - 구독 내에서 고유하고 다음에 해당하는 이벤트 허브 이름입니다.
    • 1~50자 사이입니다.
    • 문자, 숫자, 마침표, 하이픈 및 밑줄만 포함합니다.
    • 문자 또는 숫자로 시작하고 끝납니다.
  • 파티션 수 - 이벤트 허브에 필요한 파티션의 수입니다(표준 계층의 경우 2~32개). 파티션 수는 예상되는 동시 소비자 수와 직접 관련되어야 하며 허브를 만든 후에는 변경할 수 없습니다. 파티션을 통해 메시지 스트림이 분리되므로 소비자 또는 수신자 앱은 데이터 스트림의 특정 하위 집합만 읽으면 됩니다. 정의하지 않은 경우 기본값 ‘4’가 사용됩니다.
  • 메시지 보존 - 어떤 이유로든 데이터 스트림을 재생해야 하는 경우 메시지를 계속 사용할 수 있는 기간(표준 계층의 경우 1~7일)입니다. 정의하지 않은 경우 기본값 7이 사용됩니다.

필요한 경우 Azure Blob Storage 또는 Azure Data Lake Storage에 데이터를 스트리밍하도록 이벤트 허브를 구성할 수도 있습니다.

이벤트 허브를 만들기 위한 Azure CLI 명령

Azure CLI를 사용하여 새 이벤트 허브를 만들려면 az eventhubs eventhub 명령 집합을 실행합니다. 다음은 연습에서 사용하는 명령에 대한 간단한 설명입니다.

명령 설명
create 지정된 네임스페이스에 이벤트 허브를 만듭니다.
show 이벤트 허브의 세부 정보를 표시합니다.

참고

다른 Event Hubs 계층에 대한 할당량 및 제한은 Azure Event Hubs 할당량 및 한도를 참조하세요.

요약

Azure Event Hubs를 배포하려면 Event Hubs 네임스페이스를 구성한 후에 이벤트 허브 자체를 구성해야 합니다. 다음 단원에서는 새 네임스페이스 및 이벤트 허브를 만드는 단계를 자세히 살펴보겠습니다.