Azure Service Bus-질문과 대답 (FAQ)Azure Service Bus - Frequently asked questions (FAQ)

이 문서는 Microsoft Azure Service Bus에 대한 일부 자주 묻는 질문에 대해 설명합니다.This article discusses some frequently asked questions about Microsoft Azure Service Bus. 또한 일반적인 Azure 가격 책정 및 지원 정보는 Azure 지원 FAQ에서 확인할 수 있습니다.You can also visit the Azure Support FAQs for general Azure pricing and support information.

참고

이 문서는 새 Azure PowerShell Az 모듈을 사용하도록 업데이트되었습니다.This article has been updated to use the new Azure PowerShell Az module. AzureRM 모듈은 적어도 2020년 12월까지 버그 수정을 수신할 예정이므로 계속 사용하셔도 됩니다.You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. 새 Az 모듈 및 AzureRM 호환성에 대한 자세한 내용은 새 Azure PowerShell Az 모듈 소개를 참조하세요.To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Az 모듈 설치 지침은 Azure PowerShell 설치를 참조하세요.For Az module installation instructions, see Install Azure PowerShell.

Azure Service Bus에 대한 일반적인 질문General questions about Azure Service Bus

Azure Service Bus란?What is Azure Service Bus?

Azure Service Bus 은 분리 된 시스템 간에 데이터를 보낼 수 있도록 하는 비동기 메시징 클라우드 플랫폼입니다.Azure Service Bus is an asynchronous messaging cloud platform that enables you to send data between decoupled systems. Microsoft는이 기능을 서비스로 제공 합니다. 즉,이 기능을 사용 하기 위해 자체 하드웨어를 호스트할 필요가 없습니다.Microsoft offers this feature as a service, which means that you don't need to host your own hardware to use it.

Service Bus 네임스페이스란?What is a Service Bus namespace?

네임 스페이스 는 응용 프로그램 내에서 Service Bus 리소스의 주소를 지정 하기 위한 범위 지정 컨테이너를 제공 합니다.A namespace provides a scoping container for addressing Service Bus resources within your application. 네임스페이스를 만드는 작업은 Service Bus를 사용하는 데 필요하고 Service Bus를 시작하는 첫 번째 단계 중 하나입니다.Creating a namespace is necessary to use Service Bus and is one of the first steps in getting started.

Azure Service Bus 큐란?What is an Azure Service Bus queue?

Service Bus 큐는 메시지가 저장되는 엔터티입니다.A Service Bus queue is an entity in which messages are stored. 큐는 서로 통신해야 하는 여러 애플리케이션 또는 분산된 애플리케이션의 여러 부분이 있는 경우에 유용합니다.Queues are useful when you have multiple applications, or multiple parts of a distributed application that need to communicate with each other. 큐는 여러 제품(메시지)를 해당 위치에서 받고 보내는 배포 센터와 비슷합니다.The queue is similar to a distribution center in that multiple products (messages) are received and then sent from that location.

Azure Service Bus 토픽 및 구독이란?What are Azure Service Bus topics and subscriptions?

토픽은 큐로 시각화할 수 있고 여러 구독을 사용하는 경우 더 풍부한 메시징 모델이 되며 기본적으로는 일대다 통신 도구입니다.A topic can be visualized as a queue and when using multiple subscriptions, it becomes a richer messaging model; essentially a one-to-many communication tool. 이 게시/구독 모델(또는 pub/sub)을 사용하면 여러 애플리케이션에서 받은 메시지를 여러 구독을 사용하여 토픽에 메시지를 전송하는 애플리케이션을 활성화합니다.This publish/subscribe model (or pub/sub) enables an application that sends a message to a topic with multiple subscriptions to have that message received by multiple applications.

분할된 엔터티란?What is a partitioned entity?

