Azure Service Bus - よく寄せられる質問 (FAQ)Azure Service Bus - Frequently asked questions (FAQ)

この記事では、Microsoft Azure Service Bus についてよく寄せられる質問 (FAQ) とその回答について説明します。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 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 を使用するには名前空間を作成する必要があります。これは最初に実行する手順の 1 つです。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.

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?

従来のキューまたはトピックは、単一のメッセージ ブローカーで処理されて 1 つのメッセージング ストアに格納されます。A conventional queue or topic is handled by a single message broker and stored in one messaging store. Basic および Standard のメッセージング プランのみでサポートされているパーティション分割されたキューまたはトピックは、複数のメッセージ ブローカーによって処理され、複数のメッセージング ストアに格納されます。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. この機能により、パーティション分割されたキューまたはトピックの全体のスループットは、単一のメッセージ ブローカーまたはメッセージング ストアのパフォーマンスによって制限されなくなりました。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. また、1 つのメッセージング ストアが一時的に停止しても、パーティション分割されたキューまたはトピックは使用することができます。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.

パーティション分割されたエンティティは Premium SKU ではサポートされなくなりました。Partitioned entities are no longer supported in the Premium SKU.

Azure Service Bus では、顧客データはどこに格納されますか?Where does Azure Service Bus store customer data?

Azure Service Bus は顧客データを格納します。Azure Service Bus stores customer data. このデータは、Azure Service Bus によって 1 つのリージョンに自動的に格納されるため、このサービスは、セキュリティ センターに指定されているものも含めて、リージョンのデータ所在地の要件を自動的に満たします。This data is automatically stored by Service Bus in a single region, so this service automatically satisfies in region data residency requirements including those specified in the Trust Center.

ファイアウォールで開く必要があるのはどのポートですか。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:

  • Advanced Message Queuing Protocol (AMQP)Advanced Message Queuing Protocol (AMQP)
  • Service Bus メッセージング プロトコル (SBMP)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.

ProtocolProtocol PortPorts 詳細Details
AMQPAMQP 5671 と 56725671 and 5672 AMQP プロトコル ガイドに関するページを参照してくださいSee AMQP protocol guide
SBMPSBMP 9350 から 93549350 to 9354 Connectivity mode」 (接続モード) を参照してください。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>.servicebus.windows.net
    
  2. Non-authoritative answer で返された IP アドレスをメモします。Note down the IP address returned in Non-authoritative answer.

名前空間にゾーン冗長性を使用している場合は、次の追加手順を実行する必要があります。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>.servicebus.windows.net
    
  2. non-authoritative answer セクションの名前をメモします。これは、次のいずれかの形式になります。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 を実行し、3 つの可用性ゾーンで実行されている 3 つのインスタンスすべての 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,

    注意

    nslookup コマンドによって返された IP アドレスは、静的 IP アドレスではありません。The IP address returned by the nslookup command isn't a static IP address. ただし、基になるデプロイが削除されるか別のクラスターに移動されるまでは変わりません。However, it remains constant until the underlying deployment is deleted or moved to a different cluster.

名前空間との間でメッセージを送受信するクライアントの 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.

Premium 名前空間を使用している場合は、名前空間へのアクセスを制限するには、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 の価格体系についてよく寄せられる質問 (FAQ) とその回答を紹介します。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 Standard 名前空間があります。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 Standard 名前空間がある場合は、リソース グループ "$system" の下に、リソース "/subscriptions/<azure_subscription_id>/resourceGroups/$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 Standard 名前空間をプロビジョニングした 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 (クォータ)Quotas

Service Bus の制限とクォータの一覧については、Service Bus のクォータの概要に関するページを参照してください。For a list of Service Bus limits and quotas, see the Service Bus quotas overview.

1 MB を超えるサイズのメッセージを処理する方法を教えてくださいHow to handle messages of size > 1 MB?

Service Bus メッセージング サービス (キューおよびトピック/サブスクリプション) では、アプリケーションは、最大 256 KB (Standard レベル) または 1 MB (Premium レベル) のサイズのメッセージを送信できます。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). 1 MB を超えるサイズのメッセージを扱う場合は、このブログの投稿で説明されている要求チェック パターンを使用します。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 exists というエラー メッセージが表示される場合があります。Otherwise, 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.

Shared Access Signature とは何ですか。どの言語で署名の生成がサポートされますか。What is a Shared Access Signature and which languages support generating a signature?

Shared Access 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# で独自の署名を生成する方法については、Shared Access Signature に関する記事を参照してください。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: