다음을 통해 공유


다중 테넌트 및 Azure Event Hubs

Event Hubs 는 초당 수백만 개의 이벤트를 수신하고 처리할 수 있는 빅 데이터 스트리밍 플랫폼 및 이벤트 수집 서비스입니다. 실시간 분석 공급자 및 일괄 처리/스토리지 어댑터를 사용하여 이벤트 허브 데이터를 변환하고 저장할 수 있습니다. Event Hubs 및 기타 Azure 메시징 서비스를 비교하려면 Azure 메시징 서비스(Event Grid, Event Hubs 및 Service Bus 중에서 선택)를 참조하세요.

이 문서에서는 다중 테넌트 솔루션에서 사용할 수 있는 Event Hubs 기능 및 격리 모델에 대해 설명합니다.

격리 모델

다중 테넌트 시스템에서 Event Hubs를 사용하는 경우 원하는 격리 수준을 결정해야 합니다. Event Hubs는 다양한 다중 테넌트 모델을 지원합니다.

  • 신뢰할 수 있는 다중 테넌트: 모든 테넌트는 Event Hubs 네임스페이스를 공유합니다. 이 선택은 모든 테넌트가 조직에 있을 때 적합할 수 있습니다.
  • 적대적인 다중 테넌트: 각 테넌트에는 공유되지 않는 고유한 네임스페이스가 있습니다. 이 선택은 테넌트에 시끄러운 인접 문제가 없도록 하려는 경우에 적합할 수 있습니다.

시스템은 두 모델을 모두 구현할 수 있습니다. 일부 테넌트는 네임스페이스를 공유하고, 다른 테넌트는 전용 모델을 가지고 있습니다. 또한 테넌트는 다른 테넌트와 네임스페이스를 공유할 수 있지만 전용 이벤트 허브를 가질 수 있습니다.

다음 표에서는 Event Hubs에 대한 기본 테넌시 격리 모델 간의 차이점을 요약합니다. 모델은 다음 섹션에서 자세히 설명합니다.

고려 사항 전용 네임스페이스 공유 네임스페이스, 전용 이벤트 허브 공유 네임스페이스 및 이벤트 허브
데이터 격리 높음 중간 없음
성능 격리 가장 높음. 각 테넌트의 요구 사항에 따라 성능 요구 사항을 관리합니다. 보통. 시끄러운 인접 문제를 가질 수 있습니다. 낮음. 시끄러운 인접 문제를 가질 수 있습니다.
배포 복잡성 중간. 구독 수준에서 Event Hubs 할당량 및 한도에 유의하세요. 보통. 각 테넌트에 대해 별도의 메시지 엔터티를 배포해야 합니다. Event Hubs 할당량 및 제한에 유의 하세요. 경우에 따라 테넌트 수에 따라 여러 네임스페이스가 필요합니다. 낮음
운영 복잡성 높음. 테넌트별로 네임스페이스를 관리해야 합니다. 보통. 일부 테넌트에는 메시지 엔터티를 세분화하여 관리해야 합니다. 낮음
예제 시나리오 테넌트당 애플리케이션 인스턴스를 구분합니다. 각 테넌트에 대한 전용 이벤트 허브입니다. 공유 애플리케이션 계층 및 하나 이상의 공유 이벤트 허브를 사용하는 대규모 다중 테넌트 솔루션입니다.

참고 항목

Apache Kafka용 Event Hubs는 Event Hubs를 Apache Kafka 애플리케이션에서 사용할 수 있도록 Event Hubs 위에 프로토콜 헤드를 제공하는 기능입니다. 애플리케이션은 이벤트를 Kafka 토픽과 동일한 이벤트 허브로 스트리밍합니다. 자세한 내용은 Apache Kafka용 Azure Event Hubs란?을 참조 하세요.

전용 네임스페이스

이 모델에서는 각 테넌트에 대해 Event Hubs 네임스페이스를 프로비전합니다. 이 방법은 최대 수준의 격리 및 모든 테넌트에 허용 가능한 성능을 제공하는 기능을 제공합니다.

다음 기술을 사용하여 테넌트 요구 사항을 충족하도록 이벤트 기능을 미세 조정할 수 있습니다.

Azure 구독의 최대 Event Hubs 네임스페이스 수에 도달하면 배포 스탬프 패턴을 사용하여 여러 구독에 네임스페이스를 배포할 수 있습니다.