일반적인 큐 또는 항목은 단일 메시지 broker에서 처리되며 하나의 메시징 저장소에 저장됩니다.A conventional queue or topic is handled by a single message broker and stored in one messaging store. 기본 및 표준 메시징 계층 에서만 지원 되며 분할 된 큐 또는 토픽 은 여러 메시지 브로커에 의해 처리 되 고 여러 메시징 저장소에 저장 됩니다.Supported only in the Basic and Standard messaging tiers, a partitioned queue, or topic is handled by multiple message brokers and stored in multiple messaging stores. 즉, 분할된 큐 또는 항목의 전체 처리량은 단일 메시지 broker 또는 메시징 저장소의 성능으로 제한되지 않습니다.This feature means that the overall throughput of a partitioned queue or topic is no longer limited by the performance of a single message broker or messaging store. 또한 메시징 저장소의 일시적인 중단은 분할 된 큐 또는 토픽을 사용할 수 없게 렌더링 하지 않습니다.Also, a temporary outage of a messaging store doesn't render a partitioned queue or topic unavailable.

분할 된 엔터티를 사용 하는 경우 순서가 보장 되지 않습니다.Ordering isn't ensured when using partitioned entities. 파티션을 사용할 수 없는 이벤트에서도 여전히 메세지를 보내고 다른 파티션에서 메시지를 수신할 수 있습니다.In the event that a partition is unavailable, you can still send and receive messages from the other partitions.

분할된 엔터티는 프리미엄 SKU에서 지원되지 않습니다.Partitioned entities are no longer supported in the Premium SKU.

방화벽에서 열어야 하는 포트는 어느 것인가요?What ports do I need to open on the firewall?

Azure Service Bus에서 다음 프로토콜을 사용하여 메시지를 주고받을 수 있습니다.You can use the following protocols with Azure Service Bus to send and receive messages:

  • AMQP(고급 메시지 큐 프로토콜)Advanced Message Queuing Protocol (AMQP)
  • SBMP(Service Bus 메시징 프로토콜)Service Bus Messaging Protocol (SBMP)
  • HTTPHTTP

이러한 프로토콜을 사용하여 Azure Event Hubs와 통신하기 위해 열어야 하는 아웃바운드 포트는 다음 표를 참조하세요.See the following table for the outbound ports you need to open to use these protocols to communicate with Azure Event Hubs.

프로토콜Protocol 포트Ports 세부 정보Details
AMQPAMQP 5671 및 56725671 and 5672 AMQP 프로토콜 가이드를 참조하세요.See AMQP protocol guide
SBMPSBMP 9350 ~ 93549350 to 9354 연결 모드 를 참조 하세요.See Connectivity mode
HTTP, HTTPSHTTP, HTTPS 80, 44380, 443

허용 목록에 추가 해야 하는 IP 주소는 무엇 인가요?What IP addresses do I need to add to allow list?

연결에 대 한 허용 목록에 추가할 올바른 IP 주소를 찾으려면 다음 단계를 수행 합니다.To find the right IP addresses to add to allow list for your connections, follow these steps:

  1. 명령 프롬프트에서 다음 명령을 실행합니다.Run the following command from a command prompt:

    nslookup <YourNamespaceName>.cloudapp.net
    
  2. Non-authoritative answer에서 반환된 IP 주소를 적어 둡니다.Note down the IP address returned in Non-authoritative answer. 이 IP 주소는 정적입니다.This IP address is static. 다른 클러스터로 네임스페이스를 복원하는 경우에만 변경될 수 있습니다.The only time it would change is if you restore the namespace on to a different cluster.

네임스페이스에 대해 영역 중복성을 사용하는 경우 몇 가지 추가 단계를 수행해야 합니다.If you use the zone redundancy for your namespace, you need to do a few additional steps:

  1. 먼저 네임스페이스에서 nslookup을 실행합니다.First, you run nslookup on the namespace.

    nslookup <yournamespace>.cloudapp.net
    
  2. 신뢰할 수 없는 응답 섹션에서 다음 형식 중 하나로 표시되는 이름을 적어 둡니다.Note down the name in the non-authoritative answer section, which is in one of the following formats:

    <name>-s1.cloudapp.net
    <name>-s2.cloudapp.net
    <name>-s3.cloudapp.net
    
  3. 접미사 s1, s2 및 s3를 포함하는 각 이름에 대해 nslookup을 실행하여 세 개의 가용성 영역에서 실행되는 세 인스턴스의 IP 주소를 모두 가져옵니다.Run nslookup for each one with suffixes s1, s2, and s3 to get the IP addresses of all three instances running in three availability zones,

네임 스페이스에서 메시지를 보내고 받는 클라이언트의 IP 주소는 어디에서 찾을 수 있나요?Where can I find the IP address of the client sending/receiving messages to/from a namespace?

네임 스페이스에서 메시지를 보내거나 받는 클라이언트의 IP 주소를 기록 하지 않습니다.We don't log the IP addresses of clients sending or receiving messages to/from your namespace. 키를 다시 생성 하 여 모든 기존 클라이언트가 인증에 실패 하 고 허용 되는 사용자 또는 응용 프로그램만이 네임 스페이스에 액세스할 수 있도록RBAC(역할 기반 액세스 제어) 설정을 검토 합니다.Regenerate keys so that all existing clients will fail to authenticate and review role-based access control (RBAC) settings to ensure that only allowed users or applications have access to the namespace.

프리미엄 네임 스페이스를 사용 하는 경우 IP 필터링, 가상 네트워크 서비스 끝점개인 끝점 을 사용 하 여 네임 스페이스에 대 한 액세스를 제한 합니다.If you're using a premium namespace, use IP filtering, virtual network service endpoints, and private endpoints to limit access to the namespace.

모범 사례Best practices

일부 Azure Service Bus 모범 사례는 무엇인가요?What are some Azure Service Bus best practices?

Service Bus를 사용한 성능 향상에 대한 모범 사례 참조 - 이 문서에서는 메시지를 교환할 때 성능을 최적화하는 방법을 설명합니다.See Best practices for performance improvements using Service Bus – this article describes how to optimize performance when exchanging messages.

엔터티를 만들기 전에 무엇을 알아야 하나요?What should I know before creating entities?

큐 및 토픽에서 다음 속성을 변경할 수 없습니다.The following properties of a queue and topic are immutable. 엔터티를 프로 비전 할 때 이러한 제한 사항을 고려해 야 합니다. 이러한 속성은 새 대체 엔터티를 만들지 않고 수정할 수 없기 때문입니다.Consider this limitation when you provision your entities, as these properties can't be modified without creating a new replacement entity.

  • 분할Partitioning
  • 세션Sessions
  • 중복 검색Duplicate detection
  • Express 엔터티Express entity

가격 책정Pricing

이 섹션은 Service Bus 가격 책정 구조에 대한 일부 자주 묻는 질문을 답변합니다.This section answers some frequently asked questions about the Service Bus pricing structure.

Service Bus 가격 및 대금 청구 문서에서는 Service Bus의 요금 청구 기준에 대해 설명합니다.The Service Bus pricing and billing article explains the billing meters in Service Bus. Service Bus 가격 책정 옵션에 대한 특정 정보는 Service Bus 가격 책정 세부 정보를 참조하세요.For specific information about Service Bus pricing options, see Service Bus pricing details.

또한 일반적인 Azure 가격 책정 정보는 Azure 지원 FAQ에서 확인할 수 있습니다.You can also visit the Azure Support FAQs for general Azure pricing information.

Service Bus 요금을 어떻게 청구하나요?How do you charge for Service Bus?

Service Bus 가격 책정에 대한 전체 내용은 Service Bus 가격 책정 세부 정보를 참조하세요.For complete information about Service Bus pricing, see Service Bus pricing details. 언급된 가격 외에도 애플리케이션이 프로비전되는 데이터 센터의 외부에서 송신을 위해 연결된 데이터 전송에 요금이 부과됩니다.In addition to the prices noted, you are charged for associated data transfers for egress outside of the data center in which your application is provisioned.