이 격리 모델의 단점은 시간이 지남에 따라 테넌트 수가 증가함에 따라 네임스페이스 관리가 더 복잡해집니다. 또 다른 단점은 각 네임스페이스에 대한 비용을 지불하기 때문에 모델이 비용을 증가한다는 것입니다.

공유 네임스페이스, 전용 이벤트 허브

네임스페이스가 여러 테넌트에서 공유되더라도 테넌트를 전용 이벤트 허브로 격리할 수 있습니다. 공유 액세스 서명 또는 Microsoft Entra ID를 사용하여 액세스를 제어할 수 있습니다.

시스템 내에서 테넌트 수가 증가함에 따라 각 테넌트에 맞게 이벤트 허브 수도 증가합니다. 이러한 성장은 운영 비용을 높이고 조직의 민첩성을 낮출 수 있습니다. 네임스페이스당 이벤트 허브 수에는 제한이 있습니다. 따라서 시스템에 필요한 네임스페이스 수는 테넌트에 필요한 이벤트 허브 수에 따라 달라집니다.

네임스페이스가 공유 되면 시끄러운 인접 문제가 발생할 가능성이 높습니다. 예를 들어 테넌트의 이벤트 엔터티가 불균형한 양의 네임스페이스 리소스를 사용하고 다른 테넌트를 방해할 수 있습니다. 이벤트 허브 네임스페이스는 처리 단위(프리미엄 계층) 또는 용량 단위(전용 계층) 및 네임스페이스에 대한 조정된 연결 수에 제한이 있습니다. 단일 테넌트가 너무 많은 리소스를 사용할 수 있는지 여부를 고려합니다.

공유 네임스페이스 및 이벤트 허브

모든 테넌트에서 공유하는 네임스페이스 및 이벤트 엔터티를 가질 수 있습니다. 이 모델은 운영 복잡성을 줄이고 리소스 비용을 낮춥니다.

그러나 공유 네임스페이스가 있으면 노이즈 네임스페이스 문제가 발생하여 일부 테넌트에 대한 대기 시간이 늘어나게 될 수 있습니다. 또한 여러 테넌트에 서비스를 제공하기 위해 애플리케이션을 구현해야 합니다. 공유 이벤트 허브 및 Kafka 토픽은 테넌트 간에 데이터 격리를 제공하지 않으므로 애플리케이션 논리에서 데이터 격리 요구 사항을 충족해야 합니다.

참고 항목

Event Hubs 파티션을 사용하여 테넌트 격리를 시도하지 마세요. Event Hubs에서 분할하면 이벤트 및 확장성을 처리할 수 있지만 격리 모델은 아닙니다. 파티션에 직접 이벤트를 보낼 수 있지만 이벤트 허브의 가용성을 파티션 수준으로 다운그레이드하므로 권장되지 않습니다. 자세한 내용은 Event Hubs의 가용성 및 일관성을 참조 하세요.

다중 테넌시를 지원하는 Event Hubs의 기능

Event Hubs의 다음 기능은 다중 테넌시를 지원합니다.

이러한 기능은 다음 섹션에서 설명합니다.

애플리케이션 그룹

애플리케이션 그룹은 Event Hubs 데이터 평면과 상호 작용하는 하나 이상 클라이언트 애플리케이션의 컬렉션입니다. 할당량 및 액세스 관리 정책을 그룹 자체에 적용하여 그룹의 모든 애플리케이션에 적용할 수 있습니다.

각 애플리케이션 그룹의 범위를 단일 Event Hubs 네임스페이스 또는 단일 이벤트 허브로 지정할 수 있습니다. SAS(공유 액세스 서명) 또는 Microsoft Entra 애플리케이션 ID인 보안 컨텍스트와 같이 클라이언트 애플리케이션의 고유하게 식별되는 조건 식별자를 사용해야 합니다.

자세한 내용은 애플리케이션 그룹을 사용한 리소스 거버넌스를 참조하세요.

Microsoft Entra 인증

Event Hubs는 Microsoft Entra ID와 통합됩니다. 클라이언트는 Microsoft Entra ID가 있는 관리 ID를 사용하여 Event Hubs 리소스에 인증할 수 있습니다. Event Hubs는 Event Hubs 엔터티에 액세스하기 위해 테넌트에 부여할 수 있는 기본 제공 역할 집합을 정의합니다. 예를 들어 Microsoft Entra 인증을 사용하여 테넌트에 대한 메시지가 있는 이벤트 허브에 대한 액세스 권한을 테넌트에 부여할 수 있습니다. 이 기술을 사용하여 테넌트를 다른 테넌트에서 격리할 수 있습니다.