Service Bus를 어떻게 사용하면 데이터가 전송의 대상이 되나요?What usage of Service Bus is subject to data transfer? 무엇 인가요?What isn't?

지정된 Azure 지역 내에서 데이터 전송은 비용뿐만 아니라 인바운드 데이터 전송 없이 제공됩니다.Any data transfer within a given Azure region is provided at no charge, as well as any inbound data transfer. 지역 외부의 데이터 전송은 여기에서 찾을 수 있는 송신 요금이 청구됩니다.Data transfer outside a region is subject to egress charges, which can be found here.

Service Bus는 스토리지에 대한 요금을 청구하나요?Does Service Bus charge for storage?

아니요.No. Service Bus는 저장소에 대해 요금이 청구 되지 않습니다.Service Bus doesn't charge for storage. 그러나 큐/토픽 마다 지속 될 수 있는 최대 데이터 양을 제한 하는 할당량이 있습니다.However, there's a quota limiting the maximum amount of data that can be persisted per queue/topic. 다음 FAQ를 참조하세요.See the next FAQ.

Service Bus 표준 네임 스페이스가 있습니다.I have a Service Bus Standard namespace. 리소스 그룹 ' $system '에 요금이 표시 되는 이유는 무엇 인가요?Why do I see charges under resource group '$system'?

최근 청구 구성 요소를 업그레이드 Azure Service Bus.Azure Service Bus recently upgraded the billing components. 이러한 변경으로 인해 Service Bus 표준 네임 스페이스가 있는 경우 리소스 그룹 ' $system ' 아래에 리소스 '/subscriptions/<azure_subscription_id>/Hsourceg/$system/providers/Microsoft.ServiceBus/namespaces/$system '에 대 한 줄 항목이 표시 될 수 있습니다.Because of this change, if you have a Service Bus Standard namespace, you may see line items for the resource '/subscriptions/<azure_subscription_id>/resourceGroups/$system/providers/Microsoft.ServiceBus/namespaces/$system' under resource group '$system'.

이러한 요금은 Service Bus 표준 네임 스페이스를 프로 비전 한 Azure 구독 당 기본 요금을 나타냅니다.These charges represent the base charge per Azure subscription that has provisioned a Service Bus Standard namespace.

이러한 요금은 새로운 것이 아니라 이전 청구 모델에도 존재 한다는 것을 명심 해야 합니다.It's important to note that these charges aren't new, that is, they existed in the previous billing model too. 지금은 ' $system ' 아래에 나열 됩니다.The only change is that they're now listed under '$system'. ' $System ' 리소스 ID의 특정 리소스에 연결 되지 않은 구독 수준 요금을 그룹화 하는 새로운 청구 시스템의 제약 조건으로 인해 수행 됩니다.It's done because of constraints in the new billing system that groups subscription level charges, not tied to a specific resource, under the '$system' resource ID.

할당량Quotas

Service Bus 제한 및 할당량 목록은 Service Bus 할당량 개요를 참조하세요.For a list of Service Bus limits and quotas, see the Service Bus quotas overview.

1MB를 초과하는 메시지 크기를 처리하는 방법How to handle messages of size > 1 MB?

Service Bus 메시징 서비스(큐 및 토픽/구독)를 사용하면 애플리케이션이 최대 256KB(표준 계층) 또는 1MB(프리미엄 계층) 크기의 메시지를 보낼 수 있습니다.Service Bus messaging services (queues and topics/subscriptions) allow application to send messages of size up to 256 KB (standard tier) or 1 MB (premium tier). 크기가 1mb를 초과 하는 메시지를 처리 하는 경우 이 블로그 게시물에 설명 된 클레임 검사 패턴을 사용 합니다.If you're dealing with messages of size greater than 1 MB, use the claim check pattern described in this blog post.