Kafka 애플리케이션은 관리 ID OAuth를 사용하여 Event Hubs 리소스에 액세스할 수 있습니다.

자세한 내용은 다음 문서를 참조하세요.

공유 액세스 서명

SAS(공유 액세스 서명)를 사용하면 특정 권한으로 Event Hubs 리소스에 대한 테넌트 액세스 권한을 부여할 수 있습니다. 이벤트 엔터티 수준에서 테넌트를 격리하는 경우 특정 테넌트에만 적용되는 이벤트 허브 또는 Kafka 토픽에 SAS 키를 부여할 수 있습니다.

자세한 내용은 SAS(공유 액세스 서명)를 사용하여 Event Hubs 리소스에 대한 액세스 인증을 참조 하세요.

고객 관리형 키

테넌트가 이벤트를 암호화하고 암호를 해독하기 위해 자체 키가 필요한 경우 일부 버전의 Event Hubs에서 고객 관리형 키를 구성할 수 있습니다.

이 기능을 사용하려면 전용 네임스페이 격리 모델을 사용해야 합니다. 암호화는 새 네임스페이스 또는 빈 네임스페이스에 대해서만 사용할 수 있습니다.

자세한 내용은 Azure Event Hubs 미사용 데이터를 암호화하기 위해 고객 관리형 키 구성을 참조하세요.

Event Hubs 캡처

Event Hubs 캡처 기능을 사용하여 Event Hubs에서 스트리밍 데이터를 자동으로 캡처하고 Azure Blob Storage 또는 Data Lake Storage 계정에 저장할 수 있습니다.

이 기능은 이벤트를 보관하는 데 유용합니다. 예를 들어 규정 준수를 위해 테넌트에 대한 이벤트를 보관해야 하는 경우 테넌트별 네임스페이스를 배포하고 Event Hubs 캡처를 사용하여 테넌트별 Azure Storage 계정에 이벤트를 보관할 수 있습니다. 공유 네임스페이스의 테넌트별 이벤트 허브에서 Event Hubs 캡처를 사용하도록 설정할 수도 있습니다.

자세한 내용은 Azure Blob Storage 또는 Azure Data Lake Storage의 Azure Event Hubs를 통해 이벤트 캡처를 참조 하세요.

지리적 재해 복구

지역 재해 복구는 주 네임스페이스에서 주 네임스페이스와 쌍을 이루는 보조 네임스페이스로 Event Hubs 네임스페이스의 전체 구성을 지속적으로 복제본(replica). 이 기능은 지역 오류와 같은 재해로부터 복구하는 데 도움이 될 수 있습니다.

예를 들어 네임스페이스 수준에서 테넌트를 격리하는 경우 테넌트 네임스페이스의 구성을 보조 지역으로 복제본(replica) 테넌트의 중단 및 실패에 대한 보호를 제공할 수 있습니다.

자세한 내용은 Azure Event Hubs - 지리적 재해 복구를 참조하세요.

참고 항목

작업의 연속성을 보호하기 위해 지역 재해 복구는 주 네임스페이스의 구성을 보조 네임스페이스로 복제본(replica). 이벤트 데이터를 복제본(replica) 않으며 기본 네임스페이스에 사용하는 Microsoft Entra RBAC 할당을 복제본(replica) 않습니다. 자세한 내용은 다중 사이트 및 다중 지역 페더레이션을 참조하세요.

IP 방화벽 규칙

IP 방화벽 규칙을 사용하여 네임스페이스에 대한 액세스를 제어할 수 있습니다. 네임스페이스 수준에서 테넌트 격리하는 경우 허용된 IP 주소 또는 주소 범위에서 시작된 클라이언트에서만 연결을 허용하도록 네임스페이스를 구성할 수 있습니다.

자세한 내용은 다음을 참조하세요.

참가자

Microsoft에서 이 문서를 유지 관리합니다. 원래 다음 기여자가 작성했습니다.

보안 주체 작성자:

  • Will Velida | FastTrack for Azure 고객 엔지니어 2

기타 기여자:

비공개 LinkedIn 프로필을 보려면 LinkedIn에 로그인하세요.

다음 단계