문제 해결Troubleshooting

네임스페이스를 다른 구독에서 삭제한 후 만들 수 없는 이유는 무엇인가요?Why am I not able to create a namespace after deleting it from another subscription?

구독에서 네임스페이스를 삭제한 후에 다른 구독에서 동일한 이름으로 다시 만들려면 4시간 정도 기다려야 합니다.When you delete a namespace from a subscription, wait for 4 hours before recreating it with the same name in another subscription. 그렇지 않으면 다음 오류 메시지가 표시될 수 있습니다. Namespace already existsOtherwise, you may receive the following error message: Namespace already exists.

Azure Service Bus API 및 해당 제안된 작업에 의해 생성된 일부 예외는 무엇인가요?What are some of the exceptions generated by Azure Service Bus APIs and their suggested actions?

가능한 Service Bus 예외의 목록은 예외 개요를 참조하세요.For a list of possible Service Bus exceptions, see Exceptions overview.

공유 액세스 서명이란 무엇이고 어떤 언어가 서명 생성을 지원하나요?What is a Shared Access Signature and which languages support generating a signature?

공유 액세스 서명은 SHA-256 보안 해시 또는 URI에 따른 인증 메커니즘입니다.Shared Access Signatures are an authentication mechanism based on SHA-256 secure hashes or URIs. Node.js, PHP, Java, Python 및 c #에서 고유한 서명을 생성 하는 방법에 대 한 자세한 내용은 공유 액세스 서명 문서를 참조 하세요.For information about how to generate your own signatures in Node.js, PHP, Java, Python, and C#, see the Shared Access Signatures article.

구독 및 네임스페이스 관리Subscription and namespace management

다른 Azure 구독으로 네임스페이스를 마이그레이션하려면 어떻게 해야 하나요?How do I migrate a namespace to another Azure subscription?

Azure Portal 또는 PowerShell 명령을 사용하여 Azure 구독 간에 네임스페이스를 이동할 수 있습니다.You can move a namespace from one Azure subscription to another, using either the Azure portal or PowerShell commands. 작업을 실행 하려면 네임 스페이스가 이미 활성화 되어 있어야 합니다.To execute the operation, the namespace must already be active. 명령을 실행하는 사용자는 원본 및 대상 구독에 대한 관리자여야 합니다.The user executing the commands must be an administrator on both the source and target subscriptions.

포털Portal

Azure Portal을 사용하여 Service Bus 네임스페이스를 다른 구독으로 마이그레이션하려면 여기에 있는 지침을 따르세요.To use the Azure portal to migrate Service Bus namespaces to another subscription, follow the directions here.

PowerShellPowerShell

다음 PowerShell 명령 시퀀스는 네임스페이스를 Azure 구독 간에 이동합니다.The following sequence of PowerShell commands moves a namespace from one Azure subscription to another. 이 작업을 실행하려면 네임스페이스 이미 활성 상태여야 하며 PowerShell 명령을 실행하는 사용자는 원본 및 대상 구독의 관리자여야 합니다.To execute this operation, the namespace must already be active, and the user running the PowerShell commands must be an administrator on both the source and target subscriptions.

# Create a new resource group in target subscription
Select-AzSubscription -SubscriptionId 'ffffffff-ffff-ffff-ffff-ffffffffffff'
New-AzResourceGroup -Name 'targetRG' -Location 'East US'

# Move namespace from source subscription to target subscription
Select-AzSubscription -SubscriptionId 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa'
$res = Find-AzResource -ResourceNameContains mynamespace -ResourceType 'Microsoft.ServiceBus/namespaces'
Move-AzResource -DestinationResourceGroupName 'targetRG' -DestinationSubscriptionId 'ffffffff-ffff-ffff-ffff-ffffffffffff' -ResourceId $res.ResourceId

다음 단계Next steps

Service Bus에 대한 자세한 내용은 다음 문서를 참조하세요.To learn more about Service Bus, see the following articles: