amazon mq - 開発者ガイド...amazon mq 開発者ガイド amazon mq...

145
Amazon MQ 開発者ガイド

Upload: others

Post on 08-Apr-2020

13 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ開発者ガイド

Page 2: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイド

Amazon MQ: 開発者ガイドCopyright © 2020 Amazon Web Services, Inc. and/or its affiliates. All rights reserved.

Amazon's trademarks and trade dress may not be used in connection with any product or service that is not Amazon's,in any manner that is likely to cause confusion among customers, or in any manner that disparages or discreditsAmazon. All other trademarks not owned by Amazon are the property of their respective owners, who may or may notbe affiliated with, connected to, or sponsored by Amazon.

Page 3: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイド

Table of ContentsAmazon MQ とは ............................................................................................................................... 1

Amazon MQ の主な利点は何ですか。 ............................................................................................ 1Amazon MQ は、Amazon SQS や Amazon SNS と、どう違うのですか。 ........................................... 1Amazon MQ の使用を開始するには ............................................................................................... 2ご意見をお待ちしております ........................................................................................................ 2

セットアップ ..................................................................................................................................... 3ステップ 1: AWS アカウントおよび IAM 管理ユーザーを作成する ..................................................... 3ステップ 2: IAM ユーザーを作成して AWS 認証情報を取得する ........................................................ 3ステップ 3: コード例を使用する準備を整える ................................................................................. 4次のステップ ............................................................................................................................. 4

使用開始 ............................................................................................................................................ 5前提条件 .................................................................................................................................... 5ステップ 1: ActiveMQ ブローカーの作成 ........................................................................................ 5ステップ 2: ブローカーに Java アプリケーションを接続する ............................................................ 6

前提条件 ............................................................................................................................ 7メッセージプロデューサーの作成およびメッセージの送信 ........................................................ 8メッセージコンシューマーの作成およびメッセージの受信 ........................................................ 9

ステップ 3: ブローカーの削除 .................................................................................................... 10次のステップ ............................................................................................................................ 10

チュートリアル ................................................................................................................................. 11ブローカーの作成と設定 ............................................................................................................ 11

ステップ 1: 基本的なブローカー設定を構成する .................................................................... 11ステップ 2: (オプション) その他のブローカーを設定する ........................................................ 12ステップ 3: ブローカー作成の完了 ...................................................................................... 13パブリックアクセシビリティが無効なブローカーの ActiveMQ ウェブコンソールへのアクセス ...... 14

ブローカーのネットワークの作成と設定 ....................................................................................... 15前提条件 .......................................................................................................................... 16ステップ 1: ブローカー間のトラフィックを許可する .............................................................. 16ステップ 2: ブローカー用のネットワークコネクターを設定する ............................................... 17次のステップ .................................................................................................................... 18

ブローカー設定の編集 ............................................................................................................... 19ブローカーオプションを編集するには .................................................................................. 20

設定を作成し、適用する ............................................................................................................ 20ステップ 1: 設定を最初から作成する ................................................................................... 21ステップ 2: 新しい設定のリビジョンを作成する .................................................................... 21ステップ 3: 設定のリビジョンをブローカーに適用する ........................................................... 22

設定の編集と設定のリビジョンの管理 .......................................................................................... 23以前の設定のリビジョンを表示するには ............................................................................... 24現在の設定のリビジョンを編集するには ............................................................................... 20設定のリビジョンをブローカーに適用するには ...................................................................... 25ブローカーを前回の設定のリビジョンにロールバックするには ................................................ 25

ブローカーに Java アプリケーションを接続する ........................................................................... 26前提条件 .......................................................................................................................... 26メッセージプロデューサーを作成してメッセージを送信するには ............................................. 28メッセージコンシューマーを作成してメッセージを受信するには ............................................. 29

ブローカーのリストおよびブローカー詳細の表示 ........................................................................... 30ブローカーをリストしてブローカーの詳細を表示するには ...................................................... 30

ブローカーユーザーの作成と管理 ................................................................................................ 31新しいユーザーを作成するには ........................................................................................... 32既存のユーザーを編集するには ........................................................................................... 32既存のユーザーを削除するには ........................................................................................... 33

ブローカーの再起動 .................................................................................................................. 33Amazon MQ ブローカーを再起動するには ............................................................................ 33

ブローカーの削除 ...................................................................................................................... 34

iii

Page 4: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイド

Amazon MQ ブローカーを削除するには ............................................................................... 34CloudWatch メトリクスへのアクセス ........................................................................................... 34

AWS Management Console ................................................................................................ 35AWS Command Line Interface ............................................................................................ 37Amazon CloudWatch API ................................................................................................... 37

Amazon MQ の詳細 .......................................................................................................................... 38基本的要素 ............................................................................................................................... 38

ブローカー ....................................................................................................................... 38設定 ................................................................................................................................ 44エンジン .......................................................................................................................... 44ストレージ ....................................................................................................................... 45User ................................................................................................................................ 46

ブローカーのアーキテクチャ ...................................................................................................... 46単一インスタンスブローカー .............................................................................................. 47高可用性対応アクティブ/スタンバイブローカー ..................................................................... 50ブローカーのネットワーク ................................................................................................. 51ブローカー設定のライフサイクル ........................................................................................ 61

ブローカー設定パラメータ ......................................................................................................... 62Spring XML 設定ファイルの使用 ......................................................................................... 62許可された要素 ................................................................................................................. 63許可された属性 ................................................................................................................. 65許可されたコレクション .................................................................................................... 72

Java の使用例 .......................................................................................................................... 78前提条件 .......................................................................................................................... 78AmazonMQExample.java .................................................................................................... 80

リソースのタグ付け .................................................................................................................. 85コスト割り当てのタグ付け ................................................................................................. 85Amazon MQ コンソールでのタグの管理 ............................................................................... 86Amazon MQ API アクションを使用した管理 ......................................................................... 87

Amazon MQ への移行 ....................................................................................................................... 88サービスを中断しない ............................................................................................................... 88

サービスを中断せずに Amazon MQ に移行するには ............................................................... 89サービスを中断する .................................................................................................................. 90

サービスを中断して Amazon MQ に移行するには .................................................................. 91ベストプラクティス .......................................................................................................................... 93

Amazon MQ の安全な使用 ......................................................................................................... 93パブリックアクセスビリティのないブローカーを優先する ...................................................... 93TLS の補完としてクライアント側の暗号化を必ず使用する ...................................................... 93常に認証マップを設定する ................................................................................................. 94不要なプロトコルのブロック .............................................................................................. 94

Amazon MQ への接続 ............................................................................................................... 94Amazon MQ Elastic Network Interface を絶対に変更または削除しない ...................................... 95常に接続プールを使用する ................................................................................................. 95常にフェイルオーバートランスポートを使用して複数のブローカーエンドポイントに接続する ..... 96メッセージセレクタを使用しない ........................................................................................ 96永続サブスクリプションよりも仮想送信先を優先する ............................................................ 96

効果的な Amazon MQ のパフォーマンスを維持する ....................................................................... 97遅いコンシューマーのキューで同時保存とディスパッチを無効にする ....................................... 97最良なスループットのために正しいブローカーインスタンスタイプを選択する ........................... 97最良なスループットのために正しいブローカーストレージタイプを選択する .............................. 98ブローカーのネットワークを正しく設定する ......................................................................... 98

準備済み XA トランザクションを復旧して低速な再起動を回避する .................................................. 99クォータ ........................................................................................................................................ 101

ブローカー ............................................................................................................................. 101設定 ...................................................................................................................................... 101ユーザー ................................................................................................................................ 102データストレージ .................................................................................................................... 102

iv

Page 5: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイド

API スロットリング ................................................................................................................. 103モニタリングとロギング ................................................................................................................... 104

CloudWatch を使用したブローカーのモニタリング ...................................................................... 104ブローカーのメトリクス ................................................................................................... 104送信先 (キューとトピック) メトリクス ............................................................................... 107

CloudTrail を使用して API コールのログを記録する ..................................................................... 108CloudTrail 内の Amazon MQ 情報 ..................................................................................... 109Amazon MQ ログファイルのエントリの例 .......................................................................... 110

CloudWatch Logs にログを発行するよう Amazon MQ を設定する .................................................. 111CloudWatch Logs でのログ記録の構造を理解する ................................................................ 112Amazon MQ ユーザーへの CreateLogGroup アクセス許可の追加 ........................................... 112Amazon MQ のリソースベースのポリシーを設定する ........................................................... 113CloudWatch Logs 設定のトラブルシューティング ................................................................ 114

セキュリティ .................................................................................................................................. 115タグベースのポリシー .............................................................................................................. 115Authentication ......................................................................................................................... 115暗号化 ................................................................................................................................... 117

保管時の暗号化 ............................................................................................................... 117転送中の暗号化 ............................................................................................................... 117

API 認証と認可 ....................................................................................................................... 118Amazon MQ ブローカーを作成するために必要な IAM アクセス許可 ....................................... 118REST API 権限リファレンス ............................................................................................ 119サポートされるリソースレベルのアクセス許可 .................................................................... 120

メッセージングの認証および許可 .............................................................................................. 121関連リソース .................................................................................................................................. 122

Amazon MQ リソース .............................................................................................................. 122Apache ActiveMQ リソース ...................................................................................................... 122

リリースノート ............................................................................................................................... 124ドキュメント履歴 .................................................................................................................... 131

AWS Glossary ................................................................................................................................ 140

v

Page 6: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドAmazon MQ の主な利点は何ですか。

Amazon MQ とはAmazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、このサービスにより、クラウド内のメッセージブローカーへの移行が容易になります。メッセージブローカーを使用すると、ソフトウェアアプリケーションおよびコンポーネントが、さまざまなプログラミング言語、オペレーティングシステム、正式なメッセージングプロトコルを使用して通信できます。

Amazon MQ は、ご使用の既存のアプリケーションおよびサービスと連携します。独自のメッセージングシステムを管理、運用、保守する必要はありません。

トピック• Amazon MQ の主な利点は何ですか。 (p. 1)• Amazon MQ は、Amazon SQS や Amazon SNS と、どう違うのですか。 (p. 1)• Amazon MQ の使用を開始するには (p. 2)• ご意見をお待ちしております (p. 2)

Amazon MQ の主な利点は何ですか。• セキュリティ – だれがブローカーを作成および変更できるか (p. 118)、ActiveMQ ブローカーに対し

てだれがメッセージを送受信できるか (p. 121)を制御できます。Amazon MQ は、安全に保存し管理している暗号化キーを使用して、保管時および転送時のメッセージを暗号化します。

• 耐久性 – メッセージの安全性を確保するために、Amazon MQ によってメッセージは冗長共有ストレージ (p. 45)に保存されます。

• 可用性 – 単一インスタンスブローカー (p. 47) (1 つのアベイラビリティーゾーンの 1 つのブローカーで構成される)、または高可用性対応アクティブ/スタンバイブローカー (p. 50)を作成できます (2 つの異なるアベイラビリティーゾーンにある 2 つのブローカーで構成される)。選択したタイプのブローカーに応じて、耐久性の高いインフラストラクチャが Amazon MQ によって自動的にプロビジョンされます。

• 互換性 – Amazon MQ は業界標準の API とプロトコルをサポートしているため、アプリケーションコード (p. 78)を書き直すことなく、既存のメッセージブローカーから移行 (p. 88)できます。

• オペレーションのオフロード – 事前定義された送信先、送信先ポリシー、権限付与ポリシー、プラグインなど、ActiveMQ ブローカーのさまざまな側面を設定 (p. 62)できます。Amazon MQ によって、ネットワーク転送やストレージなどの一部の設定要素が制御されて、クラウド内のメッセージングシステムのメンテナンスと管理がシンプルになります。

Amazon MQ は、Amazon SQS や Amazon SNSと、どう違うのですか。

Amazon MQ はマネージド型メッセージブローカーサービスであり、多くの一般的なメッセージブローカーと互換性があります。API (JMS など) や、プロトコル (AMQP、MQTT、OpenWire、STOMP など) との互換性に依存する既存のメッセージブローカーからのアプリケーション移行に Amazon MQ をお勧めします。

Amazon SQS および Amazon SNS はキューおよびトピックサービスであり、高度にスケーラブルでシンプルに使用でき、メッセージブローカーをセットアップする必要がありません。新規のアプリケーションにはこれらのサービスをお勧めします。ほぼ無制限の拡張性とシンプルな API が利点です。

1

Page 7: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドAmazon MQ の使用を開始するには

Amazon MQ の使用を開始するには• Amazon MQ で最初のブローカーを作成するには、「Amazon MQ の使用開始 (p. 5)」を参照してく

ださい。• Amazon MQ の機能とアーキテクチャの詳細については、「Amazon MQ の詳細 (p. 38)」を参照して

ください。• Amazon MQ を最大限に活用するためのガイドラインと注意事項については、「Amazon MQ のベスト

プラクティス (p. 93)」を参照してください。• Amazon MQ REST API については、『Amazon MQ REST API リファレンス』を参照してください。• Amazon MQ AWS CLI コマンドの詳細については、「AWS CLI Command Reference の Amazon MQ」

を参照してください。

ご意見をお待ちしておりますご意見をお待ちしております。お問い合わせの場合は、Amazon MQ ディスカッションフォーラムを参照してください。

2

Page 8: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドステップ 1: AWS アカウントおよび IAM 管理ユーザーを作成する

Amazon MQ のセットアップAmazon MQ を使用するには、事前に次のステップを完了しておく必要があります。

トピック• ステップ 1: AWS アカウントおよび IAM 管理ユーザーを作成する (p. 3)• ステップ 2: IAM ユーザーを作成して AWS 認証情報を取得する (p. 3)• ステップ 3: コード例を使用する準備を整える (p. 4)• 次のステップ (p. 4)

ステップ 1: AWS アカウントおよび IAM 管理ユーザーを作成する

任意の AWS のサービスにアクセスするには、まず AWS アカウントを作成する必要があります。これは、AWS 製品を使用できる Amazon のアカウントです。AWS アカウントは、アクティビティおよび使用状況レポートの表示や、認証およびアクセスの管理に使用できます。

1. AWS ホームページに移動して、[AWS アカウントの作成] を選択します。2. 手順に従います。

サインアップ手順の一環として、通話呼び出しを受け取り、電話のキーパッドを用いて PIN を入力することが求められます。

3. AWS アカウントの作成が完了したら、IAM User Guide の手順に従って最初の IAM 管理者ユーザーおよびグループを作成します。

ステップ 2: IAM ユーザーを作成して AWS 認証情報を取得する

Amazon MQ 操作に IAM 管理者ユーザーを使用しないようにするには、Amazon MQ への管理アクセスが必要なユーザーごとに IAM ユーザーを作成することをお勧めします。

Amazon MQ を操作するには、AmazonMQFullAccess ポリシーと、IAM ユーザーに関連付けられた AWS認証情報が必要です。これらの認証情報は、アクセスキー ID とシークレットアクセスキーで構成されます。詳細については、IAM User Guideの「IAM とは」と AWS General Reference の「AWS セキュリティ認証情報」を参照してください。

1. AWS Identity and Access Management コンソールにサインインします。2. [ユーザー]、[ユーザーの追加] を選択します。3. [ユーザー名] に入力します (例: AmazonMQAdmin)。4. [Programmatic access (プログラムによるアクセス)] と [AWS Management Console アクセス] を選択

します。5. [Console password (コンソールのパスワード)] を設定して [Next: Permissions (次へ: アクセス許可)]

を選択します。6. [Set permissions for AmazonMQAdmin (AmazonMQAdmin のアクセス許可を設定する)] ページで、

[Attach existing policies directly (既存のポリシーを直接アタッチする)] を選択します。

3

Page 9: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドステップ 3: コード例を使用する準備を整える

7. フィルタに AmazonMQ を入力し、[AmazonMQFullAccess] を選択して、[Next: Review (次へ: レビュー)] を選択します。

8. [Review] ページで、[Create user] を選択します。

IAM ユーザーが作成され、[アクセスキー ID] が表示されます。例:

AKIAIOSFODNN7EXAMPLE9. 自分の [シークレットアクセスキー] を表示するには、[表示] を選択します。例:

wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

Important

シークレットアクセスキーは、認証情報を作成したときのみ表示またはダウンロードできます (ただし、新しい認証情報はいつでも作成できます)。

10. 認証情報をダウンロードするには、[Download .csv (.csv のダウンロード)] を選択します。このファイルは安全な場所に保管してください。

ステップ 3: コード例を使用する準備を整える以下のチュートリアルは、AWS Management Console および Java を使用して Amazon MQ および ActiveMQ を使用する方法を示します。サンプルコードを使用するには、Java Standard EditionDevelopment Kit をインストールし、コードを少し変更する必要があります。

Amazon MQ REST API および AWS SDK を使用して、プログラムでブローカーを作成して管理することもできます。

次のステップAmazon MQ を使用する準備ができたので、ブローカーを作成して (p. 5)、ブローカーに Java アプリケーションを接続する (p. 26)ことから開始します。

また、高度な Amazon MQ チュートリアル (p. 11)を使用できます。

ブローカーのネットワークの設定の詳細については、「ブローカーのネットワーク (p. 51)」を参照してください。

4

Page 10: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイド前提条件

Amazon MQ の使用開始このセクションでは、ブローカーの作成方法およびアプリケーションの接続方法を示して、Amazon MQに慣れていただくことができます。

以下の 3 分間のビデオでは、Amazon MQ ブローカーの作成と使用の概要を確認できます。

トピック• 前提条件 (p. 5)• ステップ 1: ActiveMQ ブローカーの作成 (p. 5)• ステップ 2: ブローカーに Java アプリケーションを接続する (p. 6)• ステップ 3: ブローカーの削除 (p. 10)• 次のステップ (p. 10)

前提条件開始する前に、「Amazon MQ のセットアップ (p. 3)」の手順を完了します。

ステップ 1: ActiveMQ ブローカーの作成ブローカーは、Amazon MQ で実行されるメッセージブローカー環境です。これは、Amazon MQ の基本的な構成要素です。 ブローカーインスタンスのクラス(m5、t2)および サイズ(large、micro)を組み合わせた記述がブローカーインスタンスタイプ(mq.m5.large など)です。詳細については、「ブローカー (p. 38)」を参照してください。

Amazon MQ の最初で最も一般的なタスクは、ブローカーの作成です。次の例では、AWS ManagementConsole を使用して基本的なブローカーを作成する方法を示します。

1. Sign in to the Amazon MQ console.2. [Select deployment and storage] ページの [Deployment mode and storage type] セクションで、以下の

操作を行います。

a. [デプロイモード] (例: [Active/standby broker]) を選択します。詳細については、Amazon MQ ブローカーのアーキテクチャ (p. 46) を参照してください。

• 単一インスタンスブローカー は 1 つのアベイラビリティーゾーンの 1 つのブローカーで構成される。ブローカーは、アプリケーションおよび Amazon EFS (デフォルト)、またはAmazon EBS と通信します。 詳細については、「Amazon MQ 単一インスタンスブローカー (p. 47)」を参照してください。

• 高可用性対応アクティブ/スタンバイブローカー は 2 つの異なるアベイラビリティーゾーンにある 2 つのブローカーで構成される、冗長なペアで設定されています。これらのブローカーは、アプリケーションおよび Amazon EFS と同期的に通信します。 詳細については、「Amazon MQ 高可用性対応アクティブ/スタンバイブローカー (p. 50)」を参照してください。

• ブローカーのネットワークのサンプル設計図の詳細については、「サンプル設計図 (p. 53)」を参照してください。

5

Page 11: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドステップ 2: ブローカーに Javaアプリケーションを接続する

b. [ストレージタイプ] (例: [EBS]) を選択します。詳細については、ブローカーストレージ (p. 45)を参照してください。

Note

Amazon EBS は 1 つのアベイラビリティーゾーン内でデータをレプリケートし、アクティブ/スタンバイ (p. 50)のデプロイモードをサポートしません。

c. [Next] を選択します。3. [Configure settings (設定の構成)] ページの [Details (詳細)] セクションで、以下の操作を行います。

a. [ブローカー名] を入力します。b. [ブローカーインスタンスタイプ] (例: [mq.m5.large]) を選択します。詳細については、ブローカー

インスタンスタイプ (p. 40) を参照してください。4. [ActiveMQ Web Console access (ActiveMQ ウェブコンソールのアクセス)] セクションで、[Username

(ユーザー名)] と [Password (パスワード)] を入力します。5. [デプロイ] を選択します。

Amazon MQ でブローカーを作成している間は、[Creation in progress] ステータスが表示されます。

ブローカーの作成には約 15 分。かかります。

ブローカーが正常に作成されると、Amazon MQ に [Running] ステータスが表示されます。

6. [MyBroker] を選択します。

[MyBroker] ページの [Connect] セクションで、ブローカーの [ActiveMQ Web Console] の URL (以下の例を参照) を書き留めます。

https://b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.mq.us-east-2.amazonaws.com:8162

ブローカーのワイヤレベルプロトコルの [エンドポイント] も書き留めます。OpenWire エンドポイントの例を以下に示します。

ssl://b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.mq.us-east-2.amazonaws.com:61617

ステップ 2: ブローカーに Java アプリケーションを接続する

Amazon MQ ブローカーを作成したら、そのブローカーにアプリケーションを接続できます。次の例では、Java Message Service (JMS) を使用して、ブローカーへの接続の作成、キューの作成、およびメッセージの送信を行う方法を示します。実際に機能する完全な Java のサンプルについては、「Java の使用例 (p. 78)」を参照してください。

ActiveMQ ブローカーには、さまざまな ActiveMQ クライアント を使用して接続できます。ActiveMQ クライアント を使用することをお勧めします。

6

Page 12: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイド前提条件

前提条件VPC 属性 を有効にするVPC 内でブローカにアクセスできるようにするには、enableDnsHostnames およびenableDnsSupport VPC 属性を有効にする必要があります。詳細については、Amazon VPC User Guideの「VPC の DNS サポート」を参照してください。

インバウンド接続の有効化1. Sign in to the Amazon MQ console.2. ブローカーのリストから、ブローカーの名前 (MyBroker など) を選択します。3. [MyBroker] ページの [Connections (接続)] セクションで、ブローカーの ActiveMQ ウェブコンソール

URL とワイヤレベルプロトコルのアドレスとポートをメモします。4. [Details (詳細)] セクションの [Security and network (セキュリティとネットワーク)] で、セキュリティ

グループの名前または を選択します。

EC2 ダッシュボードの [セキュリティグループ] ページが表示されます。5. セキュリティグループのリストから、セキュリティグループを選択します。6. ページ下部で、[インバウンド] を選択し、次に [編集] を選択します。7. [インバウンドのルールの編集] ダイアログボックスで、パブリックアクセス可能にするすべての URL

またはエンドポイントのルールを追加します (次の例で、ActiveMQ ウェブコンソールでこれを行う方法について説明します)。

a. [Add Rule] を選択します。b. [タイプ] で、[カスタム TCP] を選択します。c. [ポート範囲] に、ActiveMQ ウェブコンソールのポート (8162) を入力します。d. [ソース] で、[カスタム] を選択したままにして、ActiveMQ ウェブコンソールにアクセスするシス

テムの IP アドレスを入力します (192.0.2.1 など)。e. [Save] を選択します。

これで、ブローカーはインバウンド接続を受け入れることができます。

Java 依存関係の追加activemq-client.jar パッケージおよび activemq-pool.jar パッケージを Java クラスパスに追加します。次の例では、これらの依存関係を Maven プロジェクトの pom.xml ファイルで示しています。

<dependencies> <dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-client</artifactId> <version>5.15.8</version> </dependency> <dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-pool</artifactId> <version>5.15.8</version> </dependency></dependencies>

activemq-client.jar の詳細については、Apache ActiveMQ ドキュメントの「Initial Configuration」を参照してください。

7

Page 13: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドメッセージプロデューサーの作成およびメッセージの送信

Important

次のコード例では、プロデューサーとコンシューマーパターンは単一のスレッドを実行します。本番システムでは、(または、ブローカーインスタンスフェイルオーバーをテストする場合)、プロデューサーとコンシューマーが、別々のホストまたはスレッドで実行していることを確認します。

メッセージプロデューサーの作成およびメッセージの送信1. ブローカーのエンドポイントを使用して、メッセージプロデューサー用のプールされた JMS 接続ファ

クトリを作成し、このファクトリに対して createConnection メソッドを呼び出します。Note

アクティブ/スタンバイブローカーに対して、Amazon MQ は 2 つの ActiveMQ ウェブコンソール URL を提供しますが、一度にアクティブになる URL は 1 つのみです。同様に、Amazon MQ はワイヤレベルプロトコルのエンドポイントごとに 2 つのエンドポイントを提供しますが、各ペアで一度にアクティブになるエンドポイントは 1 つのみです。-1 サフィックスと -2 サフィックスは冗長なペアを示します。 詳細については、「Amazon MQブローカーのアーキテクチャ (p. 46)」を参照してください。ワイヤレベルプロトコルのエンドポイントの場合は、フェイルオーバートランスポート を使用して、アプリケーションからいずれかのエンドポイントに接続できます。

// Create a connection factory.final ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(wireLevelEndpoint);

// Pass the username and password.connectionFactory.setUserName(activeMqUsername);connectionFactory.setPassword(activeMqPassword);

// Create a pooled connection factory.final PooledConnectionFactory pooledConnectionFactory = new PooledConnectionFactory();pooledConnectionFactory.setConnectionFactory(connectionFactory);pooledConnectionFactory.setMaxConnections(10);

// Establish a connection for the producer.final Connection producerConnection = pooledConnectionFactory.createConnection();producerConnection.start();

Note

メッセージプロデューサーは、常に PooledConnectionFactory クラスを使用する必要があります。詳細については、「常に接続プールを使用する (p. 95)」を参照してください。

2. セッション、キュー (MyQueue という名前)、およびメッセージプロデューサーを作成します。

// Create a session.final Session producerSession = producerConnection.createSession(false, Session.AUTO_ACKNOWLEDGE);

// Create a queue named "MyQueue".final Destination producerDestination = producerSession.createQueue("MyQueue");

// Create a producer from the session to the queue.final MessageProducer producer = producerSession.createProducer(producerDestination);producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);

3. メッセージ文字列 "Hello from Amazon MQ!" を作成し、このメッセージを送信します。

8

Page 14: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドメッセージコンシューマーの作成およびメッセージの受信

// Create a message.final String text = "Hello from Amazon MQ!";TextMessage producerMessage = producerSession.createTextMessage(text);

// Send the message.producer.send(producerMessage);System.out.println("Message sent.");

4. プロデューサーをクリーンアップします。

producer.close();producerSession.close();producerConnection.close();

メッセージコンシューマーの作成およびメッセージの受信1. ブローカーのエンドポイントを使用して、メッセージプロデューサー用の JMS 接続ファクトリを作成

し、このファクトリに対して createConnection メソッドを呼び出します。

// Create a connection factory.final ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(wireLevelEndpoint);

// Pass the username and password.connectionFactory.setUserName(activeMqUsername);connectionFactory.setPassword(activeMqPassword);

// Establish a connection for the consumer.final Connection consumerConnection = connectionFactory.createConnection();consumerConnection.start();

Note

メッセージコンシューマーは、PooledConnectionFactory クラスを使用することはありません。詳細については、「常に接続プールを使用する (p. 95)」を参照してください。

2. セッション、キュー (MyQueue という名前)、およびメッセージコンシューマーを作成します。

// Create a session.final Session consumerSession = consumerConnection.createSession(false, Session.AUTO_ACKNOWLEDGE);

// Create a queue named "MyQueue".final Destination consumerDestination = consumerSession.createQueue("MyQueue");

// Create a message consumer from the session to the queue.final MessageConsumer consumer = consumerSession.createConsumer(consumerDestination);

3. メッセージの待機を開始し、メッセージが到着したら、受信します。

// Begin to wait for messages.final Message consumerMessage = consumer.receive(1000);

// Receive the message when it arrives.final TextMessage consumerTextMessage = (TextMessage) consumerMessage;

9

Page 15: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドステップ 3: ブローカーの削除

System.out.println("Message received: " + consumerTextMessage.getText());

Note

AWS メッセージングサービス (Amazon SQS など) とは異なり、コンシューマーは絶えずブローカーに接続されています。

4. コンシューマー、セッション、および接続を閉じます。

consumer.close();consumerSession.close();consumerConnection.close();

ステップ 3: ブローカーの削除Amazon MQ ブローカーを使用しない場合 (さらに近い将来も使用する予定がない場合) は、ベストプラクティスとして、ブローカーを Amazon MQ から削除し、AWS のコストを削減します。

次の例では、AWS Management Console を使用してブローカーを削除する方法を示します。

1. Sign in to the Amazon MQ console.2. ブローカーのリストから、ブローカー (MyBroker など) を選択し、[Delete] を選択します。3. [Delete MyBroker?] ダイアログボックスで、「delete」と入力し、[Delete] を選択します。

ブローカーの削除にはおよそ 5 分かかります。

次のステップブローカーを作成してアプリケーションを接続し、メッセージを送受信したので、次の操作を試してください。

• ブローカーの作成と設定 (p. 11) (詳細設定)• ブローカーエンジンのバージョン、CloudWatch Logs、およびメンテナンス設定の編集 (p. 19)• ブローカー設定の作成と適用 (p. 20)• ブローカー設定の編集と管理 (p. 23)• ブローカーのリストおよびブローカー詳細の表示 (p. 30)• Amazon MQ ブローカーユーザーの作成と管理 (p. 31)• ブローカーの再起動 (p. 33)• Amazon MQ の CloudWatch メトリクスへのアクセス (p. 34)

「Amazon MQ のベストプラクティス (p. 93)」と「Amazon MQ の REST API」をよく理解した上で、Amazon MQ への移行を計画する (p. 88)こともできます。

10

Page 16: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドブローカーの作成と設定

Amazon MQ のチュートリアル以下のチュートリアルは、AWS Management Console および Java を使用して Amazon MQ および ActiveMQ を使用する方法を示します。サンプルコードを使用するには、Java Standard EditionDevelopment Kit をインストールし、コードを少し変更する必要があります。

トピック• チュートリアル : Amazon MQ ブローカーの作成と設定 (p. 11)• チュートリアル: Amazon MQ ブローカーのネットワークの作成と設定 (p. 15)• チュートリアル: ブローカーエンジンのバージョン、インスタンスタイプ、CloudWatch Logs、および

メンテナンス設定の編集 (p. 19)• チュートリアル : Amazon MQ ブローカー設定の作成と適用 (p. 20)• チュートリアル: Amazon MQ ブローカー設定の編集と設定のリビジョンの管理 (p. 23)• チュートリアル: Amazon MQ ブローカーに Java アプリケーションを接続する (p. 26)• チュートリアル: Amazon MQ ブローカーのリストおよびブローカーの詳細の表示 (p. 30)• チュートリアル: Amazon MQ ブローカーユーザーのリストと作成 (p. 31)• チュートリアル: Amazon MQ ブローカーの再起動 (p. 33)• チュートリアル: Amazon MQ ブローカーの削除 (p. 34)• チュートリアル: Amazon MQ の CloudWatch メトリクスへのアクセス (p. 34)

チュートリアル : Amazon MQ ブローカーの作成と設定

ブローカーは、Amazon MQ で実行されるメッセージブローカー環境です。これは、Amazon MQ の基本的な構成要素です。 ブローカーインスタンスのクラス(m5、t2)および サイズ(large、micro)を組み合わせた記述がブローカーインスタンスタイプ(mq.m5.large など)です。詳細については、「ブローカー (p. 38)」を参照してください。

Amazon MQ の最初で最も一般的なタスクは、ブローカーの作成です。次の例では、AWS ManagementConsole を使用してブローカーを作成し、設定する方法を示します。

トピック• ステップ 1: 基本的なブローカー設定を構成する (p. 11)• ステップ 2: (オプション) その他のブローカーを設定する (p. 12)• ステップ 3: ブローカー作成の完了 (p. 13)• パブリックアクセシビリティが無効なブローカーの ActiveMQ ウェブコンソールへのアクセ

ス (p. 14)

ステップ 1: 基本的なブローカー設定を構成する1. Sign in to the Amazon MQ console.2. [Select deployment and storage] ページの [Deployment mode and storage type] セクションで、以下の

操作を行います。

a. [デプロイモード] (例: [Active/standby broker]) を選択します。詳細については、Amazon MQ ブローカーのアーキテクチャ (p. 46) を参照してください。

11

Page 17: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドステップ 2: (オプション) その他のブローカーを設定する

• 単一インスタンスブローカー は 1 つのアベイラビリティーゾーンの 1 つのブローカーで構成される。ブローカーは、アプリケーションおよび Amazon EFS (デフォルト)、またはAmazon EBS と通信します。 詳細については、「Amazon MQ 単一インスタンスブローカー (p. 47)」を参照してください。

• 高可用性対応アクティブ/スタンバイブローカー は 2 つの異なるアベイラビリティーゾーンにある 2 つのブローカーで構成される、冗長なペアで設定されています。これらのブローカーは、アプリケーションおよび Amazon EFS と同期的に通信します。 詳細については、「Amazon MQ 高可用性対応アクティブ/スタンバイブローカー (p. 50)」を参照してください。

• ブローカーのネットワークのサンプル設計図の詳細については、「サンプル設計図 (p. 53)」を参照してください。

b. [ストレージタイプ] (例: [EBS]) を選択します。詳細については、ブローカーストレージ (p. 45)を参照してください。

Note

Amazon EBS は 1 つのアベイラビリティーゾーン内でデータをレプリケートし、アクティブ/スタンバイ (p. 50)のデプロイモードをサポートしません。

c. [Next] を選択します。3. [Configure settings (設定の構成)] ページの [Details (詳細)] セクションで、以下の操作を行います。

a. [ブローカー名] を入力します。b. [ブローカーインスタンスタイプ] (例: [mq.m5.large]) を選択します。詳細については、ブローカー

インスタンスタイプ (p. 40) を参照してください。4. [ActiveMQ Web Console access (ActiveMQ ウェブコンソールのアクセス)] セクションで、[Username

(ユーザー名)] と [Password (パスワード)] を入力します。

ステップ 2: (オプション) その他のブローカーを設定する

Important

• サブネット – 単一インスタンスブローカーには、サブネットが 1 つ必要です (例: デフォルトのサブネット)。ブローカーをアクティブ/スタンバイにするには、2 つのサブネットが必要です。

• セキュリティグループ – 単一インスタンスブローカーとアクティブ/スタンバイブローカーのどちらにも、少なくとも 1 つのセキュリティグループが必要です (例: デフォルトのセキュリティグループ)。

• VPC – ブローカーのサブネットとセキュリティグループは、同じ VPC 内にある必要があります。EC2-Classic リソースはサポートされていません。Amazon MQ は、デフォルト VPC テナンシーのみをサポートしており、専用 VPC テナンシーはサポートしていません。

• 暗号化 – データを暗号化するカスタマーマスターキーを選択します。「保管時の暗号化 (p. 117)」を参照してください。

• パブリックアクセシビリティ – パブリックアクセシビリティを無効にすると、ブローカーはVPC 内でのみアクセスできます。詳細については、「パブリックアクセスビリティのないブローカーを優先する (p. 93)」および「パブリックアクセシビリティが無効なブローカーのActiveMQ ウェブコンソールへのアクセス (p. 14)」を参照してください。

1. [詳細設定] セクションを展開します。2. [設定] セクションで、[Create a new configuration with default values (デフォルト値を使用して新しい

設定を作成する)] または [Select an existing configuration (既存の設定を選択する)] を選択します。詳細については、「設定 (p. 44)」および「Amazon MQ ブローカー設定パラメータ (p. 62)」を参照してください。

12

Page 18: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドステップ 3: ブローカー作成の完了

3. [Logs (ログ)] セクションで、[General (一般)] ログと [Audit (監査)] ログのどちらを AmazonCloudWatch Logs に発行するかを選択します。詳細については、「Amazon CloudWatch Logs にログを発行するよう Amazon MQ を設定する (p. 111)」を参照してください。

Important

ユーザーがブローカーの作成または再起動を行う前に CreateLogGroup アクセス許可をAmazon MQ ユーザーに追加していない場合 (p. 112)、Amazon MQ でロググループは作成されません。Amazon MQ にリソースベースのポリシーを指定していない場合 (p. 113)、ブローカーからCloudWatch Logs にログを発行することはできません。

4. [Network and security section (ネットワークおよびセキュリティセクション)] で、ブローカーの接続を設定します。

a. 以下のいずれかの操作を行います。

• [デフォルトの VPC、サブネット、およびセキュリティグループを使用します。] を選択します。

• [既存の VPC、サブネット、およびセキュリティグループを選択します。] を選択します。1. このオプションを選択した場合、Amazon VPC コンソールに新しい [Virtual Private Cloud

(VPC)] を作成し、既存の VPC を選択するか、デフォルトの VPC を選択します。詳細については、Amazon VPC User Guideの「Amazon VPC とは」を参照してください。

2. VPC を作成または選択すると、Amazon VPC コンソールに 新しい [サブネット] を作成するか、既存のコンソールを選択します。詳細については、『Amazon VPC User Guide』の「VPC とサブネット」を参照してください。

3. サブネットを作成または選択すると、[セキュリティグループ] を選択できます。b. データの暗号化に使用されるカスタマーマスターキー (CMK) を選択します。「保管時の暗号

化 (p. 117)」を参照してください。c. ブローカーの [パブリックアクセシビリティ] を選択します。

5. [Maintenance section (メンテナンスセクション)] で、ブローカーのメンテナンススケジュールを設定します。

a. Apache から新しいバージョンがリリースされたときにブローカーをアップグレードするには、[Enable automatic minor version upgrades (マイナーバージョンの自動アップグレードを有効にする)] を選択します。自動アップグレードは、メンテナンスウィンドウ中に行われます。メンテナンスウィンドウは、曜日、時間(24 時間形式)、タイムゾーン(デフォルトは UTC)で定義します。

Note

For an active/standby broker, if one of the broker instances undergoes maintenance, 非アクティブなインスタンスのサービスを停止するには、Amazon MQ が少しかかります。これにより、正常なスタンバイインスタンスがアクティブになり、受信中の通信の受け入れを開始できます。

b. 以下のいずれかの操作を行います。

• Amazon MQ がメンテナンスウィンドウを自動的に選択することを許可するには、[指定なし]を選択します。

• カスタムのメンテナンスウィンドウを設定するには、[Select maintenance window (メンテナンスウィンドウの選択)] を選択し、アップグレードの [Start day (開始日)] と [Start time (開始時刻)] を指定します。

ステップ 3: ブローカー作成の完了1. [デプロイ] を選択します。

13

Page 19: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドパブリックアクセシビリティが無効なブロー

カーの ActiveMQ ウェブコンソールへのアクセス

Amazon MQ でブローカーを作成している間は、[Creation in progress] ステータスが表示されます。

ブローカーの作成には約 15 分。かかります。

ブローカーが正常に作成されると、Amazon MQ に [Running] ステータスが表示されます。

2. [MyBroker] を選択します。

[MyBroker] ページの [Connect] セクションで、ブローカーの [ActiveMQ Web Console] の URL (以下の例を参照) を書き留めます。

https://b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.mq.us-east-2.amazonaws.com:8162

ブローカーのワイヤレベルプロトコルの [エンドポイント] も書き留めます。OpenWire エンドポイントの例を以下に示します。

ssl://b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.mq.us-east-2.amazonaws.com:61617

Note

アクティブ/スタンバイブローカーに対して、Amazon MQ は 2 つの ActiveMQ ウェブコンソール URL を提供しますが、一度にアクティブになる URL は 1 つのみです。同様に、Amazon MQはワイヤレベルプロトコルのエンドポイントごとに 2 つのエンドポイントを提供しますが、各ペアで一度にアクティブになるエンドポイントは 1 つのみです。-1 サフィックスと -2 サフィックスは冗長なペアを示します。 詳細については、「Amazon MQ ブローカーのアーキテクチャ (p. 46)」を参照してください。ワイヤレベルプロトコルのエンドポイントの場合は、フェイルオーバートランスポート を使用して、アプリケーションからいずれかのエンドポイントに接続できます。

パブリックアクセシビリティが無効なブローカーのActiveMQ ウェブコンソールへのアクセスブローカーのパブリックアクセシビリティを無効にしている場合は、ブローカーの ActiveMQ ウェブコンソールにアクセスできるように、以下のステップを実行する必要があります。

Note

VPC とセキュリティグループの名前は、次の例に固有のものです。

前提条件以下のステップを実行するには、次の設定を行う必要があります。

• VPC• Amazon MQ ブローカーがアタッチされている VPC (インターネットゲートウェイなし)。名前はprivate-vpc。

14

Page 20: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドブローカーのネットワークの作成と設定

• 2 つ目の VPC (インターネットゲートウェイなし)。名前は public-vpc。• パブリック VPC の Amazon EC2 インスタンスがプライベート VPC 内の EC2 インスタンスと通信で

きるように、両方の VPC を接続する必要があります (たとえば、VPC ピアリングを使用して)。• VPC ピアリングを使用する場合は、両 VPC のルートテーブルを ピア接続用に設定する必要がありま

す。• 個のセキュリティグループ

• Amazon MQ ブローカーを作成するために使用するセキュリティグループ。名前は private-sg。• public-vpc VPC の EC2 インスタンスで使用する第 2 のセキュリティグループ。名前は public-sg。

• private-sg を使用して、public-sg からのインバウンド接続を許可します。このセキュリティグループは、ポート 8162 に制限することをお勧めします。

• public-sg を使用して、お使いのマシンからのインバウンド接続をポート 22 で許可します。

パブリックアクセスビリティが無効なブローカーの ActiveMQウェブコンソールにアクセスするには1. public-vpc に Linux EC2 インスタンスを作成します (必要に応じて、パブリック IP を使用)。2. VPC が正しく設定されていることを確認するには、作成した EC2 インスタンスへの ssh 接続を確立

し、ブローカーの URI を指定して curl コマンドを使用します。3. お使いのマシンから、プライベートキーファイルのパスと、ブローカーインスタンスの IP アドレスを

使用して、EC2 インスタンスへの ssh トンネルを作成します。以下に例を示します。

ssh -i ~/.ssh/id_rsa -N -C -q -f -D 8080 [email protected]

転送プロキシサーバーがマシン上で開始されます。4. プロキシクライアント (例: FoxyProxy) をマシン上にインストールします。5. 以下の設定を使用して、プロキシクライアントを設定します。

• プロキシタイプで、SOCKS5 を指定します。• IP アドレス、DNS 名、サーバー名で、localhost を指定します。• ポートで、8080 を指定します。• 既存の URL パターンをすべて削除します。• URL パターンで、*.mq.*.amazonaws.com* を指定します。• 接続タイプで、HTTP(S) を指定します。

プロキシクライアントを有効にすると、お使いのマシン上の ActiveMQ ウェブコンソールにアクセスできるようになります。

チュートリアル: Amazon MQ ブローカーのネットワークの作成と設定

ブローカーのネットワークは、複数の同時にアクティブになっている単一インスタンスブローカー (p. 47)またはアクティブ/スタンバイブローカー (p. 50)で構成されます。ブローカーのネットワークは、アプリケーションのニーズ (高可用性やスケーラビリティなど) に応じて、さまざまなトポロジー (p. 54) (コンセントレータ、ハブアンドスポーク、ツリー、メッシュなど) で設定できます。たとえば、ハブアンドスポーク (p. 56)型のブローカーのネットワークは、レジリエンスを高めて、1 つのブローカーが到達不能である場合にメッセージを保持できます。ブローカーのネットワークのトポロジー

15

Page 21: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイド前提条件

がコンセントレータ (p. 57)型である場合は、着信メッセージを受け入れる多数のブローカーから収集したメッセージをより中央のブローカーに集中させることで、多数の着信メッセージの負荷をより効率的に処理できます。 このチュートリアルでは、ソースとシンクトポロジーを持つブローカーの 2 ブローカーネットワークを作成する方法について説明します。

概念的な概要および詳細な設定情報については、以下を参照してください。

• Amazon MQ ブローカーのネットワーク (p. 51)• ブローカーのネットワークを正しく設定する (p. 98)• networkConnector (p. 76)

• networkConnectionStartAsync (p. 72)

• ActiveMQ ドキュメントの「ブローカーのネットワーク」

Amazon MQ ブローカーのネットワークは、Amazon MQ コンソールを使用して作成できます。2 つのブローカーの作成を並行して開始できるため、このプロセスには約 15 分かかります。

トピック• 前提条件 (p. 16)• ステップ 1: ブローカー間のトラフィックを許可する (p. 16)• ステップ 2: ブローカー用のネットワークコネクターを設定する (p. 17)• 次のステップ (p. 18)

前提条件ブローカーのネットワークを作成するには、以下のものが必要です。

• 同時にアクティブな 2 つ以上のブローカー (このチュートリアルでは MyBroker2 および MyBroker1 という名前)。ブローカー作成についての詳細は、「ブローカーの作成と設定 (p. 11)」 を参照してください。

• 2 つのブローカーは、同じ VPC またはピア接続された VPC に属している必要があります。VPC の詳細については、『Amazon VPC User Guide』の「Amazon VPC とは」および『Amazon VPC PeeringGuide』の「VPC ピア機能とは」を参照してください。

Important

デフォルトの VPC、サブネット、またはセキュリティグループがない場合は、それらを最初に作成する必要があります。詳細については、『Amazon VPC User Guide』の手順を参照してください。• デフォルト VPC の作成• デフォルトサブネットの作成• セキュリティグループを作成する

• 両方のブローカーに対して同じユーザー名とパスワードを持つ 2 人のユーザー。ユーザー作成の詳細については、Amazon MQ ブローカーユーザーの作成と管理 (p. 31)を参照してください。

次の例では、2 つの単一インスタンスブローカー (p. 47)を使用します。ただし、アクティブ/スタンバイブローカー (p. 50)、またはブローカーデプロイモードの組み合わせを使用してブローカーのネットワークを作成できます。

ステップ 1: ブローカー間のトラフィックを許可するブローカーを作成した後、それらの間のトラフィックを許可する必要があります。

16

Page 22: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドステップ 2: ブローカー用のネットワークコネクターを設定する

1. Amazon MQ コンソールの [MyBroker2] ページで、[詳細] セクションの [セキュリティとネットワーク]で、セキュリティグループの名前または を選択します。

EC2 ダッシュボードの [セキュリティグループ] ページが表示されます。2. セキュリティグループのリストから、セキュリティグループを選択します。3. ページ下部で、[インバウンド] を選択し、次に [編集] を選択します。4. [インバウンドルールの編集] ダイアログボックスで、OpenWire エンドポイントのルールを追加しま

す。

a. [Add Rule] を選択します。b. [タイプ] で、[カスタム TCP] を選択します。c. [ポート範囲] で、OpenWire ポートを入力します (61617)。d. 以下のいずれかを行います。

• 特定の IP アドレスへのアクセスを制限する場合は、[ソース] で [カスタム] を選択したままにし、MyBroker1 の IP アドレスに続いて /32 を入力します。(これは IP アドレスを有効なCIDR レコードに変換します)。詳細については、「Elastic Network Interfaces」を参照してください。

Tip

MyBroker1 の IP アドレスを取得するには、Amazon MQ コンソールで、ブローカーの名前を選択して、[詳細] セクションに移動します。

• すべてのブローカーがプライベートで、同じ VPC に属している場合は、[ソース] で、[カスタム] を選択したままにし、編集しているセキュリティグループの ID を入力します。

Note

パブリックブローカーの場合は、IP アドレスを使用してアクセスを制限する必要があります。

e. [Save] を選択します。

これで、ブローカーはインバウンド接続を受け入れることができます。

ステップ 2: ブローカー用のネットワークコネクターを設定するブローカー間のトラフィックを許可すると、そのうちの 1 つのネットワーク接続を設定する必要があります。

1. ブローカー MyBroker1 の設定リビジョンを編集します。

a. [MyBroker1] ページで、[編集] を選択します。b. [MyBroker1 の編集] ページの、[設定] セクションで、[表示] を選択します。

設定が使用するブローカーエンジンタイプとバージョン (例: [Apache ActiveMQ 5.15.0]) が表示されます。

c. [Configuration details] タブに、設定リビジョン番号、説明、およびブローカー設定が XML 形式で表示されます。

d. [設定の編集] を選択します。e. 設定ファイルの下部で、<networkConnectors> セクションのコメントを解除し、以下の情報

を入力します。

• ネットワークコネクターの name。17

Page 23: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイド次のステップ

• ブローカーの両方に共通の ActiveMQ ウェブコンソールusername (p. 16)。• duplex 接続を有効にします。• 以下のいずれかの操作を行います。

• ブローカーを単一インスタンスブローカーに接続している場合は、MyBroker2 の static:プレフィックスと OpenWire エンドポイント uri を使用します。以下に例を示します。

<networkConnectors> <networkConnector name="connector_1_to_2" userName="myCommonUser" duplex="true" uri="static:(ssl://b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.mq.us-east-2.amazonaws.com:61617)"/></networkConnectors>

• ブローカーをアクティブ/スタンバイブローカーに接続している場合は、両方のブローカーのmasterslave: プレフィックスと OpenWire エンドポイント uri を使用します。以下に例を示します。

<networkConnectors> <networkConnector name="connector_1_to_2" userName="myCommonUser" duplex="true" uri="masterslave:(ssl://b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.mq.us-east-2.amazonaws.com:61617, ssl://b-9876l5k4-32ji-109h-8gfe-7d65c4b132a1-2.mq.us-east-2.amazonaws.com:61617)"/></networkConnectors>

Note

ActiveMQ ユーザーのパスワードを含めないでください。f. [Save] を選択します。g. [リビジョンの保存] ダイアログボックスで、「Add network of brokers connector for

MyBroker2」と入力します。h. [保存] を選択して設定のリビジョンを保存します。

2. MyBroker1 を編集して最新の設定リビジョンをすぐに適用するように設定します。

a. [MyBroker1] ページで、[編集] を選択します。b. [MyBroker1 の編集] ページの、[設定] セクションで、[Schedule Modifications (スケジュールの変

更)] を選択します。c. [Schedule broker modifications (ブローカー変更のスケジュール)] セクションで、変更を適用する

には、[即時] を選択します。d. [Apply] を選択します。

MyBroker1 が再起動され、設定のリビジョンが適用されます。

ネットワークのブローカーが作成されます。

次のステップブローカーのネットワークを設定したら、メッセージを作成して消費することでテストできます。

Important

ポート 8162 (ActiveMQ ウェブコンソール用) およびポート 61617 (OpenWire エンドポイント用)のブローカー MyBroker1 に対して、ローカルマシンからのインバウンド接続を必ず有効にしてください (p. 78)。

18

Page 24: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドブローカー設定の編集

プロデューサーとコンシューマーがブローカーのネットワークに接続できるように、セキュリティグループの設定を調整する必要がある場合があります。

1. Amazon MQ コンソールで、[接続] セクションに移動し、ブローカー MyBroker1 の ActiveMQ ウェブコンソールエンドポイントを書き留めます。

2. ブローカー MyBroker1 の ActiveMQ ウェブコンソールに移動します。3. ネットワークブリッジが接続されていることを確認するには、[ネットワーク] を選択します。

[Network Bridges (ネットワークブリッジ)] セクションで、MyBroker2 の名前とアドレスが [RemoteBroker (リモートブローカー)] と [Remote Address (リモートアドレス)] 列に表示されます。

4. ブローカー MyBroker2 にアクセスできる任意のマシンから、コンシューマーを作成します。以下に例を示します。

activemq consumer --brokerUrl "ssl://b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.mq.us-east-2.amazonaws.com:61617" \ --user commonUser \ --password myPassword456 \ --destination queue://MyQueue

コンシューマーは MyBroker1 の OpenWire エンドポイントに接続し、キュー MyQueue からメッセージを消費し始めます。

5. ブローカー MyBroker1 にアクセスできる任意のマシンから、プロデューサーを作成し、いくつかのメッセージを送信します。以下に例を示します。

activemq producer --brokerUrl "ssl://b-9876l5k4-32ji-109h-8gfe-7d65c4b132a1-1.mq.us-east-2.amazonaws.com:61617" \ --user commonUser \ --password myPassword456 \ --destination queue://MyQueue \ --persistent true \ --messageSize 1000 \ --messageCount 10000

プロデューサーは MyBroker1 の OpenWire エンドポイントに接続し、キュー MyQueue に永続的なメッセージを生成し始めます。

チュートリアル: ブローカーエンジンのバージョン、インスタンスタイプ、CloudWatch Logs、およびメンテナンス設定の編集

ブローカー設定の編集と設定のリビジョンの管理 (p. 23)に加えて、ブローカー固有のプリファレンスを設定できます。

Note

自動マイナーバージョンのアップグレード以外のすべての設定では、変更をスケジュールする必要があります。詳細については、「Amazon MQ ブローカーの設定のライフサイクル (p. 61)」を参照してください。

次の例では、AWS Management Console を使用して Amazon MQ ブローカーを削除する方法を示します。

19

Page 25: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドブローカーオプションを編集するには

ブローカーオプションを編集するには1. Sign in to the Amazon MQ console.2. ブローカーのリストから、ブローカー (MyBroker など) を選択し、[Edit] を選択します。3. [MyBroker の編集] ページの [仕様] セクションで、[ブローカーエンジンのバージョン] または [ブロー

カーインスタンスタイプ] を選択します。4. [設定] セクションでブローカーの設定とリビジョンを選択します。詳細については、「ブローカー設

定の編集と管理 (p. 23)」を参照してください。5. [セキュリティとネットワーク] セクションで、[セキュリティグループ] ドロップダウンからグループ

を選択するか、[新しいセキュリティグループの作成] を選択して Amazon VPC コンソールを開きます。

6. [CloudWatch ログ] セクションで、[General (一般)] ログと [Audit (監査)] ログのどちらを AmazonCloudWatch Logs に発行するかを選択します。詳細については、「Amazon CloudWatch Logs にログを発行するよう Amazon MQ を設定する (p. 111)」を参照してください。

Important

ユーザーがブローカーの作成または再起動を行う前に CreateLogGroup アクセス許可をAmazon MQ ユーザーに追加していない場合 (p. 112)、Amazon MQ でロググループは作成されません。Amazon MQ にリソースベースのポリシーを指定していない場合 (p. 113)、ブローカーからCloudWatch Logs にログを発行することはできません。

7. [Maintenance (メンテナンス)] セクションで、ブローカーのメンテナンススケジュールを設定します。

AWS から新しいバージョンがリリースされたときにブローカーをアップグレードするには、[マイナーバージョンの自動アップグレードを有効] を選択します。自動アップグレードは、メンテナンスウィンドウ中に行われます。メンテナンスウィンドウは、曜日、時間(24 時間形式)、タイムゾーン(デフォルトは UTC)で定義します。

Note

For an active/standby broker, if one of the broker instances undergoes maintenance, 非アクティブなインスタンスのサービスを停止するには、Amazon MQ が少しかかります。これにより、正常なスタンバイインスタンスがアクティブになり、受信中の通信の受け入れを開始できます。

8. [Schedule modifications (スケジュールの変更)] を選択します。

Note

[自動マイナーバージョンのアップグレードを有効にする] のみを選択した場合、ブローカーの再起動が必要ないため、ボタンは [保存] に変わります。

設定が指定された時刻にブローカーに適用されます。

チュートリアル : Amazon MQ ブローカー設定の作成と適用

設定には、ActiveMQ ブローカーのすべての設定が XML 形式で含まれています (ActiveMQ のactivemq.xml ファイルに似ています)。 ブローカーを作成する前に設定を作成できます。次に、その設定を 1 つ以上のブローカーに適用できます。 You can apply a configuration immediately or during a メンテナンスウィンドウ.

20

Page 26: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドステップ 1: 設定を最初から作成する

Note

For an active/standby broker, if one of the broker instances undergoes maintenance, 非アクティブなインスタンスのサービスを停止するには、Amazon MQ が少しかかります。これにより、正常なスタンバイインスタンスがアクティブになり、受信中の通信の受け入れを開始できます。

詳細については、以下を参照してください。

• 設定 (p. 44)• Amazon MQ ブローカーの設定のライフサイクル (p. 61)• Amazon MQ ブローカー設定パラメータ (p. 62)• ブローカー設定の編集と管理 (p. 23)

次の例では、AWS Management Console を使用した Amazon MQ ブローカー設定の作成方法と設定方法について示します。

トピック• ステップ 1: 設定を最初から作成する (p. 21)• ステップ 2: 新しい設定のリビジョンを作成する (p. 21)• ステップ 3: 設定のリビジョンをブローカーに適用する (p. 22)

ステップ 1: 設定を最初から作成する1. Sign in to the Amazon MQ console.2. 左側のナビゲーションパネルを展開し、[設定] を選択します。

3. [設定] ページで、[Create configuration (設定の作成)] を選択します。4. [Create configuration (設定の作成)] ページの [詳細] セクションに [設定名] を入力し (例:

MyConfiguration)、[ブローカーエンジン] のバージョンを選択します。

Note

現在、Amazon MQ は ActiveMQ ブローカーエンジンのバージョンとして、5.15.8、5.15.6、および 5.15.0 のみをサポートしています。

5. [Create configuration (設定の作成)] を選択します。

ステップ 2: 新しい設定のリビジョンを作成する1. 設定リストから、[MyConfiguration] を選択します。

21

Page 27: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドステップ 3: 設定のリビジョンをブローカーに適用する

Note

設定の最初のリビジョンは常に Amazon MQ によって設定が作成されたときに作成されます。

[MyConfiguration] ページに、ブローカーエンジンタイプおよび新しい設定のリビジョンが使用するバージョン (例: Apache ActiveMQ 5.15.8) が表示されます。

2. [Configuration details] タブに、設定リビジョン番号、説明、およびブローカー設定が XML 形式で表示されます。

Note

現在の設定を編集すると、新しい設定リビジョンが作成されます。

3. [Edit configuration] を選択し、XML 設定を変更します。4. [Save] を選択します。

[Save revision (リビジョンの保存)] ダイアログボックスが表示されます。5. (オプション) A description of the changes in this revision を入力します。6. [Save] を選択します。

設定の新しいリビジョンが保存されます。

Important

Amazon MQ コンソールは、スキーマに従って無効および禁止されている設定パラメータを自動的にサニタイズします。許可された XML パラメータの詳細なリストについては、「Amazon MQ ブローカー設定パラメータ (p. 62)」を参照してください。設定を変更しても、ブローカーに即座には変更が適用されません。変更を適用するには、次のメンテナンスウィンドウを待つ (p. 25)か、ブローカーを再起動する (p. 33)必要があります。詳細については、「Amazon MQ ブローカーの設定のライフサイクル (p. 61)」を参照してください。現在、設定を削除することはできません。

ステップ 3: 設定のリビジョンをブローカーに適用する1. 左側のナビゲーションパネルを展開し、[Brokers (ブローカー)] を選択します。

22

Page 28: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイド設定の編集と設定のリビジョンの管理

2. ブローカーのリストから、ブローカー (MyBroker など) を選択し、[Edit] を選択します。3. [Edit MyBroker] ページの [Configuration] セクションで、[Configuration] と [Revision] を選択し、次に

[Schedule Modifications] を選択します。4. [Schedule broker modifications] セクションで、変更を次回のスケジュールされたメンテナンスウィン

ドウ中に適用するか、即時適用するかを選択します。Important

再起動中のブローカーはオフラインになります。5. [Apply] を選択します。

設定のリビジョンが指定された時刻にブローカーに適用されます。

チュートリアル: Amazon MQ ブローカー設定の編集と設定のリビジョンの管理

設定には、ActiveMQ ブローカーのすべての設定が XML 形式で含まれています (ActiveMQ のactivemq.xml ファイルに似ています)。 You can apply a configuration immediately or during a メンテナンスウィンドウ.

Note

For an active/standby broker, if one of the broker instances undergoes maintenance, 非アクティブなインスタンスのサービスを停止するには、Amazon MQ が少しかかります。これにより、正常なスタンバイインスタンスがアクティブになり、受信中の通信の受け入れを開始できます。

設定に加えた変更を追跡するために、設定のリビジョンを作成できます。

詳細については、以下を参照してください。

• 設定 (p. 44)• Amazon MQ ブローカーの設定のライフサイクル (p. 61)• Amazon MQ ブローカー設定パラメータ (p. 62)• ブローカー設定の作成と適用 (p. 20)

次の例では、AWS Management Console を使用した Amazon MQ ブローカー設定の編集方法およびブローカー設定のリビジョンの管理方法を示します。

トピック• 以前の設定のリビジョンを表示するには (p. 24)• 現在の設定のリビジョンを編集するには (p. 20)• 設定のリビジョンをブローカーに適用するには (p. 25)• ブローカーを前回の設定のリビジョンにロールバックするには (p. 25)

23

Page 29: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイド以前の設定のリビジョンを表示するには

以前の設定のリビジョンを表示するには1. Sign in to the Amazon MQ console.2. ブローカーのリストから、ブローカー (MyBroker など) を選択し、[Edit] を選択します。3. [Edit MyBroker] ページの [Configuration (設定)] セクションで、[Configuration (設定)] と [Revision (リ

ビジョン)] を選択し、[Edit (編集)] を選択します。

Note

ブローカーの作成時に設定を選択した場合を除き、最初の設定リビジョンは Amazon MQ でブローカーが作成されるときに常に自動的に作成されます。

[MyBroker] ページに、設定で使用するブローカーエンジンタイプおよびバージョン (例: ApacheActiveMQ 5.15.8) が表示されます。

4. [Revision history (リビジョン履歴)] を選択します。5. 設定の [リビジョン] 番号、[Revision date (リビジョン日)]、および [説明] がリビジョンごとに表示さ

れます。6. リビジョンを選択し、[詳細を表示] を選択します。

ブローカー設定が XML 形式で表示されます。

現在の設定のリビジョンを編集するには1. Sign in to the Amazon MQ console.2. ブローカーのリストから、ブローカー (MyBroker など) を選択し、[Edit] を選択します。3. [MyBroker] ページで、[編集] を選択します。4. [Edit MyBroker] ページの [Configuration (設定)] セクションで、[Configuration (設定)] と [Revision (リ

ビジョン)] を選択し、[Edit (編集)] を選択します。

Note

ブローカーの作成時に設定を選択した場合を除き、最初の設定リビジョンは Amazon MQ でブローカーが作成されるときに常に自動的に作成されます。

[MyBroker] ページに、設定で使用するブローカーエンジンタイプおよびバージョン (例: ApacheActiveMQ 5.15.8) が表示されます。

5. [Configuration details] タブに、設定リビジョン番号、説明、およびブローカー設定が XML 形式で表示されます。

Note

現在の設定を編集すると、新しい設定リビジョンが作成されます。

24

Page 30: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイド設定のリビジョンをブローカーに適用するには

6. [Edit configuration] を選択し、XML 設定を変更します。7. [Save] を選択します。

[Save revision (リビジョンの保存)] ダイアログボックスが表示されます。8. (オプション) A description of the changes in this revision を入力します。9. [Save] を選択します。

設定の新しいリビジョンが保存されます。

Important

Amazon MQ コンソールは、スキーマに従って無効および禁止されている設定パラメータを自動的にサニタイズします。許可された XML パラメータの詳細なリストについては、「Amazon MQ ブローカー設定パラメータ (p. 62)」を参照してください。設定を変更しても、ブローカーに即座には変更が適用されません。変更を適用するには、次のメンテナンスウィンドウを待つ (p. 25)か、ブローカーを再起動する (p. 33)必要があります。詳細については、「Amazon MQ ブローカーの設定のライフサイクル (p. 61)」を参照してください。現在、設定を削除することはできません。

設定のリビジョンをブローカーに適用するには1. Sign in to the Amazon MQ console.2. ブローカーのリストから、ブローカー (MyBroker など) を選択し、[Edit] を選択します。3. [Edit MyBroker] ページの [Configuration] セクションで、[Configuration] と [Revision] を選択し、次に

[Schedule Modifications] を選択します。4. [Schedule broker modifications] セクションで、変更を次回のスケジュールされたメンテナンスウィン

ドウ中に適用するか、即時適用するかを選択します。

Important

再起動中のブローカーはオフラインになります。5. [Apply] を選択します。

設定のリビジョンが指定された時刻にブローカーに適用されます。

ブローカーを前回の設定のリビジョンにロールバックするには1. Sign in to the Amazon MQ console.2. ブローカーのリストから、ブローカーの名前 (MyBroker など) を選択します。3. [MyBroker] ページで、[アクション]、[Roll back to last configuration (最後の設定にロールバックす

る)] を選択します。

25

Page 31: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドブローカーに Java アプリケーションを接続する

4. (省略可能) [現在の設定] または [Last configuration (最後の設定)] を確認するには、[Roll back to thelast configuration (最後の設定にロールバックする)] ページの [概要] セクションで、いずれかの設定の[編集] を選択します。

5. [ブローカー変更のスケジュール] セクションで、変更を [次回のスケジュールされたメンテナンスウィンドウ中] に適用するか、[即時] 適用するかを選択します。

Important

再起動中のブローカーはオフラインになります。6. [Apply] を選択します。

設定のリビジョンが指定された時刻にブローカーに適用されます。

チュートリアル: Amazon MQ ブローカーに Java アプリケーションを接続する

Amazon MQ ブローカーを作成したら、そのブローカーにアプリケーションを接続できます。次の例では、Java Message Service (JMS) を使用して、ブローカーへの接続の作成、キューの作成、およびメッセージの送信を行う方法を示します。実際に機能する完全な Java のサンプルについては、「Java の使用例 (p. 78)」を参照してください。

ActiveMQ ブローカーには、さまざまな ActiveMQ クライアント を使用して接続できます。ActiveMQ クライアント を使用することをお勧めします。

トピック• 前提条件 (p. 26)• メッセージプロデューサーを作成してメッセージを送信するには (p. 28)• メッセージコンシューマーを作成してメッセージを受信するには (p. 29)

前提条件VPC 属性 を有効にするVPC 内でブローカにアクセスできるようにするには、enableDnsHostnames およびenableDnsSupport VPC 属性を有効にする必要があります。詳細については、Amazon VPC User Guideの「VPC の DNS サポート」を参照してください。

26

Page 32: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイド前提条件

インバウンド接続の有効化1. Sign in to the Amazon MQ console.2. ブローカーのリストから、ブローカーの名前 (MyBroker など) を選択します。3. [MyBroker] ページの [Connections (接続)] セクションで、ブローカーの ActiveMQ ウェブコンソール

URL とワイヤレベルプロトコルのアドレスとポートをメモします。4. [Details (詳細)] セクションの [Security and network (セキュリティとネットワーク)] で、セキュリティ

グループの名前または を選択します。

EC2 ダッシュボードの [セキュリティグループ] ページが表示されます。5. セキュリティグループのリストから、セキュリティグループを選択します。6. ページ下部で、[インバウンド] を選択し、次に [編集] を選択します。7. [インバウンドのルールの編集] ダイアログボックスで、パブリックアクセス可能にするすべての URL

またはエンドポイントのルールを追加します (次の例で、ActiveMQ ウェブコンソールでこれを行う方法について説明します)。

a. [Add Rule] を選択します。b. [タイプ] で、[カスタム TCP] を選択します。c. [ポート範囲] に、ActiveMQ ウェブコンソールのポート (8162) を入力します。d. [ソース] で、[カスタム] を選択したままにして、ActiveMQ ウェブコンソールにアクセスするシス

テムの IP アドレスを入力します (192.0.2.1 など)。e. [Save] を選択します。

これで、ブローカーはインバウンド接続を受け入れることができます。

Java 依存関係の追加activemq-client.jar パッケージおよび activemq-pool.jar パッケージを Java クラスパスに追加します。次の例では、これらの依存関係を Maven プロジェクトの pom.xml ファイルで示しています。

<dependencies> <dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-client</artifactId> <version>5.15.8</version> </dependency> <dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-pool</artifactId> <version>5.15.8</version> </dependency></dependencies>

activemq-client.jar の詳細については、Apache ActiveMQ ドキュメントの「Initial Configuration」を参照してください。

Important

次のコード例では、プロデューサーとコンシューマーパターンは単一のスレッドを実行します。本番システムでは、(または、ブローカーインスタンスフェイルオーバーをテストする場合)、プロデューサーとコンシューマーが、別々のホストまたはスレッドで実行していることを確認します。

27

Page 33: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドメッセージプロデューサーを作

成してメッセージを送信するには

メッセージプロデューサーを作成してメッセージを送信するには1. ブローカーのエンドポイントを使用して、メッセージプロデューサー用のプールされた JMS 接続ファ

クトリを作成し、このファクトリに対して createConnection メソッドを呼び出します。

Note

アクティブ/スタンバイブローカーに対して、Amazon MQ は 2 つの ActiveMQ ウェブコンソール URL を提供しますが、一度にアクティブになる URL は 1 つのみです。同様に、Amazon MQ はワイヤレベルプロトコルのエンドポイントごとに 2 つのエンドポイントを提供しますが、各ペアで一度にアクティブになるエンドポイントは 1 つのみです。-1 サフィックスと -2 サフィックスは冗長なペアを示します。 詳細については、「Amazon MQブローカーのアーキテクチャ (p. 46)」を参照してください。ワイヤレベルプロトコルのエンドポイントの場合は、フェイルオーバートランスポート を使用して、アプリケーションからいずれかのエンドポイントに接続できます。

// Create a connection factory.final ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(wireLevelEndpoint);

// Pass the username and password.connectionFactory.setUserName(activeMqUsername);connectionFactory.setPassword(activeMqPassword);

// Create a pooled connection factory.final PooledConnectionFactory pooledConnectionFactory = new PooledConnectionFactory();pooledConnectionFactory.setConnectionFactory(connectionFactory);pooledConnectionFactory.setMaxConnections(10);

// Establish a connection for the producer.final Connection producerConnection = pooledConnectionFactory.createConnection();producerConnection.start();

Note

メッセージプロデューサーは、常に PooledConnectionFactory クラスを使用する必要があります。詳細については、「常に接続プールを使用する (p. 95)」を参照してください。

2. セッション、キュー (MyQueue という名前)、およびメッセージプロデューサーを作成します。

// Create a session.final Session producerSession = producerConnection.createSession(false, Session.AUTO_ACKNOWLEDGE);

// Create a queue named "MyQueue".final Destination producerDestination = producerSession.createQueue("MyQueue");

// Create a producer from the session to the queue.final MessageProducer producer = producerSession.createProducer(producerDestination);producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);

3. メッセージ文字列 "Hello from Amazon MQ!" を作成し、このメッセージを送信します。

// Create a message.final String text = "Hello from Amazon MQ!";TextMessage producerMessage = producerSession.createTextMessage(text);

// Send the message.producer.send(producerMessage);

28

Page 34: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドメッセージコンシューマーを作

成してメッセージを受信するには

System.out.println("Message sent.");

4. プロデューサーをクリーンアップします。

producer.close();producerSession.close();producerConnection.close();

メッセージコンシューマーを作成してメッセージを受信するには1. ブローカーのエンドポイントを使用して、メッセージプロデューサー用の JMS 接続ファクトリを作成

し、このファクトリに対して createConnection メソッドを呼び出します。

// Create a connection factory.final ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(wireLevelEndpoint);

// Pass the username and password.connectionFactory.setUserName(activeMqUsername);connectionFactory.setPassword(activeMqPassword);

// Establish a connection for the consumer.final Connection consumerConnection = connectionFactory.createConnection();consumerConnection.start();

Note

メッセージコンシューマーは、PooledConnectionFactory クラスを使用することはありません。詳細については、「常に接続プールを使用する (p. 95)」を参照してください。

2. セッション、キュー (MyQueue という名前)、およびメッセージコンシューマーを作成します。

// Create a session.final Session consumerSession = consumerConnection.createSession(false, Session.AUTO_ACKNOWLEDGE);

// Create a queue named "MyQueue".final Destination consumerDestination = consumerSession.createQueue("MyQueue");

// Create a message consumer from the session to the queue.final MessageConsumer consumer = consumerSession.createConsumer(consumerDestination);

3. メッセージの待機を開始し、メッセージが到着したら、受信します。

// Begin to wait for messages.final Message consumerMessage = consumer.receive(1000);

// Receive the message when it arrives.final TextMessage consumerTextMessage = (TextMessage) consumerMessage;System.out.println("Message received: " + consumerTextMessage.getText());

Note

AWS メッセージングサービス (Amazon SQS など) とは異なり、コンシューマーは絶えずブローカーに接続されています。

4. コンシューマー、セッション、および接続を閉じます。

29

Page 35: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドブローカーのリストおよびブローカー詳細の表示

consumer.close();consumerSession.close();consumerConnection.close();

チュートリアル: Amazon MQ ブローカーのリストおよびブローカーの詳細の表示

Amazon MQ がブローカーを作成するようにリクエストすると、作成プロセスが完了するまでに、約 15分。 かかります。

次の例では、AWS Management Console を使用して、現在のリージョンにあるすべてのブローカーをリストし、ブローカーが存在することを確認する方法を示しています。

ブローカーをリストしてブローカーの詳細を表示するには1. Sign in to the Amazon MQ console.

現在のリージョン内にあるブローカーが表示されます。

各ブローカーに対して、次の情報が表示されます。

• 名前• [作成日]• [ステータス] (p. 43)• [デプロイモード] (p. 46)• インスタンスタイプ (p. 40)

2. ブローカーの名前 (例: MyBroker) 選択します。

[MyBroker] ページで、ブローカーの設定済み (p. 44) [詳細] が表示されます。

30

Page 36: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドブローカーユーザーの作成と管理

[詳細] セクションの下に、次の情報が表示されます。

• [接続] セクションに、ActiveMQ ウェブコンソールの URL とワイヤレベルプロトコルのエンドポイント

• [ユーザー] セクションに、ブローカーに関連付けられたユーザー (p. 46)

チュートリアル: Amazon MQ ブローカーユーザーのリストと作成

ActiveMQ ユーザー は、ActiveMQ ブローカーのキューとトピックにアクセスできる人またはアプリケーションです。特定のアクセス権限を持つようにユーザーを設定できます。たとえば、一部のユーザーにActiveMQ ウェブコンソール にアクセスすることを許可できます。

A グループ is a semantic label. You can assign a group to a user and configure permissions for groups tosend to, receive from, and administer specific queues and topics.

31

Page 37: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイド新しいユーザーを作成するには

Note

You can't configure groups independently of users. A group label is created when you add at leastone user to it and deleted when you remove all users from it.

次の例では、AWS Management Console を使用した Amazon MQ ブローカーユーザーの作成、編集、削除の方法を示します。

トピック• 新しいユーザーを作成するには (p. 32)• 既存のユーザーを編集するには (p. 32)• 既存のユーザーを削除するには (p. 33)

新しいユーザーを作成するには1. Sign in to the Amazon MQ console.2. ブローカーのリストから、ブローカーの名前 (例: [MyBroker]) を選択し、[編集] を選択します。

[MyBroker] ページの [Users] セクションに、このブローカーのすべてのユーザーが一覧表示されます。

3. [Create user] を選択します。4. [ユーザーの作成] ダイアログボックスに、[ユーザー名] と [パスワード] を入力します。5. (省略可能) ユーザーが属するグループの名前をコンマで区切って入力します (例: Devs, Admins)。6. (省略可能) ユーザーが ActiveMQ ウェブコンソールにアクセスできるようにするには、[ActiveMQ

ウェブコンソール] を選択します。7. [Create user] を選択します。

Important

ユーザーに変更を加えても、ユーザーに即座には変更が適用されません。変更を適用するには、次のメンテナンスウィンドウを待つ (p. 25)か、ブローカーを再起動する (p. 33)必要があります。詳細については、「Amazon MQ ブローカーの設定のライフサイクル (p. 61)」を参照してください。

既存のユーザーを編集するには1. Sign in to the Amazon MQ console.2. ブローカーのリストから、ブローカーの名前 (例: [MyBroker]) を選択し、[編集] を選択します。

[MyBroker] ページの [Users] セクションに、このブローカーのすべてのユーザーが一覧表示されます。

32

Page 38: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイド既存のユーザーを削除するには

3. ユーザー名を選択し、[編集] を選択します。

[ユーザーの編集] ダイアログボックスが表示されます。4. (省略可能) 新しい [パスワード] を入力します。5. (省略可能) ユーザーが属するグループの名前をコンマで区切って追加または削除します (例:

Managers, Admins)。6. (省略可能) ユーザーが ActiveMQ ウェブコンソールにアクセスできるようにするには、[ActiveMQ

ウェブコンソール] を選択します。7. ユーザーに対する変更を保存するには、[完了] を選択します。

Important

ユーザーに変更を加えても、ユーザーに即座には変更が適用されません。変更を適用するには、次のメンテナンスウィンドウを待つ (p. 25)か、ブローカーを再起動する (p. 33)必要があります。詳細については、「Amazon MQ ブローカーの設定のライフサイクル (p. 61)」を参照してください。

既存のユーザーを削除するには1. Sign in to the Amazon MQ console.2. ブローカーのリストから、ブローカーの名前 (例: [MyBroker]) を選択し、[編集] を選択します。

[MyBroker] ページの [Users] セクションに、このブローカーのすべてのユーザーが一覧表示されます。

3. ユーザー名 (例: [MyUser]) を選択し、[削除] を選択します。4. ユーザーの削除を確認するには、[Delete MyUser? (MyUser を削除しますか?)] ダイアログボックス

で、[削除] を選択します。Important

ユーザーに変更を加えても、ユーザーに即座には変更が適用されません。変更を適用するには、次のメンテナンスウィンドウを待つ (p. 25)か、ブローカーを再起動する (p. 33)必要があります。詳細については、「Amazon MQ ブローカーの設定のライフサイクル (p. 61)」を参照してください。

チュートリアル: Amazon MQ ブローカーの再起動新しい設定をブローカーに適用するには、ブローカーを再起動します。また、ブローカーが応答しない場合も、ブローカーを再起動して障害から復旧できます。

次の例では、AWS Management Console を使用した Amazon MQ ブローカーの再起動の方法について示します。

Amazon MQ ブローカーを再起動するには1. Sign in to the Amazon MQ console.2. ブローカーのリストから、ブローカーの名前 (MyBroker など) を選択します。

33

Page 39: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドブローカーの削除

3. [MyBroker] ページで、[Actions]、[Reboot broker] の順に選択します。Important

再起動中のブローカーはオフラインになります。

4. [Reboot broker] ダイアログボックスで、[Reboot] を選択します。

ブローカーを再起動するには約 5 分かかります。

チュートリアル: Amazon MQ ブローカーの削除Amazon MQ ブローカーを使用しない場合 (さらに近い将来も使用する予定がない場合) は、ベストプラクティスとして、ブローカーを Amazon MQ から削除し、AWS のコストを削減します。

次の例では、AWS Management Console を使用してブローカーを削除する方法を示します。

Amazon MQ ブローカーを削除するには1. Sign in to the Amazon MQ console.2. ブローカーのリストから、ブローカー (MyBroker など) を選択し、[Delete] を選択します。3. [Delete MyBroker?] ダイアログボックスで、「delete」と入力し、[Delete] を選択します。

ブローカーの削除にはおよそ 5 分かかります。

チュートリアル: Amazon MQ の CloudWatch メトリクスへのアクセス

Amazon MQ と Amazon CloudWatch は統合されているため、CloudWatch を使用して ActiveMQ ブローカーのメトリクスおよびブローカーの送信先(キューとトピック)を表示して分析できます。CloudWatchコンソール、AWS CLI、または CloudWatch CLI を使用して、Amazon MQ メトリクスを表示、分析できます。Amazon MQ の CloudWatch メトリクスは、1 分ごとにブローカーから自動的にポーリングされ、CloudWatch にプッシュされます。

Amazon MQ メトリックスの一覧については、「CloudWatch を使用した Amazon MQ のモニタリング (p. 104)」を参照してください。

メトリクスの CloudWatch アラームを作成する方法の詳細については、Amazon CloudWatch User Guideの「CloudWatch アラームの作成または編集」を参照してください。

34

Page 40: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドAWS Management Console

Note

CloudWatch でレポートされた Amazon MQ メトリクスについては料金は発生しません。これらのメトリクスは Amazon MQ サービスの一部として提供されます。CloudWatch は、最初の 200 件の送信先のみをモニタリングします。

トピック• AWS Management Console (p. 35)• AWS Command Line Interface (p. 37)• Amazon CloudWatch API (p. 37)

AWS Management Console次の例では、AWS Management Console を使用して Amazon MQ の CloudWatch メトリクスにアクセスする方法を示します。

Note

すでに Amazon MQ コンソールにサインインしている場合は、ブローカーの [詳細] ページで、[アクション]、[CloudWatch メトリクスを表示] を選択します。

1. CloudWatch コンソールにサインインします。2. ナビゲーションパネルで [メトリクス] を選択します。3. [AmazonMQ] メトリクスの名前空間を選択します。

35

Page 41: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドAWS Management Console

4. 次のいずれかのメトリクスディメンションを選択します。

• ブローカーのメトリクス• ブローカー別のキューメトリクス• ブローカー別のトピックメトリクス

この例では、[ブローカーのメトリクス] が選択されています。

5. Amazon MQ メトリクスを精査できるようになりました。

• メトリクスを並べ替えるには、列見出しを使用します。

• メトリクスをグラフ表示するには、メトリクスの横にあるチェックボックスを選択します。• メトリクスでフィルタするには、メトリクスの名前を選択し、[Add to search] を選択します。

36

Page 42: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドAWS Command Line Interface

AWS Command Line InterfaceAWS CLI を使用して Amazon MQ メトリクスにアクセスするには、get-metric-statistics コマンドを使用します。

詳細については、『Amazon CloudWatch User Guide』の「メトリクスの統計を取得する」を参照してください。

Amazon CloudWatch APICloudWatch API を使用して Amazon MQ メトリクスにアクセスするには、GetMetricStatistics アクションを使用します。

詳細については、『Amazon CloudWatch User Guide』の「メトリクスの統計を取得する」を参照してください。

37

Page 43: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイド基本的要素

Amazon MQ の詳細Amazon MQ を使用すると、ニーズに合ったコンピューティングおよびストレージリソースを使用するメッセージブローカーを簡単に作成できます。ブローカーは、AWS Management Console、Amazon MQREST API、または AWS Command Line Interface を使用して作成、管理、および削除できます。

このセクションでは、メッセージブローカーの基本的な要素について説明し、使用可能な Amazon MQ ブローカーインスタンスタイプとステータスをリストします。ブローカーアーキテクチャの概要を提供して、ブローカー設定パラメータについて説明し、ActiveMQ ブローカーで Java Message Service (JMS) を使用する実例を提供します。

Amazon MQ REST API については、『Amazon MQ REST API リファレンス』を参照してください。

トピック• Amazon MQ の基本的要素 (p. 38)• Amazon MQ ブローカーのアーキテクチャ (p. 46)• Amazon MQ ブローカー設定パラメータ (p. 62)• ActiveMQ での Java Message Service (JMS) 使用の実例 (p. 78)• リソースのタグ付け (p. 85)

Amazon MQ の基本的要素このセクションでは、Amazon MQ を理解するうえで不可欠な主要概念を説明します。

トピック• ブローカー (p. 38)• 設定 (p. 44)• エンジン (p. 44)• ストレージ (p. 45)• User (p. 46)

ブローカーブローカーは、Amazon MQ で実行されるメッセージブローカー環境です。これは、Amazon MQ の基本的な構成要素です。 ブローカーインスタンスのクラス(m5、t2)および サイズ(large、micro)を組み合わせた記述がブローカーインスタンスタイプ(mq.m5.large など)です。詳細については、「ブローカーインスタンスタイプ (p. 40)」を参照してください。

• 単一インスタンスブローカー は 1 つのアベイラビリティーゾーンの 1 つのブローカーで構成される。ブローカーは、アプリケーションおよび Amazon EFS (デフォルト)、または Amazon EBS と通信します。

• アクティブ/スタンバイブローカー は 2 つの異なるアベイラビリティーゾーンにある 2 つのブローカーで構成される、冗長なペアで設定されています。これらのブローカーは、アプリケーションおよびAmazon EFS と同期的に通信します。

詳細については、「Amazon MQ ブローカーのアーキテクチャ (p. 46)」を参照してください。

マイナーバージョンの自動アップグレード を有効にして、Apache から新しいマイナーバージョンがリリースされたときにブローカーエンジンをそのバージョンにアップグレードできます。自動アップグレードは、メンテナンスウィンドウ中に行われます。メンテナンスウィンドウは、曜日、時間(24 時間形式)、タイムゾーン(デフォルトは UTC)で定義します。

38

Page 44: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドブローカー

ブローカーを作成および管理する方法については、以下を参照してください。

• ブローカーの作成と設定 (p. 11)• ブローカーに関連する制限事項 (p. 101)• ブローカーステータス (p. 43)

サポートされているワイヤレベルプロトコルブローカーにアクセスするには、ActiveMQ でサポートされている任意のプログラミング言語 を使用し、以下のプロトコルに対して TLS を明示的に有効にします。

• AMQP• MQTT• MQTT over WebSocket• OpenWire• STOMP• STOMP over WebSocket

属性ブローカーには複数の属性があります。次に例を示します。

• 名前 (MyBroker)• ID (b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9)• Amazon リソースネーム (ARN) (arn:aws:mq:us-east-2:123456789012:broker:MyBroker:b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9)

• ActiveMQ ウェブコンソール URL (https://b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.mq.us-east-2.amazonaws.com:8162)

詳細については、Apache ActiveMQ ドキュメントの「Web Console」を参照してください。

Important

activemq-webconsole グループを含まない承認マップを指定した場合、ActiveMQ ウェブコンソールを使用することはできません。このグループは Amazon MQ ブローカーとのメッセージの送受信が承認されていないためです。

• ワイヤレベルプロトコルのエンドポイント:• amqp+ssl://b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.mq.us-east-2.amazonaws.com:5671

• mqtt+ssl://b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.mq.us-east-2.amazonaws.com:8883

• ssl://b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.mq.us-east-2.amazonaws.com:61617

Note

これは OpenWire エンドポイントです。• stomp+ssl://b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.mq.us-east-2.amazonaws.com:61614

• wss://b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.mq.us-east-2.amazonaws.com:61619

詳細については、Apache ActiveMQ ドキュメントの「Configuring Transports」を参照してください。

39

Page 45: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドブローカー

Note

アクティブ/スタンバイブローカーに対して、Amazon MQ は 2 つの ActiveMQ ウェブコンソールURL を提供しますが、一度にアクティブになる URL は 1 つのみです。同様に、Amazon MQ はワイヤレベルプロトコルのエンドポイントごとに 2 つのエンドポイントを提供しますが、各ペアで一度にアクティブになるエンドポイントは 1 つのみです。-1 サフィックスと -2 サフィックスは冗長なペアを示します。

ブローカー属性の詳細なリストについては、Amazon MQ REST API リファレンス で以下を参照してください。

• REST オペレーション ID: ブローカー• REST オペレーション ID: ブローカー• REST オペレーション ID: ブローカーの再起動

インスタンスタイプブローカーインスタンスのクラス(m5、t2)および サイズ(large、micro)を組み合わせた記述がブローカーインスタンスタイプ(mq.m5.large など)です。 次の表は、使用できる Amazon MQ ブローカーインスタンスタイプの一覧です。

Important

Amazon EBS は、mq.m5 ブローカーインスタンスタイプファミリーとのみ使用できます。詳細については、「ブローカーストレージ (p. 45)」を参照してください。

インスタンスタイプ

vCPU メモリ (GiB) ネットワークパフォーマンス

コメント

mq.t2.micro 1 1 低 Amazon MQ の基本的な評価には mq.t2.micro インスタンスタイプを使用します。このインスタンスタイプ (単一インスタンスブローカーのみ) は AWS 無料利用枠の対象です。

Note

mq.t2.microインスタンスタイプの使用は、CPUクレジットおよびベースラインのパフォーマンスの制約を受けます。このタイ

40

Page 46: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドブローカー

インスタンスタイプ

vCPU メモリ (GiB) ネットワークパフォーマンス

コメント

プは、ベースラインレベルを超えてバーストする機能を備えています (詳細については、CpuCreditBalance (p. 104)メトリクスを参照してください)。アプリケーションで固定パフォーマンスが必要な場合は、mq.m5.largeインスタンスタイプの使用を検討してください。

mq.m5.large 2 8 高 一般的な開発、テスト、および本稼動のワークロードには、mq.m5.largeインスタンスを使用します。

41

Page 47: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドブローカー

インスタンスタイプ

vCPU メモリ (GiB) ネットワークパフォーマンス

コメント

mq.m5.xlarge 4 16 高

mq.m5.2xlarge 8 32 高

mq.m5.4xlarge 16 64 高

高いスループットを必要とする一般的な開発、テスト、および本稼働のワークロードには、mq.m5.xlarge、mq.m5.2xlargeおよびmq.m5.4xlargeインスタンスタイプを使用します。

Note

システムが永続的なメッセージを使用する場合、そのスループットはメッセージが消費される速度に依存します。メッセージがすぐに消費されない場合、永続的なメッセージのあるより大きなインスタンスタイプを使用することは、システムのスループットを向上させない場合があります。この場合には、concurrentStoreAndDispatchQueuesに false属性を設定することが推奨されま

42

Page 48: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドブローカー

インスタンスタイプ

vCPU メモリ (GiB) ネットワークパフォーマンス

コメント

す。詳細については、「遅いコンシューマーのキューで同時保存とディスパッチを無効にする (p. 97)」を参照してください。

mq.m4.large 2 8 中 既存のブローカーのデプロイとの互換性のあるmq.m4.large インスタンスタイプを使用します。新しいブローカーには mq.m5.* インスタンスの使用が推奨されます。

スループットの考察に関する詳細は、「最良なスループットのために正しいブローカーインスタンスタイプを選択する (p. 97)」を参照してください。

ステータスステータスによって、ブローカーの現在の状態が示されます。次の表に、Amazon MQ ブローカーのステータスを一覧表示します。

コンソール API 説明

作成に失敗 CREATION_FAILED ブローカーを作成できませんでした。

作成を実行中 CREATION_IN_PROGRESS ブローカーは現在作成中です。

削除を実行中 DELETION_IN_PROGRESS ブローカーは現在削除中です。

再起動の進行中 REBOOT_IN_PROGRESS ブローカーは現在再起動中です。

実行中 RUNNING ブローカーが機能しています。

43

Page 49: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイド設定

設定設定には、ActiveMQ ブローカーのすべての設定が XML 形式で含まれています (ActiveMQ のactivemq.xml ファイルに似ています)。 ブローカーを作成する前に設定を作成できます。次に、その設定を 1 つ以上のブローカーに適用できます。

Important

設定を変更しても、ブローカーに即座には変更が適用されません。変更を適用するには、次のメンテナンスウィンドウを待つ (p. 25)か、ブローカーを再起動する (p. 33)必要があります。詳細については、「Amazon MQ ブローカーの設定のライフサイクル (p. 61)」を参照してください。現在、設定を削除することはできません。

設定を作成、編集および管理する方法については、以下を参照してください。

• ブローカー設定の作成と適用 (p. 20)• ブローカー設定の編集と管理 (p. 23)• 設定に関連する制限 (p. 101)• Amazon MQ ブローカー設定パラメータ (p. 62)

設定に加えた変更を追跡するために、設定のリビジョンを作成できます。詳細については、「ブローカー設定の作成と適用 (p. 20)」および「ブローカー設定の編集と管理 (p. 23)」を参照してください。

属性ブローカー設定には複数の属性があります。次に例を示します。

• 名前 (MyConfiguration)• ID (c-1234a5b6-78cd-901e-2fgh-3i45j6k178l9)• Amazon リソースネーム (ARN) (arn:aws:mq:us-east-2:123456789012:configuration:MyConfiguration:c-1234a5b6-78cd-901e-2fgh-3i45j6k178l9)

設定属性の詳細なリストについては、Amazon MQ REST API リファレンス で以下を参照してください。

• REST オペレーション ID: 設定• REST オペレーション ID: 設定

設定のリビジョン属性の詳細なリストについては、以下を参照してください。

• REST オペレーション ID: 設定のリビジョン• REST オペレーション ID: 設定のリビジョン

エンジンブローカーエンジンとは、Amazon MQ で実行されるメッセージブローカーのタイプです。

Amazon MQ は、ActiveMQ の以下のバージョンをサポートします。

• ActiveMQ 5.15.10 (推奨)• ActiveMQ 5.15.9

44

Page 50: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドストレージ

• ActiveMQ 5.15.8• ActiveMQ 5.15.6• ActiveMQ 5.15.0

ストレージデフォルトでは、Amazon MQ は ブローカーストレージに Amazon Elastic File System (Amazon EFS)を使用します。複数のアベイラビリティーゾーン全体で高い耐久性とレプリケーションを活用するには、Amazon EFS を使用します。低レイテンシーと高スループットを活用するには、Amazon EBS を使用します。

Important

• Amazon EBS は、mq.m5 ブローカーインスタンスタイプファミリーとのみ使用できます。• ブローカーインスタンスタイプは変更できますが、ブローカーの作成後にブローカーストレー

ジタイプを変更することはできません。• Amazon EBS は 1 つのアベイラビリティーゾーン内でデータをレプリケートし、アクティブ/ス

タンバイ (p. 50)のデプロイモードをサポートしません。• Amazon EBS を操作する場合、ブローカー用の唯一のメッセージストレージ場所として

Amazon EBS を使用するのではなく、アプリケーションでメッセージデータを再作成できるようにするメカニズムを作成することをお勧めします (必要な場合)。たとえば、JMS または XAトランザクション を使用したり、メッセージを再生または再生成できる場所にメッセージを保存したりできます。

ストレージタイプ間の相違点次の表は、インメモリストレージタイプ、Amazon EFS ストレージタイプ、および Amazon EBS ストレージタイプの違いを簡単にまとめたものです。

ストレージタイプ Persistence ユースケースの例 プロデューサーあたり、1 秒あたりのエンキューされたメッセージの概算最大数 (1 KB のメッセージ)

レプリケーション

インメモリ 非永続的 • 株価情報• 位置情報の更新• 頻繁に変更され

るデータ

5,000 なし

Amazon EBS 永続 • 大量のテキスト• 注文処理

500 1 つのアベイラビリティーゾーン(AZ) 内の複数のコピー

Amazon EFS 永続 金融取引 80 複数の AZ にまたがる複数のコピー

インメモリメッセージストレージは、レイテンシーが最も低く、最大のスループットを提供します。ただし、メッセージはインスタンスの置き換えまたはブローカーの再起動中に失われます。

45

Page 51: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドUser

Amazon EFS は、単一のコンポーネントの障害や AZ の可用性に影響する問題によって生じるデータの損失を防ぐために、耐久性が高く、複数の AZ にまたがってレプリケートされるように設計されています。Amazon EBS はスループットに最適化されており、単一の AZ 内の複数のサーバーにまたがってレプリケートされます。

UserActiveMQ ユーザー は、ActiveMQ ブローカーのキューとトピックにアクセスできる人またはアプリケーションです。特定のアクセス権限を持つようにユーザーを設定できます。たとえば、一部のユーザーにActiveMQ ウェブコンソール にアクセスすることを許可できます。

A グループ is a semantic label. You can assign a group to a user and configure permissions for groups tosend to, receive from, and administer specific queues and topics.

Important

ユーザーに変更を加えても、ユーザーに即座には変更が適用されません。変更を適用するには、次のメンテナンスウィンドウを待つ (p. 25)か、ブローカーを再起動する (p. 33)必要があります。詳細については、「Amazon MQ ブローカーの設定のライフサイクル (p. 61)」を参照してください。

ユーザーとグループの詳細については、Apache ActiveMQ ドキュメントの以下の項目を参照してください。

• 承認• 認可の例

ActiveMQ ユーザーを作成、編集および削除する方法については、以下を参照してください。

• Amazon MQ ブローカーユーザーの作成と管理 (p. 31)• ユーザーに関連する制限 (p. 102)

属性ユーザー属性の詳細なリストについては、Amazon MQ REST API リファレンス で以下を参照してください。

• REST オペレーション ID: ユーザー• REST オペレーション ID: ユーザー

Amazon MQ ブローカーのアーキテクチャAmazon MQ ブローカーは単一インスタンスブローカーまたはアクティブ/スタンバイブローカーとして作成できます。両方のデプロイモード Amazon MQ は、データを冗長に保存することで、高い耐久性を実現します。

Note

Amazon MQ は、データストアとして Apache KahaDB を使用します。その他のデータストア(JDBC や LevelDB など) はサポートされていません。

ブローカーにアクセスするには、ActiveMQ でサポートされている任意のプログラミング言語 を使用し、以下のプロトコルに対して TLS を明示的に有効にします。

46

Page 52: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイド単一インスタンスブローカー

• AMQP• MQTT• MQTT over WebSocket• OpenWire• STOMP• STOMP over WebSocket

トピック• Amazon MQ 単一インスタンスブローカー (p. 47)• Amazon MQ 高可用性対応アクティブ/スタンバイブローカー (p. 50)• Amazon MQ ブローカーのネットワーク (p. 51)• Amazon MQ ブローカーの設定のライフサイクル (p. 61)

Amazon MQ 単一インスタンスブローカー単一インスタンスブローカー は 1 つのアベイラビリティーゾーンの 1 つのブローカーで構成される。ブローカーは、アプリケーションおよび Amazon EFS (デフォルト)、または Amazon EBS と通信します。詳細については、「ブローカーストレージ (p. 45)」を参照してください。

次の図は、複数のアベイラビリティーゾーン (AZ) にレプリケートされた Amazon EFS ストレージを持つ単一インスタンスブローカーを示しています。

47

Page 53: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイド単一インスタンスブローカー

次の図は、単一の AZ 内の複数のサーバーにレプリケートされた Amazon EBS ストレージを持つ単一インスタンスブローカーを示しています。

48

Page 54: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイド単一インスタンスブローカー

49

Page 55: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイド高可用性対応アクティブ/スタンバイブローカー

Amazon MQ 高可用性対応アクティブ/スタンバイブローカースタンバイブローカー は 2 つの異なるアベイラビリティーゾーンにある 2 つのブローカーで構成される、冗長なペアで設定されています。これらのブローカーは、アプリケーションおよび Amazon EFS と同期的に通信します。 詳細については、「ブローカーストレージ (p. 45)」を参照してください。

通常、1 つのブローカーインスタンスのみが常時アクティブであり、他のブローカーインスタンスはスタンバイです。いずれかのブローカーインスタンスが正しく機能しない場合、またはメンテナンスが行われる場合、非アクティブなインスタンスのサービスを停止するには、Amazon MQ が少しかかります。これにより、正常なスタンバイインスタンスがアクティブになり、受信中の通信の受け入れを開始できます。。ブローカーを再起動する場合、フェイルオーバーには数秒しかかかりません。

アクティブ/スタンバイブローカーに対して、Amazon MQ は 2 つの ActiveMQ ウェブコンソール URL を提供しますが、一度にアクティブになる URL は 1 つのみです。同様に、Amazon MQ はワイヤレベルプロトコルのエンドポイントごとに 2 つのエンドポイントを提供しますが、各ペアで一度にアクティブになるエンドポイントは 1 つのみです。-1 サフィックスと -2 サフィックスは冗長なペアを示します。 ワイヤレベルプロトコルのエンドポイントの場合は、フェイルオーバートランスポート を使用して、アプリケーションからいずれかのエンドポイントに接続できます。

次の図は、Amazon EFS ストレージを備えたアクティブ/スタンバイブローカーを示しています。

50

Page 56: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドブローカーのネットワーク

Amazon MQ ブローカーのネットワークAmazon MQ は ActiveMQ のブローカーのネットワーク機能をサポートしています。

ブローカーのネットワークは、複数の同時にアクティブになっている単一インスタンスブローカー (p. 47)またはアクティブ/スタンバイブローカー (p. 50)で構成されます。ブローカーのネットワークは、アプリケーションのニーズ (高可用性やスケーラビリティなど) に応じて、さまざまなトポロジー (p. 54) (コンセントレータ、ハブアンドスポーク、ツリー、メッシュなど) で設定できます。たとえば、ハブアンドスポーク (p. 56)型のブローカーのネットワークは、レジリエンスを高めて、1 つのブローカーが到達不能である場合にメッセージを保持できます。ブローカーのネットワークのトポロジーがコンセントレータ (p. 57)型である場合は、着信メッセージを受け入れる多数のブローカーから収集したメッセージをより中央のブローカーに集中させることで、多数の着信メッセージの負荷をより効率的に処理できます。

チュートリアルおよび詳細な設定情報については、以下を参照してください。

• ブローカーのネットワークの作成と設定 (p. 15)

51

Page 57: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドブローカーのネットワーク

• ブローカーのネットワークを正しく設定する (p. 98)• networkConnector (p. 76)

• networkConnectionStartAsync (p. 72)

• ActiveMQ ドキュメントの「ブローカーのネットワーク」

ブローカーのネットワークを使用すると、以下のような利点があります。

• ブローカーのネットワークを作成すると、ブローカーインスタンスを追加することで、総スループットと最大プロデューサーおよびコンシューマー接続数を増やすことができます。

• プロデューサーとコンシューマーが複数のアクティブなブローカーインスタンスを認識できるようにすることで、可用性を向上させることができます。これにより、現在接続しているインスタンスが使用できなくなった場合に、新しいインスタンスに再接続できます。

• プロデューサーとコンシューマーはブローカーネットワーク内の別のノードにすぐに再接続できるため、また、スタンバイブローカーインスタンスが昇格するのを待つ必要がないため、ブローカーのネットワーク内でのクライアントの再接続は、高可用性のためのアクティブ/スタンバイブローカー (p. 50)よりも高速です。

トピック• ブローカーのネットワークはどのように機能しますか? (p. 52)• ブローカーのネットワークはどのように認証情報を処理しますか? (p. 53)• サンプル設計図 (p. 53)• ブローカートポロジのネットワーク (p. 54)•  クロスリージョン (p. 58)• トランスポートコネクタを使用した動的なフェイルオーバー (p. 60)

ブローカーのネットワークはどのように機能しますか?Amazon MQ は、ブローカー機能の ActiveMQ ネットワークをさまざまな方法でサポートします。まず、ネイティブ ActiveMQ と同じように、各ブローカーの設定内のパラメータを編集してブローカーのネットワークを作成できます。次に、Amazon MQ にはブローカーのネットワークの作成を自動化するためにAWS CloudFormation を使用するサンプルの青写真があります。これらのサンプル設計図を Amazon MQコンソールから直接デプロイすることも、関連する AWS CloudFormation テンプレートを編集して独自のトポロジと構成を作成することもできます。

ブローカーのネットワークは、ネットワークコネクターを使用してブローカー同士を接続することによって確立されます。接続されると、これらのブローカーはメッセージ転送を提供します。たとえば、Broker1が Broker2 へのネットワークコネクターを確立した場合、そのブローカーにキューまたはトピックのコンシューマーがある場合、Broker1 のメッセージは Broker2 に転送されます。ネットワークコネクターがduplex として設定されている場合、メッセージも Broker2 から Broker1 に転送されます。ネットワークコネクターはブローカーの設定で設定されます。「設定 (p. 44)」を参照してください。たとえば、ブローカー設定の networkConnector エントリの例は次のとおりです。

<networkConnectors> <networkConnector name="connector_1_to_2" userName="myCommonUser" duplex="true" uri="static:(ssl://b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.mq.us-east-2.amazonaws.com:61617)"/></networkConnectors>

ブローカーのネットワークは、メッセージがあるブローカーインスタンスから別のブローカーインスタンスに確実に流れ、対応するコンシューマーを持つブローカーインスタンスにのみメッセージを転送するようにします。ネットワーク内でブローカーインスタンスが互いに隣接しているという利点のために、ActiveMQ は、ネットワークに接続したり切断したりするプロデューサーとコンシューマーに関する

52

Page 58: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドブローカーのネットワーク

メッセージをアドバイザリトピックに送信します。ブローカーインスタンスが特定の送信先から消費するプロデューサーに関する情報を受信すると、ブローカーインスタンスはメッセージの転送を開始します。詳細については、ActiveMQ ドキュメントの「アドバイザリトピック」を参照してください。

ブローカーのネットワークはどのように認証情報を処理しますか?ブローカー A がネットワーク内でブローカー B に接続するには、ブローカー A が他のプロデューサーまたはコンシューマーと同様に有効な認証情報を使用する必要があります。ブローカー A の<networkConnector> 設定でパスワードを提供する代わりに、ブローカー B の別のユーザーと同じ値を持つブローカー A のユーザーを最初に作成する必要があります (これらは同じユーザー名を共有する別の、一意のユーザーです)。<networkConnector> 設定で userName 属性を指定すると、Amazon MQ は実行時に自動的にパスワードを追加します。

Important

<networkConnector> には password 属性を指定しないでください。プレーンテキストのパスワードをブローカー設定ファイルに保存することはお勧めしません。パスワードが Amazon MQコンソールに表示されるためです。詳細については、「ブローカー用のネットワークコネクターを設定する (p. 17)」を参照してください。

ブローカーは、同じ VPC またはピア接続された VPC に属している必要があります。詳細については、ブローカーのネットワークの作成と設定 (p. 15)チュートリアルの「前提条件 (p. 16)」を参照してください。

サンプル設計図ブローカーのネットワークを使い始めるために、Amazon MQ はサンプルの設計図を提供しています。これらのサンプルの設計図は、ブローカーのネットワーク展開、および AWS CloudFormation を使用したすべての関連リソースを作成します。利用可能な 2 つのサンプル設計図は次のとおりです。

1. シングルインスタンスブローカーのメッシュネットワーク2. アクティブ/スタンバイブローカーのメッシュネットワーク

[ブローカーの作成] ページから、サンプルの設計図を 1 つ選択し、[次へ] を選択します。リソースが作成されたら、Amazon MQ コンソールで生成されたブローカーとその設定を確認します。

ブローカーを作成し、ブローカー設定でさまざまな networkConnector 要素を設定することで、さまざまなトポロジでブローカーのネットワークを作成できます。ブローカーのネットワーク設定の詳細については、ActiveMQ ドキュメントの「ブローカーのネットワーク」を参照してください。

53

Page 59: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドブローカーのネットワーク

ブローカートポロジのネットワークブローカーをデプロイし、その設定で networkConnector エントリを設定することで、さまざまなネットワークトポロジを使用してブローカーのネットワークを構築できます。ネットワークコネクターは、接続されているブローカー間でオンデマンドメッセージ転送を提供します。接続は、メッセージがブローカー間で双方向に転送される二重、または転送が一方のブローカーから他方のブローカーにのみ伝達される二重ではないように構成できます。たとえば、Broker1 と Broker2 の間に二重接続があり、コンシューマーが存在する場合は、メッセージはお互いに転送されます。

二重ネットワークコネクターでは、メッセージは各ブローカーから他のブローカーに転送されます。これらは転送されたオンデマンドです。Broker1 のメッセージに対して Broker2 にコンシューマーが存在する場合、そのメッセージは転送されます。同様に、Broker2 のメッセージに対して Broker1 にコンシューマーが存在する場合、そのメッセージも転送されます。

非二重接続の場合、メッセージは一方のブローカーから他方のブローカーにのみ転送されます。この例では、Broker1 のメッセージに対して Broker2 にコンシューマーが存在する場合、そのメッセージは転送されます。しかし、メッセージは Broker2 から Broker1 に転送されません。

二重と非二重の両方のネットワークコネクターを使用して、任意の数のネットワークトポロジでブローカーのネットワークを構築できます。

Note

各ネットワークトポロジの例で、networkConnector 要素は、接続先ブローカーのエンドポイントを参照しています。uri 属性のブローカーエンドポイントエントリをブローカーのエンドポイントに置き換えます。「ブローカーのリストおよびブローカー詳細の表示 (p. 30)」を参照してください。

メッシュトポロジメッシュトポロジは、すべて互いに接続されている複数のブローカーを提供します。この簡単な例では、3つのシングルインスタンスブローカーを接続していますが、より多くのブローカーをメッシュとして設定できます。

54

Page 60: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドブローカーのネットワーク

このトポロジ、およびアクティブ/スタンバイペアのブローカーのメッシュを含むトポロジは、AmazonMQ コンソールのサンプル設計図を使用して作成できます。これらのサンプル設計図デプロイを作成して、機能しているブローカーのネットワークを確認し、それらがどのように設定されているかを確認できます。

Broker2 と Broker3 の両方に二重接続を確立し、Broker2 と Broker3 の間に単一の二重接続を確立するネットワークコネクターを Broker1 に追加することで、このように 3 ブローカーメッシュネットワークを設定できます。

Broker1 のネットワークコネクター:

<networkConnectors> <networkConnector name="connector_1_to_2" userName="myCommonUser" duplex="true" uri="static:(ssl://b-9876l5k4-32ji-109h-8gfe-7d65c4b132a1-2.mq.us-east-2.amazonaws.com:61617)"/> <networkConnector name="connector_1_to_3" userName="myCommonUser" duplex="true" uri="static:(ssl://b-743c885d-2244-4c95-af67-a85017ff234e-3.mq.us-east-2.amazonaws.com:61617)"/></networkConnectors>

Broker2 のネットワークコネクター:

<networkConnectors> <networkConnector name="connector_2_to_3" userName="myCommonUser" duplex="true" uri="static:(ssl://b-743c885d-2244-4c95-af67-a85017ff234e-3.mq.us-east-2.amazonaws.com:61617)"/></networkConnectors>

55

Page 61: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドブローカーのネットワーク

Broker1 と Broker2 の設定に上記のコネクターを追加することで、これら 3 つのブローカー間に、オンデマンドですべてのブローカー間でメッセージを転送するメッシュを作成できます。詳細については、「Amazon MQ ブローカー設定パラメータ (p. 62)」を参照してください。

ハブアンドスポークトポロジハブアンドスポークトポロジでは、スポークのブローカーが中断してもメッセージは保存されます。メッセージは一斉に転送され、中心的な Broker1 だけがネットワークのオペレーションに不可欠です。

この例でブローカーのハブアンドスポークネットワークを設定するには、Broker1 の設定でスポークの各ブローカーに networkConnector を追加します。

<networkConnectors> <networkConnector name="connector_hub_and_spoke_2" userName="myCommonUser" duplex="true"

56

Page 62: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドブローカーのネットワーク

uri="static:(ssl://b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.mq.us-east-2.amazonaws.com:61617)"/> <networkConnector name="connector_hub_and_spoke_3" userName="myCommonUser" duplex="true" uri="static:(ssl://b-9876l5k4-32ji-109h-8gfe-7d65c4b132a1-2.mq.us-east-2.amazonaws.com:61617)"/> <networkConnector name="connector_hub_and_spoke_4" userName="myCommonUser" duplex="true" uri="static:(ssl://b-743c885d-2244-4c95-af67-a85017ff234e-3.mq.us-east-2.amazonaws.com:61617)"/> <networkConnector name="connector_hub_and_spoke_5" userName="myCommonUser" duplex="true" uri="static:(ssl://b-62a7fb31-d51c-466a-a873-905cd660b553-4.mq.us-east-2.amazonaws.com:61617)"/></networkConnectors>

コンセントレータトポロジこのトポロジ例では、一番下の 3 つのブローカーが多数の接続を処理でき、それらのメッセージはBroker1 と Broker2 に集中しています。他の各ブローカーは、より中央のブローカーへの非二重接続を持っています。このトポロジの容量を拡張するために、メッセージを受信してそれらのメッセージをBroker1 と Broker2 に集中させる追加のブローカーを追加することができます。

このトポロジを設定するには、一番下の各ブローカーに、メッセージを集中させている各ブローカーへのネットワークコネクターを含めます。

Broker3 のネットワークコネクター:

<networkConnectors> <networkConnector name="3_to_1" userName="myCommonUser" duplex="false" uri="static:(ssl://b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.mq.us-east-2.amazonaws.com:61617)"/>

57

Page 63: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドブローカーのネットワーク

<networkConnector name="3_to_2" userName="myCommonUser" duplex="false" uri="static:(ssl://b-9876l5k4-32ji-109h-8gfe-7d65c4b132a1-2.mq.us-east-2.amazonaws.com:61617)"/></networkConnectors>

Broker4 のネットワークコネクター:

<networkConnectors> <networkConnector name="4_to_1" userName="myCommonUser" duplex="false" uri="static:(ssl://b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.mq.us-east-2.amazonaws.com:61617)"/> <networkConnector name="4_to_2" userName="myCommonUser" duplex="false" uri="static:(ssl://b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.mq.us-east-2.amazonaws.com:61617)"/></networkConnectors>

Broker5 のネットワークコネクター:

<networkConnectors> <networkConnector name="5_to_1" userName="myCommonUser" duplex="false" uri="static:(ssl://b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.mq.us-east-2.amazonaws.com:61617)"/> <networkConnector name="5_to_2" userName="myCommonUser" duplex="false" uri="static:(ssl://b-9876l5k4-32ji-109h-8gfe-7d65c4b132a1-2.mq.us-east-2.amazonaws.com:61617)"/></networkConnectors>

 クロスリージョンAWS リージョンにまたがるブローカーのネットワークを設定するには、それらのリージョンにブローカーをデプロイし、それらのブローカーのエンドポイントにネットワークコネクターを設定します。

58

Page 64: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドブローカーのネットワーク

この例のようにブローカーのネットワークを設定するには、Broker1 と Broker4 の設定に、それらのブローカーのワイヤレベルのエンドポイントを参照する networkConnectors エントリを追加します。

Broker1 のネットワークコネクター:

<networkConnectors> <networkConnector name="1_to_2" userName="myCommonUser" duplex="true" uri="static:(ssl://b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-2.mq.us-west-2.amazonaws.com)"/> <networkConnector name="1_to_3" userName="myCommonUser" duplex="true" uri="static:(ssl://b-743c885d-2244-4c95-af67-a85017ff234e-3.mq.us-east-2.amazonaws.com:61617)"/>

59

Page 65: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドブローカーのネットワーク

<networkConnector name="1_to_4" userName="myCommonUser" duplex="true" uri="static:(ssl://b-62a7fb31-d51c-466a-a873-905cd660b553-4.mq.us-east-2.amazonaws.com:61617)"/></networkConnectors>

Broker2 のネットワークコネクター:

<networkConnectors> <networkConnector name="2_to_3" userName="myCommonUser" duplex="true" uri="static:(ssl://b-743c885d-2244-4c95-af67-a85017ff234e-3.mq.us-east-2.amazonaws.com:61617)"/></networkConnectors>

Broker4 のネットワークコネクター:

<networkConnectors> <networkConnector name="4_to_3" userName="myCommonUser" duplex="true" uri="static:(ssl://b-743c885d-2244-4c95-af67-a85017ff234e-3.mq.us-east-2.amazonaws.com:61617)"/> <networkConnector name="4_to_2" userName="myCommonUser" duplex="true" uri="static:(ssl://b-9876l5k4-32ji-109h-8gfe-7d65c4b132a1-2.mq.us-west-2.amazonaws.com)"/> <networkConnector name="4_to_1" userName="myCommonUser" duplex="true" uri="static:(ssl://b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.mq.us-west-2.amazonaws.com)"/> </networkConnectors>

トランスポートコネクタを使用した動的なフェイルオーバーnetworkConnector 要素の設定に加えて、ブローカーの transportConnector オプションを設定して動的なフェイルオーバーを有効にし、ネットワークからブローカーが追加または削除されたときに接続を再分散することができます。

<transportConnectors> <transportConnector name="openwire" updateClusterClients="true" rebalanceClusterClients="true" updateClusterClientsOnRemove="true"/></transportConnectors>

この例では、updateClusterClients および rebalanceClusterClients の両方が true に設定されます。この場合、クライアントにはネットワークのブローカーのリストが提供され、新しいブローカーが参加した場合は再分散がリクエストされます。

利用可能なオプション:

• updateClusterClients: ブローカートポロジのネットワークの変化に関する情報をクライアントに渡します。

• rebalanceClusterClients: 新しいブローカーがブローカーのネットワークに追加されたときに、クライアントはブローカー間で再分散されます。

• updateClusterClientsOnRemove: ブローカーがブローカーのネットワークを離れるときに、トポロジ情報を使用してクライアントを更新します。

updateClusterClients を true に設定すると、クライアントはブローカーのネットワークの 1 つのブローカーに接続するように設定されます。

failover:(ssl://b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.mq.us-east-2.amazonaws.com:61617)

60

Page 66: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドブローカー設定のライフサイクル

新しいブローカーが接続すると、そのブローカーはネットワークのすべてのブローカーの URI のリストを受け取ります。ブローカーへの接続に失敗した場合、接続時に、提供されたいずれかのブローカーに動的に切り替えることができます。

フェイルオーバーの詳細については、Active MQ ドキュメントの「Broker-side Options for Failover」を参照してください。

Amazon MQ ブローカーの設定のライフサイクル設定リビジョンまたは ActiveMQ ユーザーに変更を加えても、変更は即座には適用 されません。変更を適用するには、次のメンテナンスウィンドウを待つ (p. 25)か、ブローカーを再起動する (p. 33)必要があります。詳細については、「Amazon MQ ブローカーの設定のライフサイクル (p. 61)」を参照してください。

次の図は設定のライフサイクルを示しています。Important

次回の予定されたメンテナンスウィンドウで再起動がトリガーされます。次回の予定されたメンテナンスウィンドウの前にブローカーを再起動した場合、変更は再起動後に適用されます。

設定を作成、編集および管理する方法については、以下を参照してください。

61

Page 67: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドブローカー設定パラメータ

• ブローカー設定の作成と適用 (p. 20)• ブローカー設定の編集と管理 (p. 23)• Amazon MQ ブローカー設定パラメータ (p. 62)

ActiveMQ ユーザーを作成、編集および削除する方法については、以下を参照してください。

• Amazon MQ ブローカーユーザーの作成と管理 (p. 31)• ユーザーに関連する制限 (p. 102)

Amazon MQ ブローカー設定パラメータ設定には、ActiveMQ ブローカーのすべての設定が XML 形式で含まれています (ActiveMQ のactivemq.xml ファイルに似ています)。 ブローカーを作成する前に設定を作成できます。次に、その設定を 1 つ以上のブローカーに適用できます。 詳細については、以下を参照してください。

• 設定 (p. 44)• ブローカー設定の作成と適用 (p. 20)• ブローカー設定の編集と管理 (p. 23)• 設定に関連する制限 (p. 101)

Spring XML 設定ファイルの使用Spring XML ファイルを使用して ActiveMQ ブローカーを設定します。事前定義された送信先、送信先ポリシー、承認ポリシー、プラグインなど、ActiveMQ ブローカーのさまざまな側面を設定できます。AmazonMQ はネットワーク配信やストレージなど、これらの設定要素の一部を制御します。ブローカーのネットワーク作成など、他の設定オプションは、現在サポートされていません。

サポートされている設定オプションのフルセットは Amazon MQ XML スキーマで指定されています。

• Amazon MQ XML スキーマ — 5.15.10• Amazon MQ XML スキーマ — 5.15.9• Amazon MQ XML スキーマ — 5.15.8• Amazon MQ XML スキーマ — 5.15.6• Amazon MQ XML スキーマ — 5.15.0

これらのスキーマを使用して、設定ファイルを検証し、サニタイズできます。Amazon MQ は XML ファイルをアップロードして設定を提供することもできます。XML ファイルをアップロードすると、スキーマに従って無効および禁止されている設定パラメータが Amazon MQ によって自動的にサニタイズされ削除されます。

Note

属性には静的な値のみを使用できます。Amazon MQ は設定から Spring 式、変数、および要素参照を含む要素および属性をサニタイズします。

トピック• Amazon MQ 設定で許可された要素 (p. 63)• Amazon MQ 設定で許可された要素とその属性 (p. 65)• Amazon MQ 設定で許可された要素、子コレクション要素、およびその子要素 (p. 72)

62

Page 68: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイド許可された要素

Amazon MQ 設定で許可された要素Amazon MQ 設定で許可された要素の詳細なリストを次に示します。詳細については、Apache ActiveMQドキュメントの XML 設定を参照してください。

要素

abortSlowAckConsumerStrategy (属性) (p. 65)

abortSlowConsumerStrategy (属性) (p. 65)

authorizationEntry (属性) (p. 65)

authorizationMap (子コレクション要素) (p. 72)

authorizationPlugin (子コレクション要素) (p. 72)

broker (属性 (p. 65) | 子コレクション要素) (p. 72)

cachedMessageGroupMapFactory (属性) (p. 66)

compositeQueue (属性 (p. 66) | 子コレクション要素) (p. 73)

compositeTopic (属性 (p. 66) | 子コレクション要素) (p. 73)

constantPendingMessageLimitStrategy (属性) (p. 67)

discarding (属性) (p. 67)

discardingDLQBrokerPlugin (属性) (p. 67)

fileCursor

fileDurableSubscriberCursor

fileQueueCursor

filteredDestination (属性) (p. 67)

fixedCountSubscriptionRecoveryPolicy (属性) (p. 67)

fixedSizedSubscriptionRecoveryPolicy (属性) (p. 67)

forcePersistencyModeBrokerPlugin (属性) (p. 67)

individualDeadLetterStrategy (属性) (p. 67)

lastImageSubscriptionRecoveryPolicy

messageGroupHashBucketFactory (属性) (p. 68)

mirroredQueue (属性) (p. 68)

noSubscriptionRecoveryPolicy

oldestMessageEvictionStrategy (属性) (p. 68)

oldestMessageWithLowestPriorityEvictionStrategy (属性) (p. 68)

policyEntry (属性 (p. 68) | 子コレクション要素) (p. 73)

policyMap (子コレクション要素) (p. 74)

63

Page 69: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイド許可された要素

要素

prefetchRatePendingMessageLimitStrategy (属性) (p. 69)

priorityDispatchPolicy

priorityNetworkDispatchPolicy

queryBasedSubscriptionRecoveryPolicy (属性) (p. 69)

queue (属性) (p. 70)

redeliveryPlugin (属性 (p. 70) | 子コレクション要素) (p. 74)

redeliveryPolicy (属性) (p. 70)

redeliveryPolicyMap (子コレクション要素) (p. 74)

retainedMessageSubscriptionRecoveryPolicy (子コレクション要素) (p. 74)

roundRobinDispatchPolicy

sharedDeadLetterStrategy (属性 (p. 70) | 子コレクション要素) (p. 75)

simpleDispatchPolicy

simpleMessageGroupMapFactory

statisticsBrokerPlugin

storeCursor

storeDurableSubscriberCursor (属性) (p. 70)

strictOrderDispatchPolicy

tempDestinationAuthorizationEntry (属性) (p. 70)

tempQueue (属性) (p. 71)

tempTopic (属性) (p. 71)

timedSubscriptionRecoveryPolicy (属性) (p. 71)

timeStampingBrokerPlugin (属性) (p. 71)

topic (属性) (p. 71)

transportConnector (属性) (p. 71)

uniquePropertyMessageEvictionStrategy (属性) (p. 71)

virtualDestinationInterceptor (子コレクション要素) (p. 75)

virtualTopic (属性) (p. 71)

vmCursor

vmDurableCursor

vmQueueCursor

64

Page 70: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイド許可された属性

Amazon MQ 設定で許可された要素とその属性Amazon MQ 設定で許可された要素とその属性の詳細なリストを次に示します。詳細については、ApacheActiveMQ ドキュメントの XML 設定を参照してください。

要素 属性

abortConnection

checkPeriod

ignoreIdleConsumers

ignoreNetworkConsumers

maxSlowCount

maxSlowDuration

maxTimeSinceLastAck

abortSlowAckConsumerStrategy

name

abortConnection

checkPeriod

ignoreNetworkConsumers

maxSlowCount

maxSlowDuration

abortSlowConsumerStrategy

name

admin

queue

read

tempQueue

tempTopic

topic

authorizationEntry

write

advisorySupport

allowTempAutoCreationOnSend

cacheTempDestinations

consumerSystemUsagePortion

dedicatedTaskRunner

deleteAllMessagesOnStartup

broker

keepDurableSubsActive

65

Page 71: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイド許可された属性

要素 属性

maxPurgedDestinationsPerSweep

monitorConnectionSplits

networkConnectorStartAsync (p. 72)

offlineDurableSubscriberTaskSchedule

offlineDurableSubscriberTimeout

persistenceThreadPriority

persistent

populateJMSXUserID

producerSystemUsagePortion

rejectDurableConsumers

rollbackOnlyOnAsyncException

schedulePeriodForDestinationPurge

schedulerSupport

splitSystemUsageForProducersConsumers

taskRunnerPriority

timeBeforePurgeTempDestinations

useAuthenticatedPrincipalForJMSXUserID

useMirroredQueues

useTempMirroredQueues

useVirtualDestSubs

useVirtualDestSubsOnCreation

useVirtualTopics

cachedMessageGroupMapFactory cacheSize

concurrentSend

copyMessage

forwardOnly

compositeQueue

name

concurrentSend

copyMessage

forwardOnly

compositeTopic

name

66

Page 72: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイド許可された属性

要素 属性

constantPendingMessageLimitStrategy limit

deadLetterQueue

enableAudit

expiration

maxAuditDepth

maxProducersToAudit

processExpired

discarding

processNonPersistent

dropAll

dropOnly

dropTemporaryQueues

dropTemporaryTopics

discardingDLQBrokerPlugin

reportInterval

queue

selector

filteredDestination

topic

fixedCountSubscriptionRecoveryPolicy maximumSize

maximumSizefixedSizedSubscriptionRecoveryPolicy

useSharedBuffer

forcePersistencyModeBrokerPlugin persistenceFlag

destinationPerDurableSubscriber

enableAudit

expiration

maxAuditDepth

maxProducersToAudit

processExpired

processNonPersistent

queuePrefix

queueSuffix

topicPrefix

individualDeadLetterStrategy

topicSuffix

67

Page 73: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイド許可された属性

要素 属性

useQueueForQueueMessages

useQueueForTopicMessages

bucketCountmessageGroupHashBucketFactory

cacheSize

copyMessage

postfix

mirroredQueue

prefix

oldestMessageEvictionStrategy evictExpiredMessagesHighWatermark

oldestMessageWithLowestPriorityEvictionStrategyevictExpiredMessagesHighWatermark

advisoryForConsumed

advisoryForDelivery

advisoryForDiscardingMessages

advisoryForFastProducers

advisoryForSlowConsumers

advisoryWhenFull

allConsumersExclusiveByDefault

alwaysRetroactive

blockedProducerWarningInterval

consumersBeforeDispatchStarts

cursorMemoryHighWaterMark

doOptimzeMessageStorage

durableTopicPrefetch

enableAudit

expireMessagesPeriod

gcInactiveDestinations

gcWithNetworkConsumers

inactiveTimeoutBeforeGC

inactiveTimoutBeforeGC

includeBodyForAdvisory

lazyDispatch

policyEntry

maxAuditDepth

68

Page 74: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイド許可された属性

要素 属性

maxBrowsePageSize

maxDestinations

maxExpirePageSize

maxPageSize

maxProducersToAudit

maxQueueAuditDepth

memoryLimit

messageGroupMapFactoryType

minimumMessageSize

optimizedDispatch

optimizeMessageStoreInFlightLimit

persistJMSRedelivered

prioritizedMessages

producerFlowControl

queue

queueBrowserPrefetch

queuePrefetch

reduceMemoryFootprint

sendAdvisoryIfNoConsumers

storeUsageHighWaterMark

strictOrderDispatch

tempQueue

tempTopic

timeBeforeDispatchStarts

topic

topicPrefetch

useCache

useConsumerPriority

usePrefetchExtension

prefetchRatePendingMessageLimitStrategy multiplier

queryBasedSubscriptionRecoveryPolicy query

69

Page 75: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイド許可された属性

要素 属性

DLQqueue

physicalName

fallbackToDeadLetterredeliveryPlugin

sendToDlqIfMaxRetriesExceeded

backOffMultiplier

collisionAvoidancePercent

initialRedeliveryDelay

maximumRedeliveries

maximumRedeliveryDelay

preDispatchCheck

queue

redeliveryDelay

tempQueue

tempTopic

topic

useCollisionAvoidance

redeliveryPolicy

useExponentialBackOff

enableAudit

expiration

maxAuditDepth

maxProducersToAudit

processExpired

sharedDeadLetterStrategy

processNonPersistent

immediatePriorityDispatchstoreDurableSubscriberCursor

useCache

admin

queue

read

tempQueue

tempTopic

tempDestinationAuthorizationEntry

topic

70

Page 76: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイド許可された属性

要素 属性

write

DLQtempQueue

physicalName

DLQtempTopic

physicalName

timedSubscriptionRecoveryPolicy zeroExpirationOverride

recoverDuration

futureOnly

processNetworkMessages

timeStampingBrokerPlugin

ttlCeiling

DLQtopic

physicalName

name

updateClusterClients

rebalanceClusterClients

transportConnector

updateClusterClientsOnRemove

evictExpiredMessagesHighWatermarkuniquePropertyMessageEvictionStrategy

propertyName

concurrentSend

local

name

postfix

prefix

selectorAware

virtualTopic

transactedSend

Amazon MQ 親要素の属性親要素の属性の詳細な説明を以下に示します。詳細については、Apache ActiveMQ ドキュメントの XML設定を参照してください。

トピック

71

Page 77: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイド許可されたコレクション

• ブローカー (p. 72)

ブローカーbroker は親コレクションの要素です。

属性

networkConnectionStartAsync

ネットワークのレイテンシーを短縮し、他のネットワークをタイムリーに起動できるようにするには、<networkConnectionStartAsync> タグを使用します。このタグは、ブローカーの起動とは非同期に、エグゼキューターを使用してネットワーク接続を並列に起動するようにブローカーに指示します。

デフォルト: false

設定例

<broker networkConnectorStartAsync="false"/>

Amazon MQ 設定で許可された要素、子コレクション要素、およびその子要素Amazon MQ 設定で許可された要素、子コレクション要素、およびその子要素の詳細なリストを次に示します。詳細については、Apache ActiveMQ ドキュメントの XML 設定を参照してください。

要素 子コレクション要素 子要素

authorizationEntry (p. 75)authorizationEntries

tempDestinationAuthorizationEntry

authorizationEntrydefaultEntry

tempDestinationAuthorizationEntry

authorizationMap

tempDestinationAuthorizationEntrytempDestinationAuthorizationEntry

authorizationPlugin map authorizationMap

mirroredQueuedestinationInterceptors

virtualDestinationInterceptor

destinationPolicy policyMap

queue

tempQueue

tempTopic

destinations

topic

networkConnectors networkConnector (p. 76)

persistenceAdapter kahaDB (p. 77)

broker

plugins authorizationPlugin

72

Page 78: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイド許可されたコレクション

要素 子コレクション要素 子要素

discardingDLQBrokerPlugin

forcePersistencyModeBrokerPlugin

redeliveryPlugin

statisticsBrokerPlugin

timeStampingBrokerPlugin

name

updateClusterClients

rebalanceClusterClients

transportConnector

updateClusterClientsOnRemove

queue

tempQueue

tempTopic

topic

compositeQueue forwardTo

filteredDestination

queue

tempQueue

tempTopic

topic

compositeTopic forwardTo

filteredDestination

discarding

individualDeadLetterStrategy

deadLetterStrategy

sharedDeadLetterStrategy

queue

tempQueue

tempTopic

destination

topic

priorityDispatchPolicy

priorityNetworkDispatchPolicy

roundRobinDispatchPolicy

simpleDispatchPolicy

policyEntry

dispatchPolicy

strictOrderDispatchPolicy

73

Page 79: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイド許可されたコレクション

要素 子コレクション要素 子要素

oldestMessageEvictionStrategy

oldestMessageWithLowestPriorityEvictionStrategy

messageEvictionStrategy

uniquePropertyMessageEvictionStrategy

cachedMessageGroupMapFactory

messageGroupHashBucketFactory

messageGroupMapFactory

simpleMessageGroupMapFactory

fileDurableSubscriberCursor

storeDurableSubscriberCursor

pendingDurableSubscriberPolicy

vmDurableCursor

constantPendingMessageLimitStrategypendingMessageLimitStrategy

prefetchRatePendingMessageLimitStrategy

fileQueueCursor

storeCursor

pendingQueuePolicy

vmQueueCursor

fileCursorpendingSubscriberPolicy

vmCursor

abortSlowAckConsumerStrategyslowConsumerStrategy

abortSlowConsumerStrategy

fixedCountSubscriptionRecoveryPolicy

fixedSizedSubscriptionRecoveryPolicy

lastImageSubscriptionRecoveryPolicy

noSubscriptionRecoveryPolicy

queryBasedSubscriptionRecoveryPolicy

retainedMessageSubscriptionRecoveryPolicy

subscriptionRecoveryPolicy

timedSubscriptionRecoveryPolicy

defaultEntry policyEntrypolicyMap

policyEntries policyEntry

redeliveryPlugin redeliveryPolicyMap redeliveryPolicyMap

defaultEntry redeliveryPolicyredeliveryPolicyMap

redeliveryPolicyEntries redeliveryPolicy

retainedMessageSubscriptionRecoveryPolicywrapped fixedCountSubscriptionRecoveryPolicy

74

Page 80: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイド許可されたコレクション

要素 子コレクション要素 子要素

fixedSizedSubscriptionRecoveryPolicy

lastImageSubscriptionRecoveryPolicy

noSubscriptionRecoveryPolicy

queryBasedSubscriptionRecoveryPolicy

retainedMessageSubscriptionRecoveryPolicy

timedSubscriptionRecoveryPolicy

queue

tempQueue

tempTopic

sharedDeadLetterStrategy deadLetterQueue

topic

compositeQueue

compositeTopic

virtualDestinationInterceptorvirtualDestinations

virtualTopic

Amazon MQ 子要素の属性子要素の属性の詳細な説明を以下に示します。詳細については、Apache ActiveMQ ドキュメントの XML設定を参照してください。

トピック• authorizationEntry (p. 75)• networkConnector (p. 76)• kahaDB (p. 77)

authorizationEntry

authorizationEntry は authorizationEntries 子コレクション要素の子です。

属性

管理|読み取り|書き込み

ユーザーのグループに付与されているアクセス許可。詳細については、「常に認証マップを設定する (p. 94)」を参照してください。

デフォルト: null

設定例

<authorizationPlugin> <map> <authorizationMap> <authorizationEntries>

75

Page 81: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイド許可されたコレクション

<authorizationEntry admin="admins,activemq-webconsole" read="admins,users,activemq-webconsole" write="admins,activemq-webconsole" queue=">"/> <authorizationEntry admin="admins,activemq-webconsole" read="admins,users,activemq-webconsole" write="admins,activemq-webconsole" topic=">"/> </authorizationEntries> </authorizationMap> </map></authorizationPlugin>

networkConnector

networkConnector は networkConnectors 子コレクション要素の子です。

トピック• 属性 (p. 76)• 設定例 (p. 77)

属性

conduitSubscriptions

ブローカーのネットワークのネットワーク接続が、同じ送信先にサブスクライブしている複数のコンシューマーを 1 つのコンシューマーとして扱うかどうかを指定します。たとえば、conduitSubscriptions が true に設定されていて、2 つのコンシューマーがブローカー B に接続して送信先から消費する場合、ブローカー B は、ブローカー A へのネットワーク接続を介してサブスクリプションを単一の論理サブスクリプションに結合するので、メッセージの単一コピーのみがブローカー Aからブローカー B に転送されます。

Note

conduitSubscriptions を true に設定すると、冗長なネットワークトラフィックを減らすことができます。ただし、この属性を使用すると、コンシューマー間でのメッセージのロードバランシングに影響が出る可能性があり、特定のシナリオ (JMS メッセージセレクタや耐久性のあるトピックなど) では正しくない動作を引き起こす可能性があります。

デフォルト: true

二重

ブローカーのネットワーク内の接続を使用し、またメッセージを生成するかどうかを指定します。ブたとえば、ブローカー A が非二重モードでブローカー B への接続を作成した場合、メッセージはブローカー Aからブローカー B にのみ転送できます。ただし、ブローカー A がブローカー B への二重接続を作成した場合、ブローカー B は <networkConnector> を設定しなくてもメッセージをブローカー A に転送できます。

デフォルト: false

name

ブローカーのネットワークのブリッジの名前。

デフォルト: bridge

uri

ブローカーのネットワークの 2 つのブローカーのうちの 1 つ (または複数のブローカー) のワイヤレベルプロトコルエンドポイント。

デフォルト: null

76

Page 82: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイド許可されたコレクション

username

ブローカーのネットワークのブローカーに共通のユーザー名。

デフォルト: null

設定例Note

networkConnector を使用してブローカーのネットワークを定義するときは、ブローカーに共通のユーザーのパスワードを含めないでください。

2 つのブローカーとブローカーのネットワーク

この設定では、2 つのブローカーがブローカーのネットワークで接続されています。ネットワークコネクターの名前は connector_1_to_2、ブローカーに共通のユーザー名は myCommonUser、接続はduplex、そして OpenWire エンドポイント URI は static: というプレフィックスは、ブローカー間の 1対 1 の接続を示します。

<networkConnectors> <networkConnector name="connector_1_to_2" userName="myCommonUser" duplex="true" uri="static:(ssl://b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.mq.us-east-2.amazonaws.com:61617)"/></networkConnectors>

詳細については、「ブローカー用のネットワークコネクターを設定する (p. 17)」を参照してください。

複数のブローカーのあるブローカーのネットワーク

この設定では、複数のブローカーがブローカーのネットワークで接続されています。ネットワークコネクターの名前は connector_1_to_2、ブローカーに共通のユーザー名は myCommonUser、接続はduplex です。OpenWire エンドポイント URI のカンマ区切りのリストの前には masterslave: というプレフィックスが付き、ブローカー間のフェイルオーバー接続を示します。ブローカーからブローカーへのフェイルオーバーはランダム化されず、再接続の試行は無期限に続きます。

<networkConnectors> <networkConnector name="connector_1_to_2" userName="myCommonUser" duplex="true" uri="masterslave:(ssl://b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.mq.us-east-2.amazonaws.com:61617, ssl://b-9876l5k4-32ji-109h-8gfe-7d65c4b132a1-2.mq.us-east-2.amazonaws.com:61617)"/></networkConnectors>

Note

ブローカーのネットワークの masterslave: プレフィックスを使用することをお勧めします。プレフィックスはより明示的な static:failover:()?randomize=false&maxReconnectAttempts=0 構文と完全に一致します。

kahaDB

kahaDB は persistenceAdapter 子コレクション要素の子です。

属性

concurrentStoreAndDispatchQueues

キューの同時保存とディスパッチを使用するかどうかを指定します。詳細については、「遅いコンシューマーのキューで同時保存とディスパッチを無効にする (p. 97)」を参照してください。

77

Page 83: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドJava の使用例

デフォルト: true

設定例

Example

<persistenceAdapter> <kahaDB concurrentStoreAndDispatchQueues="false"/></persistenceAdapter>

ActiveMQ での Java Message Service (JMS) 使用の実例

以下の例で、プログラムで ActiveMQ を操作する方法を示します。

• OpenWire の Java コードの例は、ブローカーに接続し、キューを作成して、メッセージを送受信します。詳細および説明については、「ブローカーに Java アプリケーションを接続する (p. 26)」を参照してください。

• MQTT Java コードの例は、ブローカーに接続し、トピックを作成して、メッセージを送受信します。• STOMP+WSS Java コードの例は、ブローカーに接続し、キューを作成して、メッセージを送受信しま

す。

前提条件VPC 属性 を有効にするVPC 内でブローカにアクセスできるようにするには、enableDnsHostnames およびenableDnsSupport VPC 属性を有効にする必要があります。詳細については、Amazon VPC User Guideの「VPC の DNS サポート」を参照してください。

インバウンド接続の有効化1. Sign in to the Amazon MQ console.2. ブローカーのリストから、ブローカーの名前 (MyBroker など) を選択します。3. [MyBroker] ページの [Connections (接続)] セクションで、ブローカーの ActiveMQ ウェブコンソール

URL とワイヤレベルプロトコルのアドレスとポートをメモします。4. [Details (詳細)] セクションの [Security and network (セキュリティとネットワーク)] で、セキュリティ

グループの名前または を選択します。

EC2 ダッシュボードの [セキュリティグループ] ページが表示されます。5. セキュリティグループのリストから、セキュリティグループを選択します。6. ページ下部で、[インバウンド] を選択し、次に [編集] を選択します。7. [インバウンドのルールの編集] ダイアログボックスで、パブリックアクセス可能にするすべての URL

またはエンドポイントのルールを追加します (次の例で、ActiveMQ ウェブコンソールでこれを行う方法について説明します)。

a. [Add Rule] を選択します。b. [タイプ] で、[カスタム TCP] を選択します。

78

Page 84: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイド前提条件

c. [ポート範囲] に、ActiveMQ ウェブコンソールのポート (8162) を入力します。d. [ソース] で、[カスタム] を選択したままにして、ActiveMQ ウェブコンソールにアクセスするシス

テムの IP アドレスを入力します (192.0.2.1 など)。e. [Save] を選択します。

これで、ブローカーはインバウンド接続を受け入れることができます。

Java 依存関係の追加OpenWire

activemq-client.jar パッケージおよび activemq-pool.jar パッケージを Java クラスパスに追加します。次の例では、これらの依存関係を Maven プロジェクトの pom.xml ファイルで示しています。

<dependencies> <dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-client</artifactId> <version>5.15.8</version> </dependency> <dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-pool</artifactId> <version>5.15.8</version> </dependency></dependencies>

activemq-client.jar の詳細については、Apache ActiveMQ ドキュメントの「InitialConfiguration」を参照してください。

MQTT

org.eclipse.paho.client.mqttv3.jar パッケージを Java クラスパスに追加します。次の例では、この依存関係を Maven プロジェクトの pom.xml ファイルで示しています。

<dependencies> <dependency> <groupId>org.eclipse.paho</groupId> <artifactId>org.eclipse.paho.client.mqttv3</artifactId> <version>1.2.0</version> </dependency> </dependencies>

org.eclipse.paho.client.mqttv3.jar の詳細については、Eclipse Paho Java Client を参照してください。

STOMP+WSS

次のパッケージを Java クラスパスに追加しました。

• spring-messaging.jar

• spring-websocket.jar

• javax.websocket-api.jar

• jetty-all.jar

• slf4j-simple.jar

79

Page 85: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドAmazonMQExample.java

• jackson-databind.jar

次の例では、これらの依存関係を Maven プロジェクトの pom.xml ファイルで示しています。

<dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-messaging</artifactId> <version>5.0.5.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-websocket</artifactId> <version>5.0.5.RELEASE</version> </dependency> <dependency> <groupId>javax.websocket</groupId> <artifactId>javax.websocket-api</artifactId> <version>1.1</version> </dependency> <dependency> <groupId>org.eclipse.jetty.aggregate</groupId> <artifactId>jetty-all</artifactId> <type>pom</type> <version>9.3.3.v20150827</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> <version>1.6.6</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.5.0</version> </dependency></dependencies>

詳細については、Spring Framework ドキュメントの「STOMP Support」を参照してください。

AmazonMQExample.javaImportant

次のコード例では、プロデューサーとコンシューマーパターンは単一のスレッドを実行します。本番システムでは、(または、ブローカーインスタンスフェイルオーバーをテストする場合)、プロデューサーとコンシューマーが、別々のホストまたはスレッドで実行していることを確認します。

OpenWire

/* * Copyright 2010-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). * You may not use this file except in compliance with the License. * A copy of the License is located at * * https://aws.amazon.com/apache2.0 *

80

Page 86: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドAmazonMQExample.java

* or in the "license" file accompanying this file. This file is distributed * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either * express or implied. See the License for the specific language governing * permissions and limitations under the License. * */

import org.apache.activemq.ActiveMQConnectionFactory;import org.apache.activemq.jms.pool.PooledConnectionFactory;

import javax.jms.*;

public class AmazonMQExample {

// Specify the connection parameters. private final static String WIRE_LEVEL_ENDPOINT = "ssl://b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.mq.us-east-2.amazonaws.com:61617"; private final static String ACTIVE_MQ_USERNAME = "MyUsername123"; private final static String ACTIVE_MQ_PASSWORD = "MyPassword456";

public static void main(String[] args) throws JMSException { final ActiveMQConnectionFactory connectionFactory = createActiveMQConnectionFactory(); final PooledConnectionFactory pooledConnectionFactory = createPooledConnectionFactory(connectionFactory);

sendMessage(pooledConnectionFactory); receiveMessage(connectionFactory);

pooledConnectionFactory.stop(); }

private static void sendMessage(PooledConnectionFactory pooledConnectionFactory) throws JMSException { // Establish a connection for the producer. final Connection producerConnection = pooledConnectionFactory .createConnection(); producerConnection.start();

// Create a session. final Session producerSession = producerConnection .createSession(false, Session.AUTO_ACKNOWLEDGE);

// Create a queue named "MyQueue". final Destination producerDestination = producerSession .createQueue("MyQueue");

// Create a producer from the session to the queue. final MessageProducer producer = producerSession .createProducer(producerDestination); producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);

// Create a message. final String text = "Hello from Amazon MQ!"; final TextMessage producerMessage = producerSession .createTextMessage(text);

// Send the message. producer.send(producerMessage); System.out.println("Message sent.");

// Clean up the producer. producer.close(); producerSession.close(); producerConnection.close();

81

Page 87: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドAmazonMQExample.java

}

private static void receiveMessage(ActiveMQConnectionFactory connectionFactory) throws JMSException { // Establish a connection for the consumer. // Note: Consumers should not use PooledConnectionFactory. final Connection consumerConnection = connectionFactory.createConnection(); consumerConnection.start();

// Create a session. final Session consumerSession = consumerConnection .createSession(false, Session.AUTO_ACKNOWLEDGE);

// Create a queue named "MyQueue". final Destination consumerDestination = consumerSession .createQueue("MyQueue");

// Create a message consumer from the session to the queue. final MessageConsumer consumer = consumerSession .createConsumer(consumerDestination);

// Begin to wait for messages. final Message consumerMessage = consumer.receive(1000);

// Receive the message when it arrives. final TextMessage consumerTextMessage = (TextMessage) consumerMessage; System.out.println("Message received: " + consumerTextMessage.getText());

// Clean up the consumer. consumer.close(); consumerSession.close(); consumerConnection.close(); }

private static PooledConnectionFactory createPooledConnectionFactory(ActiveMQConnectionFactory connectionFactory) { // Create a pooled connection factory. final PooledConnectionFactory pooledConnectionFactory = new PooledConnectionFactory(); pooledConnectionFactory.setConnectionFactory(connectionFactory); pooledConnectionFactory.setMaxConnections(10); return pooledConnectionFactory; }

private static ActiveMQConnectionFactory createActiveMQConnectionFactory() { // Create a connection factory. final ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(WIRE_LEVEL_ENDPOINT);

// Pass the username and password. connectionFactory.setUserName(ACTIVE_MQ_USERNAME); connectionFactory.setPassword(ACTIVE_MQ_PASSWORD); return connectionFactory; }}

MQTT

/* * Copyright 2010-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). * You may not use this file except in compliance with the License. * A copy of the License is located at *

82

Page 88: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドAmazonMQExample.java

* https://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either * express or implied. See the License for the specific language governing * permissions and limitations under the License. * */

import org.eclipse.paho.client.mqttv3.*;

public class AmazonMQExampleMqtt implements MqttCallback {

// Specify the connection parameters. private final static String WIRE_LEVEL_ENDPOINT = "ssl://b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.mq.us-east-2.amazonaws.com:8883"; private final static String ACTIVE_MQ_USERNAME = "MyUsername123"; private final static String ACTIVE_MQ_PASSWORD = "MyPassword456";

public static void main(String[] args) throws Exception { new AmazonMQExampleMqtt().run(); }

private void run() throws MqttException, InterruptedException {

// Specify the topic name and the message text. final String topic = "myTopic"; final String text = "Hello from Amazon MQ!";

// Create the MQTT client and specify the connection options. final String clientId = "abc123"; final MqttClient client = new MqttClient(WIRE_LEVEL_ENDPOINT, clientId); final MqttConnectOptions connOpts = new MqttConnectOptions();

// Pass the username and password. connOpts.setUserName(ACTIVE_MQ_USERNAME); connOpts.setPassword(ACTIVE_MQ_PASSWORD.toCharArray());

// Create a session and subscribe to a topic filter. client.connect(connOpts); client.setCallback(this); client.subscribe("+");

// Create a message. final MqttMessage message = new MqttMessage(text.getBytes());

// Publish the message to a topic. client.publish(topic, message); System.out.println("Published message.");

// Wait for the message to be received. Thread.sleep(3000L);

// Clean up the connection. client.disconnect(); }

@Override public void connectionLost(Throwable cause) { System.out.println("Lost connection."); }

@Override public void messageArrived(String topic, MqttMessage message) throws MqttException {

83

Page 89: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドAmazonMQExample.java

System.out.println("Received message from topic " + topic + ": " + message); }

@Override public void deliveryComplete(IMqttDeliveryToken token) { System.out.println("Delivered message."); }}

STOMP+WSS

/* * Copyright 2010-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). * You may not use this file except in compliance with the License. * A copy of the License is located at * * https://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either * express or implied. See the License for the specific language governing * permissions and limitations under the License. * */

import org.springframework.messaging.converter.StringMessageConverter;import org.springframework.messaging.simp.stomp.*;import org.springframework.web.socket.WebSocketHttpHeaders;import org.springframework.web.socket.client.WebSocketClient;import org.springframework.web.socket.client.standard.StandardWebSocketClient;import org.springframework.web.socket.messaging.WebSocketStompClient;

import java.lang.reflect.Type;

public class AmazonMQExampleStompWss {

// Specify the connection parameters. private final static String DESTINATION = "/queue"; private final static String WIRE_LEVEL_ENDPOINT = "wss://b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.mq.us-east-2.amazonaws.com:61619"; private final static String ACTIVE_MQ_USERNAME = "MyUsername123"; private final static String ACTIVE_MQ_PASSWORD = "MyPassword456";

public static void main(String[] args) throws Exception { final AmazonMQExampleStompWss example = new AmazonMQExampleStompWss();

final StompSession stompSession = example.connect(); System.out.println("Subscribed to a destination using session."); example.subscribeToDestination(stompSession);

System.out.println("Sent message to session."); example.sendMessage(stompSession); Thread.sleep(60000); }

private StompSession connect() throws Exception { // Create a client. final WebSocketClient client = new StandardWebSocketClient(); final WebSocketStompClient stompClient = new WebSocketStompClient(client); stompClient.setMessageConverter(new StringMessageConverter());

final WebSocketHttpHeaders headers = new WebSocketHttpHeaders();

84

Page 90: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドリソースのタグ付け

// Create headers with authentication parameters. final StompHeaders head = new StompHeaders(); head.add(StompHeaders.LOGIN, ACTIVE_MQ_USERNAME); head.add(StompHeaders.PASSCODE, ACTIVE_MQ_PASSWORD);

final StompSessionHandler sessionHandler = new MySessionHandler();

// Create a connection. return stompClient.connect(WIRE_LEVEL_ENDPOINT, headers, head, sessionHandler).get(); }

private void subscribeToDestination(final StompSession stompSession) { stompSession.subscribe(DESTINATION, new MyFrameHandler()); }

private void sendMessage(final StompSession stompSession) { stompSession.send(DESTINATION, "Hello from Amazon MQ!".getBytes()); }

private static class MySessionHandler extends StompSessionHandlerAdapter { public void afterConnected(final StompSession stompSession, final StompHeaders stompHeaders) { System.out.println("Connected to broker."); } }

private static class MyFrameHandler implements StompFrameHandler { public Type getPayloadType(final StompHeaders headers) { return String.class; }

public void handleFrame(final StompHeaders stompHeaders, final Object message) { System.out.print("Received message from topic: " + message); } }}

リソースのタグ付けAmazon MQ は、コスト配分を追跡するのに役立つリソースタグ付けをサポートします。リソースを作成するとき、またはそのリソースの詳細を表示することによって、リソースにタグを付けることができます。

トピック• コスト割り当てのタグ付け (p. 85)• Amazon MQ コンソールでのタグの管理 (p. 86)• Amazon MQ API アクションを使用した管理 (p. 87)

コスト割り当てのタグ付けコスト割り当てのために Amazon MQ リソースを整理して識別するために、ブローカーまたは設定の目的を識別するメタデータタグを追加できます。これはブローカーが多数ある場合に特に便利です。コスト配分タグを使用して AWS の請求書を整理し、自分のコスト構造を反映できます。そのためには、サインアップして AWS アカウントの請求書にタグキーおよび値を含めます。詳細については、AWS Billing andCost Management User Guideの「月別コスト配分レポートの設定」を参照してください。

85

Page 91: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドAmazon MQ コンソールでのタグの管理

たとえば、コストセンターと Amazon MQ リソースの目的を表すタグを追加できます。

リソース キー 値

Cost Center 34567Broker1

Stack Production

Cost Center 34567Broker2

Stack Production

Cost Center 12345Broker3

Stack Development

このタグ付けスキームを使用すると、関連するタスクを実行している 2 つのステートマシンを同じコストセンターでグループ化しながら、関連のないブローカーに異なるコスト割り当てタグでタグ付けすることができます。

Amazon MQ コンソールでのタグの管理新しいリソースにタグを追加するAmazon MQ では、作成時にタグをリソースに追加できます。Amazon MQ コンソールで作成しているリソースにすばやくタグを追加できます。

新しいブローカーを作成するときにタグを追加するには。

1. [ブローカーの作成] ページで、[追加設定] を選択します。2. [タグ] で、[タグの追加] を選択します。3. [キー] と [値] のペアを入力します。

4. (オプション) [タグの追加] を選択して、ブローカーに複数のタグを追加します。5. [バケットを作成する] を選択します。

設定を作成するときにタグを追加するには。

1. [設定の作成] ページで、[アドバンスト] を選択します。2. [タグ] を選択し、[設定の作成] ページで、[タグの追加] を選択します。3. [キー] と [値] のペアを入力します。4. (オプション) [タグの追加] を選択して、設定に複数のタグを追加します。5. [起動設定の作成] を選択します。

86

Page 92: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドAmazon MQ API アクションを使用した管理

既存のリソースのタグの表示と管理Amazon MQ を使用すると、Amazon MQ コンソールで自分のリソースのタグを表示および管理できます。そのリソースの詳細ページでタグを編集することで、個々のリソースのタグを管理できます。Amazon MQ リソースのタグを編集するには。

1. Amazon MQ コンソールで [ブローカー] または [設定] を選択します。

[タグ] セクションで、そのリソースの既存のタグを確認します。2. 新規または既存のタグ管理を追加するには、[編集] (または既存のタグがない場合は [タグの作成]) を選

択します。3. リソースのタグを更新します。

• 既存のタグを変更するには、[キー] と [値] フィールドを編集します。• 既存のタグを削除するには、[削除] を選択します。• 新しいタグを追加するには、[タグの追加] を選択し、[キー] と [値] を入力します。

4. [Save] を選択します。

Amazon MQ API アクションを使用した管理Amazon MQ では、REST API を使用してリソースのタグを表示および管理することができます。

詳細については、「Amazon MQ REST API リファレンス」を参照してください。

87

Page 93: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドサービスを中断しない

Amazon MQ への移行オンプレミスメッセージブローカーを Amazon MQ に移行するには、次のトピックを参照してください。

トピック• サービスの中断なしでの Amazon MQ への移行 (p. 88)• サービスの中断ありでの Amazon MQ への移行 (p. 90)

詳細な説明と例については、AWS コンピューティングブログの「Migrating from RabbitMQ to AmazonMQ」(RabbitMQ から &AMQ; への移行) を参照してください。

サービスの中断なしでの Amazon MQ への移行次の図は、オンプレミスメッセージブローカーから AWS クラウドの Amazon MQ ブローカーに、サービスを中断せずに移行するシナリオを示しています。

Important

このシナリオでは、メッセージの配信順序が前後する可能性があります。メッセージの順序を重視する場合は、「サービスの中断ありでの Amazon MQ への移行 (p. 90)」の手順に従ってください。

88

Page 94: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドサービスを中断せずに Amazon MQ に移行するには

オンプレミスメッセージブローカー 標準的な (順序のない) キューを使用して Amazon MQ に移行する

サービスを中断せずに Amazon MQ に移行するには Amazon MQ ブローカーを作成および設定 (p. 11)して、ブローカーのエンドポイントを書き留めます。

次に例を示します。

ssl://b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.mq.us-east-2.amazonaws.com:61617

次のいずれかのケースで、フェイルオーバートランスポートを使用して、コンシューマーがオンプレミスのブローカーのエンドポイントまたは Amazon MQ のブローカーのエンドポイントにランダムで接続するようにします。以下の例に従ってください。

failover:(ssl://on-premises-broker.example.com:61617,ssl://b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.mq.us-east-2.amazonaws.com:61617)?randomize=true

以下のいずれかの操作を行います。

• 1 つずつ、Amazon MQ ブローカーのエンドポイントで既存の各コンシューマーを指定します。

89

Page 95: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドサービスを中断する

• 新しいコンシューマーを作成して、Amazon MQ ブローカーのエンドポイントでそれらを指定します。

Note

移行プロセス中にコンシューマーフリートをスケールアップする場合は、後でスケールダウンすることをお勧めします。

1 つずつ、既存のプロデューサーを停止し、Amazon MQ ブローカーのエンドポイントでプロデューサーを指定して、プロデューサーを再起動します。

コンシューマーがオンプレミスブローカーの宛先を吸い出すまで待ちます。

コンシューマーのフェイルオーバートランスポートを、Amazon MQ ブローカーのエンドポイントのみが含まれるように変更します。以下の例に従ってください。

failover:(ssl://b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.mq.us-east-2.amazonaws.com:61617)

オンプレミスのブローカーを停止します。

サービスの中断ありでの Amazon MQ への移行次の図は、オンプレミスメッセージブローカーから AWS クラウドの Amazon MQ ブローカーに、サービスを中断して移行するシナリオを示しています。

Important

このシナリオでは、先に Amazon MQ ブローカーのエンドポイントにプロデューサーを指定してから、コンシューマーで同じ手順を実行する必要があります。このシーケンスによって、移行プロセス中に FIFO (先入れ先出し) キューのすべてのメッセージで順序が維持されます。メッセージの順序を重視しない場合は、「サービスの中断なしでの Amazon MQ への移行 (p. 88)」の手順に従ってください。

90

Page 96: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドサービスを中断して Amazon MQ に移行するには

オンプレミスメッセージブローカー FIFO (順序あり) キューを使用した Amazon MQ への移行

サービスを中断して Amazon MQ に移行するには Amazon MQ ブローカーを作成および設定 (p. 11)して、ブローカーのエンドポイントを書き留めます。

次に例を示します。

ssl://b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.mq.us-east-2.amazonaws.com:61617

既存のプロデューサーを停止し、Amazon MQ ブローカーのエンドポイントにプロデューサーを指定して、プロデューサーを再起動します。

Important

このステップでは、Amazon MQ ブローカーからメッセージを消費するコンシューマーがまだないため、アプリケーションの機能を中断する必要があります。

コンシューマーがオンプレミスブローカーの宛先を吸い出すまで待ちます。

次のいずれかを行ってください。

91

Page 97: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドサービスを中断して Amazon MQ に移行するには

• 1 つずつ、Amazon MQ ブローカーのエンドポイントで既存の各コンシューマーを指定します。• 新しいコンシューマーを作成して、Amazon MQ ブローカーのエンドポイントでそれらを指定します。

Note

移行プロセス中にコンシューマーフリートをスケールアップする場合は、後でスケールダウンすることをお勧めします。

オンプレミスのブローカーを停止します。

92

Page 98: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドAmazon MQ の安全な使用

Amazon MQ のベストプラクティスこれらのベストプラクティスを使用して Amazon MQ を最大限活用できます。

トピック• Amazon MQ の安全な使用 (p. 93)• Amazon MQ への接続 (p. 94)• 効果的な Amazon MQ のパフォーマンスを維持する (p. 97)• 準備済み XA トランザクションを復旧して低速な再起動を回避する (p. 99)

Amazon MQ の安全な使用次の設計パターンにより、Amazon MQ ブローカーのセキュリティを向上させることができます。

トピック• パブリックアクセスビリティのないブローカーを優先する (p. 93)• TLS の補完としてクライアント側の暗号化を必ず使用する (p. 93)• 常に認証マップを設定する (p. 94)• VPC セキュリティグループによる不要なプロトコルのブロック (p. 94)

パブリックアクセスビリティのないブローカーを優先する作成したブローカーにパブリックアクセシビリティがない場合、このブローカーには VPC 外からアクセスできません。これにより、ブローカーがパブリックインターネットからの分散サービス妨害 (DDoS) 攻撃を受ける可能性が大幅に低減されます。詳細については、このガイドの パブリックアクセシビリティが無効なブローカーの ActiveMQ ウェブコンソールへのアクセス (p. 14) および AWS セキュリティブログの「攻撃領域を減らして DDoS 攻撃に備える方法」を参照してください。

TLS の補完としてクライアント側の暗号化を必ず使用するTLS を有効にし、次のプロトコルを使用してブローカーにアクセスできます。

• AMQP• MQTT• MQTT over WebSocket• OpenWire• STOMP• STOMP over WebSocket

93

Page 99: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイド常に認証マップを設定する

Amazon MQ は、安全に保存し管理している暗号化キーを使用して、保管時および転送時のメッセージを暗号化します。 セキュリティを高めるため、クライアント側の暗号化を使用するようにアプリケーションを設計することを強くお勧めします。詳細については、「AWS Encryption SDK Developer Guide」を参照してください。

常に認証マップを設定するデフォルトでは、ActiveMQ には承認された承認マップがないため、認証されたすべてのユーザーが、ブローカーであらゆるアクションを実行することができます。したがって、グループごとにアクセス許可を制限することがベストプラクティスとなります。詳細については、「authorizationEntry (p. 75)」を参照してください。

VPC セキュリティグループによる不要なプロトコルのブロックセキュリティを向上させるには、Amazon VPC セキュリティグループを正しく設定して、不要なプロトコルとポートの接続を制限する必要があります。たとえば、OpenWire および ActiveMQ ウェブコンソールへのアクセスを許可している間にほとんどのプロトコルへのアクセスを制限するには、61617 および 8162のみへのアクセスを許可することができます。これにより、OpenWire および ActiveMQ ウェブコンソールの通常の動作を可能にしながら、使用していないプロトコルをブロックして公開を制限できます。

使用しているプロトコルポートのみを許可します。

• AMQP: 5671• MQTT: 8883• OpenWire: 61617• STOMP: 61614• WebSocket: 61619

詳細については、以下を参照してください。

• その他のブローカーを設定する (p. 12)• VPC のセキュリティグループ• VPC のデフォルトセキュリティグループ• セキュリティグループを操作する

Amazon MQ への接続以下の設計パターンにより、アプリケーションから Amazon MQ ブローカーへの接続の有効性を向上させることができます。

トピック• Amazon MQ Elastic Network Interface を絶対に変更または削除しない (p. 95)• 常に接続プールを使用する (p. 95)• 常にフェイルオーバートランスポートを使用して複数のブローカーエンドポイントに接続す

る (p. 96)• メッセージセレクタを使用しない (p. 96)• 永続サブスクリプションよりも仮想送信先を優先する (p. 96)

94

Page 100: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドAmazon MQ Elastic Network Interface

を絶対に変更または削除しない

Amazon MQ Elastic Network Interface を絶対に変更または削除しない初めて Amazon MQ ブローカーを作成するときに (p. 11)、Amazon MQ はアカウントの Virtual PrivateCloud (VPC) で Elastic Network Interface をプロビジョニングするため、多数の EC2 のアクセス許可 (p. 118)が必要になります。このネットワークインターフェイスにより、クライアント (プロデューサーまたはコンシューマー) は、Amazon MQ ブローカーと通信することができます。このネットワークインターフェイスは、アカウントの VPC の一部であるにもかかわらず、Amazon MQ のサービスの範囲内にあると見なされます。

Warning

このネットワークインターフェイスを変更または削除しないでください。このネットワークインターフェイスを変更または削除すると、VPC とブローカーとの間の接続が完全に失われる可能性があります。

常に接続プールを使用する単一のプロデューサーと単一のコンシューマーを使用するシナリオ (Amazon MQ の使用開始 (p. 5)チュートリアルなど) では、各プロデューサーおよびコンシューマーに単一の ActiveMQConnectionFactoryクラスを使用できます。以下に例を示します。

// Create a connection factory.final ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(wireLevelEndpoint);

// Pass the username and password.connectionFactory.setUserName(activeMqUsername);connectionFactory.setPassword(activeMqPassword);

// Establish a connection for the consumer.

95

Page 101: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイド常にフェイルオーバートランスポートを使用して複数のブローカーエンドポイントに接続する

final Connection consumerConnection = connectionFactory.createConnection();consumerConnection.start();

ただし、複数のプロデューサーやコンシューマーが関与するより現実的なシナリオでは、複数のプロデューサーのために多数の接続を作成することはコスト高および非効率的になる場合があります。このようなシナリオでは、PooledConnectionFactory クラスを使用して複数のプロデューサーリクエストをグループ化する必要があります。以下に例を示します。

Note

メッセージコンシューマーは、PooledConnectionFactory クラスを使用することはありません。

// Create a connection factory.final ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(wireLevelEndpoint);

// Pass the username and password.connectionFactory.setUserName(activeMqUsername);connectionFactory.setPassword(activeMqPassword);

// Create a pooled connection factory.final PooledConnectionFactory pooledConnectionFactory = new PooledConnectionFactory();pooledConnectionFactory.setConnectionFactory(connectionFactory);pooledConnectionFactory.setMaxConnections(10);

// Establish a connection for the producer.final Connection producerConnection = pooledConnectionFactory.createConnection();producerConnection.start();

常にフェイルオーバートランスポートを使用して複数のブローカーエンドポイントに接続するアプリケーションから複数のブローカーのエンドポイントに接続する必要がある場合 (アクティブ/スタンバイ (p. 11)デプロイモードを使用したり、オンプレミスメッセージブローカーから Amazon MQ に移行したりする場合など (p. 88)) は、フェイルオーバートランスポートを使用してコンシューマーがランダムに接続することを許可します。以下に例を示します。

failover:(ssl://b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.mq.us-east-2.amazonaws.com:61617,ssl://b-9876l5k4-32ji-109h-8gfe-7d65c4b132a1-2.mq.us-east-2.amazonaws.com:61617)?randomize=true

メッセージセレクタを使用しないJMS セレクタを使用して、トピックのサブスクリプションにフィルタをアタッチできます (コンテンツに基づいてコンシューマーにメッセージをルーティングするため)。ただし、JMS セレクタを使用するとAmazon MQ ブローカーのフィルタバッファがいっぱいになり、メッセージをフィルタリングできなくなります。

一般的に、コンシューマーによるメッセージのルーティングは避けます。コンシューマーとプロデューサーが適切に非干渉化されるために、コンシューマーとプロデューサーはどちらもエフェメラルである必要があるためです。

永続サブスクリプションよりも仮想送信先を優先するたとえば接続が失われて復元された後などに、トピックに発行されたすべてのメッセージをコンシューマーが受信するには、永続サブスクリプションが役立ちます。ただし、永続サブスクリプションを使用す

96

Page 102: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイド効果的な Amazon MQ のパフォーマンスを維持する

る場合、競合するコンシューマーの使用は不可能であり、パフォーマンスの大規模な問題が発生する可能性があります。代わりに、仮想送信先を使用することを検討してください。

効果的な Amazon MQ のパフォーマンスを維持する次の設計パターンにより、Amazon MQ ブローカーの効果とパフォーマンスを向上させることができます。

トピック• 遅いコンシューマーのキューで同時保存とディスパッチを無効にする (p. 97)• 最良なスループットのために正しいブローカーインスタンスタイプを選択する (p. 97)• 最良なスループットのために正しいブローカーストレージタイプを選択する (p. 98)• ブローカーのネットワークを正しく設定する (p. 98)

遅いコンシューマーのキューで同時保存とディスパッチを無効にするデフォルトでは、Amazon MQ は高速コンシューマーのキューに合わせて最適化を行います。

• コンシューマーは、プロデューサーによって生成されるメッセージの速度に対応できる場合、高速とみなされます。

• キューによって未確認メッセージのバックログが生成され、プロデューサーのスループットが低下する可能性がある場合、コンシューマーは低速とみなされます。

低速コンシューマーのキューに合わせて最適化を行うように Amazon MQ に指示するには、concurrentStoreAndDispatchQueues 属性を false に設定します。設定の例については、「concurrentStoreAndDispatchQueues (p. 77)」を参照してください。

最良なスループットのために正しいブローカーインスタンスタイプを選択するブローカーインスタンスタイプ (p. 40)のメッセージスループットは、アプリケーションのユースケースおよび以下の要因に依存します。

• ActiveMQ を永続モードで使用する• メッセージサイズ• プロデューサーとコンシューマーの数• 送信先の数

メッセージサイズ、レイテンシーおよびスループットの関係を理解するユースケースによっては、より大きなブローカーインスタンスタイプはシステムスループットを向上させない場合があります。ActiveMQ が耐久性のあるストレージにメッセージを書き込むと、メッセージのサイズはシステムの制限要因を決定します。

• メッセージが 100 KB 未満の場合、永続的ストレージのレイテンシーが制限要因となります。

97

Page 103: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイド最良なスループットのために正しいブローカーストレージタイプを選択する

• メッセージが 100 KB 以上の場合、永続的ストレージのスループットが制限要因となります。

ActiveMQ を永続モード使用すると、ストレージへの書き込みは通常、前のコンシューマーがいくつか存在するか、あるいはコンシューマーが低速の場合に発生します。非永続的なモードでは、ブローカーインスタンスのヒープメモリに空き容量がない場合にも、低速のコンシューマーによるストレージへの書き込みが発生します。

アプリケーションにおける最適なブローカーインスタンスタイプを決定するには、異なるブローカーインスタンスタイプをテストすることが推奨されます。詳細については、「ブローカーインスタンスタイプ (p. 40)」および「」(JMS ベンチマークを使用して Amazon MQ のスループットを測定する) を参照してください。

より大きなブローカーインスタンスタイプのユースケースより大きなブローカーインスタンスタイプがスループットを向上させるには、3 つの一般的なユースケースがあります。

• 非永続モード – アプリケーションがブローカーインスタンスフェイルオーバー (p. 50)中にメッセージを喪失することに対して影響を受けにくい場合、ActiveMQ の非永続モードを頻繁に使用できます。このモードでは、ブローカーインスタンスのヒープメモリに空き容量がない場合にのみ、ActiveMQ は永続的ストレージにメッセージを書き込みます。非永続モードを使用するシステムは、大きなブローカーインスタンスタイプで利用できるより大きなメモリ容量、高速の CPU、および高速のネットワークの利点を活用できます。

• 高速コンシューマー – アクティブなコンシューマーが利用でき、concurrentStoreAndDispatchQueues (p. 77) フラグが有効である場合、ActiveMQ はストレージにメッセージを送信する必要なしでプロデューサーからコンシューマーに直接メッセージをフローすることを可能にします。アプリケーションが素早くメッセージを消費できる場合 (あるいは、コンシューマーがその処理を行えるように設計できる場合)、アプリケーションはより大きなブローカーインスタンスタイプの利点を活用できます。アプリケーションがより素早くメッセージを消費できるようにするには、アプリケーションインスタンスにコンシューマースレッドを追加するか、あるいはアプリケーションインスタンスを水平あるいは垂直にスケールアップします。

• バッチ処理されたトランザクション – 永続的モードを使用し、トランザクションごとに複数のメッセージを送信する場合、より大きなブローカーインスタンスタイプを使用して全体的により大量のメッセージスループットを達成することができます。詳細については、ActiveMQ ドキュメントの「Should I UseTransactions?」を参照してください。

最良なスループットのために正しいブローカーストレージタイプを選択する複数のアベイラビリティーゾーン全体で高い耐久性とレプリケーションを活用するには、Amazon EFS を使用します。低レイテンシーと高スループットを活用するには、Amazon EBS を使用します。詳細については、「ブローカーストレージ (p. 45)」を参照してください。

ブローカーのネットワークを正しく設定するブローカーのネットワーク (p. 51)を作成する際に、アプリケーション用に正しく設定します。

• 永続モードの有効化 – (ピアと比較して) 各ブローカーインスタンスはプロデューサーまたはコンシューマーのように動作するため、ブローカーのネットワークはメッセージの分散レプリケーションを提供しません。コンシューマーとして機能する最初のブローカーはメッセージを受信し、それをストレージに永続化します。このブローカーは確認をプロデューサーに送信し、そのメッセージを次のブローカーに転送します。2 番目のブローカーがメッセージの持続性を確認すると、最初のブローカーはそのメッセージを削除します。

98

Page 104: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイド準備済み XA トランザクションを復旧して低速な再起動を回避する

永続モードが無効になっている場合、最初のブローカーはメッセージをストレージに保持せずにプロデューサーに確認します。詳細については、Apache ActiveMQ ドキュメントの「レプリケートされたメッセージストア」および「永続的配信と非永続的配信の違い」を参照してください。

• 詳細については、Apache ActiveMQ ドキュメントのブローカーインスタンスのアドバイザリーメッセージを無効にしない – 詳細については、「アドバイザリーメッセージ」を参照してください。

• マルチキャストブローカー検出を使用しない – Amazon MQ はマルチキャストを使用したブローカー検出をサポートしません。詳細については、Apache ActiveMQ ドキュメントの「検出、マルチキャスト、および zeroconf の違い」を参照してください。

準備済み XA トランザクションを復旧して低速な再起動を回避する

ActiveMQ は分散型 (XA) トランザクションをサポートしています。ActiveMQ が XA トランザクションをどのように処理するかを知っておくと、Amazon MQ のブローカーの再起動とフェイルオーバーにかかる低速な復旧時間を回避するために役立ちます。

未解決の準備済み XA トランザクションは、再起動のたびに再実行されます。これらのトランザクションが未解決のままである場合、その数は時間の経過とともに大きくなり、ブローカーの起動に必要な時間が大幅に長くなります。これにより、再起動とフェイルオーバー時間に影響があります。commit() およびrollback() を使用してこれらのトランザクションを解決し、時間の経過とともにパフォーマンスが低下しないようにする必要があります。

これらの未解決のトランザクションの 1 つの原因が、Apache ActiveMQ の問題にあります。これにより、Amazon MQ の再起動時に、未解決の準備済みトランザクションが発生する場合があります。詳細については、関連する Apache ActiveMQ の不具合を参照してください。

未解決の準備済み XA トランザクションをモニタリングするには、Amazon CloudWatch Logs のJournalFilesForFastRecovery メトリクスを使用できます。この数値が増えるか、常に 1 より高い場合は、次の例のようなコードを使用して、未解決のトランザクションを復旧します。詳細については、「Amazon MQ のクォータ (p. 101)」を参照してください。

次のコード例では、準備済みの XA トランザクションを確認し、rollback() で終了します。

import org.apache.activemq.ActiveMQXAConnectionFactory;

import javax.jms.XAConnection;import javax.jms.XASession;import javax.transaction.xa.XAResource;import javax.transaction.xa.Xid;

public class RecoverXaTransactions { private static final ActiveMQXAConnectionFactory ACTIVE_MQ_CONNECTION_FACTORY; final static String WIRE_LEVEL_ENDPOINT = "tcp://localhost:61616";; static { final String activeMqUsername = "MyUsername123"; final String activeMqPassword = "MyPassword456"; ACTIVE_MQ_CONNECTION_FACTORY = new ActiveMQXAConnectionFactory(activeMqUsername, activeMqPassword, WIRE_LEVEL_ENDPOINT); ACTIVE_MQ_CONNECTION_FACTORY.setUserName(activeMqUsername); ACTIVE_MQ_CONNECTION_FACTORY.setPassword(activeMqPassword); }

public static void main(String[] args) { try { final XAConnection connection = ACTIVE_MQ_CONNECTION_FACTORY.createXAConnection();

99

Page 105: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイド準備済み XA トランザクションを復旧して低速な再起動を回避する

XASession xaSession = connection.createXASession(); XAResource xaRes = xaSession.getXAResource();

for (Xid id : xaRes.recover(XAResource.TMENDRSCAN)) { xaRes.rollback(id); } connection.close();

} catch (Exception e) { } }}

実際のシナリオでは、XA トランザクションマネージャーに対して準備済み XA トランザクションを確認することができます。次に、rollback() または commit() で準備済みの各トランザクションを処理するかどうか決定できます。

100

Page 106: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドブローカー

Amazon MQ のクォータこのトピックでは、Amazon MQ 内のクォータの一覧を示します。以下のクォータの多くは、AWS のアカウント別に変更できます。制限緩和のリクエスト方法については、Amazon Web Services GeneralReferenceの「AWS のサービスクォータ」を参照してください。

トピック• ブローカー (p. 101)• 設定 (p. 101)• ユーザー (p. 102)• データストレージ (p. 102)• API スロットリング (p. 103)

ブローカー次の表に、Amazon MQ ブローカーに関連するクォータの一覧を示します。

制限 説明

ブローカー名 • AWS アカウント内で一意にする必要があります。

• 1 ~ 50 文字にする必要があります。• 使用できるのは、印刷可能な ASCII 文字に指定

された文字のみです。• 使用できるのは、英数字、ダッシュ、ピリオ

ド、アンダースコア、チルダ (- . _ ~) のみです。

AWS アカウントあたり、リージョンあたりのブローカー

20

ブローカー設定履歴の深さ 10

ワイヤレベルプロトコルあたりの接続数 1,000 (mq.t2.micro ブローカーに対して 100)

ブローカーあたりのセキュリティグループ 5

CloudWatch でモニタリングされる送信先 (キューとトピック)

CloudWatch は、最初の 200 件の送信先のみをモニタリングします。

設定次の表に、Amazon MQ 設定に関連するクォータ事項の一覧を示します。

制限 説明

設定名 • 1 ~ 150 文字にする必要があります。

101

Page 107: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドユーザー

制限 説明• 使用できるのは、印刷可能な ASCII 文字に指定

された文字のみです。• 使用できるのは、英数字、ダッシュ、ピリオ

ド、アンダースコア、チルダ (- . _ ~) のみです。

AWS アカウントあたりの設定 1,000

設定あたりのリビジョン 300

ユーザー次の表に、Amazon MQ ユーザーに関連するクォータの一覧を示します。

制限 説明

Username • 1 ~ 100 文字にする必要があります。• 使用できるのは、印刷可能な ASCII 文字に指定

された文字のみです。• 使用できるのは、英数字、ダッシュ、ピリオ

ド、アンダースコア、チルダ (- . _ ~) のみです。

• カンマ (,) を含めることはできません。

パスワード • 12 ~ 250 文字にする必要があります。• 使用できるのは、印刷可能な ASCII 文字に指定

された文字のみです。• 少なくとも 4 個の一意文字を含める必要があり

ます。• カンマ (,) を含めることはできません。

ブローカーあたりのユーザー数 250

ユーザーあたりのグループ 20

データストレージ次の表は、Amazon MQ データストレージに関連するクォータを示しています。

制限 説明

新しい mq.t2.micro ブローカーあたりのストレージ容量。「ブローカーインスタンスタイプ (p. 40)」を参照してください。

20 GB

他のインスタンスタイプのブローカーあたりのストレージ容量。「ブローカーインスタンスタイプ (p. 40)」を参照してください。

200 GB

102

Page 108: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドAPI スロットリング

制限 説明

Amazon EBS によってバックアップ (p. 45)されるスケジュールされたジョブ(JobSchedulerUsage) のストレージ

50 GB

ブローカーの一時ストレージ。 50 GB

API スロットリング次の AWS アカウントあたりのスロットリングクォータは、サービスの帯域幅を維持するためにすべてのAmazon MQ API で合計されます。Amazon MQ API の詳細については、Amazon MQ REST API リファレンス を参照してください。

Important

これらのクォータは、ActiveMQ ブローカーメッセージング API には適用されません。たとえば、Amazon MQ はメッセージの送信あるいは受信をスロットリングしません。

バケットサイズ 補充レート/秒

100 15

103

Page 109: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドCloudWatch を使用したブローカーのモニタリング

Amazon MQ ブローカーのモニタリングとログ記録

このセクションでは、Amazon MQ ブローカーのアクティビティのモニタリングおよびログ記録について説明します。

トピック• Amazon CloudWatch を使用した Amazon MQ ブローカーのモニタリング (p. 104)• AWS CloudTrail を使用した Amazon MQ API コールのログ記録 (p. 108)• 一般ログおよび監査ログを Amazon CloudWatch Logs に発行するよう Amazon MQ を設定す

る (p. 111)

Amazon CloudWatch を使用した Amazon MQ ブローカーのモニタリング

Amazon MQ と Amazon CloudWatch は統合されているため、CloudWatch を使用して ActiveMQ ブローカーのメトリクスおよびブローカーの送信先(キューとトピック)を表示して分析できます。CloudWatchコンソール、AWS CLI、または CloudWatch CLI を使用して、Amazon MQ メトリクスを表示、分析できます。Amazon MQ の CloudWatch メトリクスは、1 分ごとにブローカーから自動的にポーリングされ、CloudWatch にプッシュされます。

詳細については、Amazon MQ の CloudWatch メトリクスへのアクセス (p. 34) を参照してください。Note

次の統計はすべてのメトリクスに対して有効です。

• Average

• Minimum

• Maximum

• Sum

AWS/AmazonMQ 名前空間には、次のメトリクスが含まれます。

ブローカーのメトリクス

メトリックス 単位 説明

BurstBalance パーセント スループット最適化ブローカーのメッセージデータを保持するために使用される、AmazonEBS ボリュームに残存しているバーストクレジットの割合(%)。この残存量がゼロに達すると、Amazon EBS ボリュームが提供する IOPS は、バーストバランスが補充されるまで減少しま

104

Page 110: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドブローカーのメトリクス

メトリックス 単位 説明す。Amazon EBS でのバーストバランスの機能の詳細については、「I/O クレジットおよびバーストパフォーマンス」を参照してください。

CpuCreditBalance クレジット (vCPU 分) Important

このメトリクスは、mq.t2.micro ブローカーインスタンスタイプでのみ使用できます。CPU クレジットメトリクスは、5 分間隔でのみ利用可能です。

インスタンスが起動または開始後に蓄積した獲得 CPU クレジットの数 (起動クレジットの数を含む)。クレジット残高は、ブローカーインスタンスがそのベースライン CPU 使用率を超えてバーストするために消費できます。

クレジットは、獲得後にクレジット残高に蓄積され、消費後にクレジット残高から削除されます。クレジット残高には上限があります。制限に到達すると、新しく獲得されたクレジットはすべて破棄されます。

CpuUtilization パーセント 割り当てられた Amazon EC2 コンピューティングユニットのうち、現在ブローカーが使用しているものの比率。

CurrentConnectionsCount カウント 現在のブローカーでのアクティブな接続の現在の数。

EstablishedConnectionsCountカウント ブローカーで確立された、アクティブと非アクティブな接続の合計数。

HeapUsage パーセント ブローカーが現在使用しているActiveMQ JVM メモリ制限の割合。

InactiveDurableTopicSubscribersCountカウント 非アクティブな永続トピックサブスクライバーの数 (最大2000 )。

JobSchedulerStorePercentUsageパーセント ジョブスケジューラストアで使用するディスク領域の割合 (%)。

105

Page 111: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドブローカーのメトリクス

メトリックス 単位 説明

JournalFilesForFastRecoveryカウント クリーンシャットダウン後に再生されるジャーナルファイルの数。

JournalFilesForFullRecoveryカウント クリーンでないシャットダウン後に再生されるジャーナルファイルの数。

NetworkIn バイト ブローカーの受信トラフィックのボリューム。

NetworkOut バイト ブローカーの送信トラフィックのボリューム。

OpenTransactionCount カウント 進行中のトランザクションの総数。

StorePercentUsage パーセント ストレージ制限によって使用されている割合。これが 100 に達すると、ブローカーはメッセージを拒否します。

TempPercentUsage パーセント 非永続的メッセージで使用可能な一時ストレージの割合 (%)。

TotalConsumerCount カウント 現在のブローカーの送信先にサブスクライブされたメッセージコンシューマーの数。

TotalMessageCount カウント ブローカーに保存されたメッセージの数。

TotalProducerCount カウント 現在のブローカーの送信先でのアクティブなメッセージプロデューサーの数。

VolumeReadOps カウント Amazon EBS ボリュームで実行された読み取りオペレーションの数。

VolumeWriteOps カウント Amazon EBS ボリュームで実行された書き込みオペレーションの数。

ブローカーメトリクスのディメンション

ディメンション 説明

Broker ブローカーの名前。

Note

単一インスタンスブローカーにはサフィックス -1 があります。高可用性対応アクティブ/スタンバイブローカーには、

106

Page 112: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイド送信先 (キューとトピック) メトリクス

ディメンション 説明冗長なペアに対してサフィックス -1 および -2 があります。

送信先 (キューとトピック) メトリクスImportant

以下のメトリクスには、CloudWatch のポーリング期間中の 1 分あたりの数が含まれます。

• EnqueueCount

• ExpiredCount

• DequeueCount

• DispatchCount

• InFlightCount

たとえば、5 分間の CloudWatch 期間では、EnqueueCount には 5 つのカウント値があり、それぞれが 1 分間の期間に対して設定されます。Maximum および Minimum 統計は、指定した期間内の 1 分あたりの最小値と最大値を提供します。

メトリックス 単位 説明

ConsumerCount カウント 送信先にサブスクライブされる消費者の数。

EnqueueCount カウント 送信先に送信されるメッセージの数 (1 分あたり)。

EnqueueTime 時間 (ミリ秒) メッセージがブローカーに届いてからコンシューマーに配信されるまでの、エンドツーエンドのレイテンシー。

ExpiredCount カウント 期限切れのために配信できなかったメッセージの数 (1 分あたり)。

DispatchCount カウント コンシューマーに送信されたメッセージの数 (1 分あたり)。

DequeueCount カウント コンシューマーによって確認されたメッセージの数 (1 分あたり)。

InFlightCount カウント 確認されていないコンシューマーに送信されたメッセージの数。

ReceiveCount カウント 二重ネットワークコネクターに対してリモートブローカーから受信したメッセージの数。

MemoryUsage パーセント 送信先が現在使用しているメモリ制限の割合。

107

Page 113: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドCloudTrail を使用して API コールのログを記録する

メトリックス 単位 説明

ProducerCount カウント 宛先のプロデューサーの数。

QueueSize カウント キュー内のメッセージの数。

Important

このメトリクスは、キューにのみ適用されます。

TotalEnqueueCount カウント ブローカーに送信されたメッセージの合計数。

TotalDequeueCount カウント クライアントによって消費されたメッセージの合計数。

Note

TotalEnqueueCount および TotalDequeueCount メトリクスには、アドバイザリトピックのメッセージが含まれます。アドバイザリトピックメッセージの詳細については、ActiveMQ のドキュメントを参照してください。

送信先 (キューとトピック) メトリクスのディメンション

ディメンション 説明

Broker ブローカーの名前。

Note

単一インスタンスブローカーにはサフィックス -1 があります。高可用性対応アクティブ/スタンバイブローカーには、冗長なペアに対してサフィックス -1 および -2 があります。

Topic または Queue トピックまたはキューの名前。

NetworkConnector ネットワークコネクタの名前。

AWS CloudTrail を使用した Amazon MQ API コールのログ記録

Amazon MQ は AWS CloudTrail と統合されています。このサービスは、ユーザー、ロール、またはAmazon MQ のサービスが実行する、AWS の呼び出しの記録を提供します。CloudTrail は、Amazon MQコンソールからのコールや、Amazon MQ API からのコード呼び出しを含む、Amazon MQ ブローカーと設定に関連する API コールをイベントとしてキャプチャします。CloudTrail の詳細については、「AWSCloudTrail User Guide」を参照してください。

Note

CloudTrail では、ActiveMQ オペレーション (例: メッセージの送受信) や ActiveMQ ウェブコンソールに関する API コールのログは記録されません。ActiveMQ オペレーションに関する情報を

108

Page 114: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドCloudTrail 内の Amazon MQ 情報

ログ記録するには、一般ログや監査ログを Amazon CloudWatch Logs に発行するように AmazonMQ を設定します (p. 111)。

CloudTrail によって収集される情報を使用して、Amazon MQ API への特定のリクエスト、リクエスタの IP アドレス、リクエスタの ID、リクエスト日時などを識別することができます。証跡を設定すると、Amazon S3 バケットへの CloudTrail イベントの継続的な配信を有効にすることができます。証跡を設定しない場合は、CloudTrail コンソールのイベント履歴で最新のイベントを表示できます。詳細については、AWS CloudTrail User Guideの「証跡を作成するための概要」を参照してください。

CloudTrail 内の Amazon MQ 情報AWS アカウント作成時、CloudTrail は有効になっています。サポートされる Amazon MQ イベントアクティビティが発生すると、そのアクティビティは CloudTrail イベントとして AWS のサービスの他のイベントとともにイベント履歴に記録されます。最近のイベントは、AWS アカウントで表示、検索、ダウンロードできます。詳細については、AWS CloudTrail User Guideの「CloudTrail イベント履歴でのイベントの表示」を参照してください。

証跡により、CloudTrail はログファイルを Amazon S3 バケットに配信できます。証跡を作成することで、AWS アカウントで、実行されているイベントを継続して記録することができます。デフォルトでは、AWS Management Console で証跡を作成すると、その証跡はすべての AWS リージョンに適用されます。この証跡では、すべての AWS リージョンのイベントがログに記録され、ログファイルは指定したAmazon S3 バケットに配信されます。また、その他の AWS のサービスを設定して、CloudTrail ログで収集されたデータに基づき、詳細な分析やアクティビティを行うこともできます。詳細については、「AWSCloudTrail User Guide」の次のトピックを参照してください。

• CloudTrail でサポートされるサービスと統合• CloudTrail の Amazon SNS 通知の設定• CloudTrailログ ファイルを複数のリージョンから受け取る• 複数のアカウントから CloudTrail ログファイルを受け取る

Amazon MQ では、リクエストパラメータと、以下の API のレスポンスの両方をイベントとしてCloudTrail ログファイルに記録することができます。

• CreateConfiguration

• DeleteBroker

• DeleteUser

• RebootBroker

• UpdateBroker

Important

以下 API の GET メソッドの場合、リクエストパラメータはログ記録されますが、レスポンスは加工されます。

• DescribeBroker

• DescribeConfiguration

• DescribeConfigurationRevision

• DescribeUser

• ListBrokers

• ListConfigurationRevisions

• ListConfigurations

• ListUsers

109

Page 115: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドAmazon MQ ログファイルのエントリの例

以下の API では、data と password のリクエストパラメータはアスタリスク (***) によって非表示になります。

• CreateBroker (POST)• CreateUser (POST)• UpdateConfiguration (PUT)• UpdateUser (PUT)

各イベントまたはログエントリには、リクエスタに関する情報が含まれます。この情報は次のことを確認するのに役立ちます。

• リクエストが、ルートと IAM ユーザー認証情報のどちらを使用して送信されたか。• リクエストが、ロールとフェデレーティッドユーザーのどちらの一時的なセキュリティ認証情報を使用

して送信されたか。• リクエストが、別の AWS のサービスによって行われたか。

詳細については、AWS CloudTrail User Guideの「CloudTrail userIdentity 要素」を参照してください。

Amazon MQ ログファイルのエントリの例証跡は、指定した Amazon S3 バケットにイベントをログファイルとして配信できる設定です。CloudTrailログファイルには、1 つ以上のログエントリが含まれます。

イベントは、任意の送信元からの単一のリクエストを表し、Amazon MQ API へのリクエスト、リクエスタの IP アドレス、リクエスタの ID、リクエスト日時などの情報が含まれます。

CreateBroker API コールの CloudTrail ログエントリを以下の例に示しますNote

CloudTrail ログファイルは、パブリック API の順序付けられたスタックトレースではないため、特定の順序で情報が表示されることはありません。

{ "eventVersion": "1.06", "userIdentity": { "type": "IAMUser", "principalId": "AKIAIOSFODNN7EXAMPLE", "arn": "arn:aws:iam::111122223333:user/AmazonMqConsole", "accountId": "111122223333", "accessKeyId": "AKIAI44QH8DHBEXAMPLE", "userName": "AmazonMqConsole" }, "eventTime": "2018-06-28T22:23:46Z", "eventSource": "amazonmq.amazonaws.com", "eventName": "CreateBroker", "awsRegion": "us-west-2", "sourceIPAddress": "203.0.113.0", "userAgent": "PostmanRuntime/7.1.5", "requestParameters": { "engineVersion": "5.15.9", "deploymentMode": "ACTIVE_STANDBY_MULTI_AZ", "maintenanceWindowStartTime": { "dayOfWeek": "THURSDAY", "timeOfDay": "22:45", "timeZone": "America/Los_Angeles" }, "engineType": "ActiveMQ", "hostInstanceType": "mq.m5.large",

110

Page 116: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドCloudWatch Logs にログを発行

するよう Amazon MQ を設定する

"users": [ { "username": "MyUsername123", "password": "***", "consoleAccess": true, "groups": [ "admins", "support" ] }, { "username": "MyUsername456", "password": "***", "groups": [ "admins" ] } ], "creatorRequestId": "1", "publiclyAccessible": true, "securityGroups": [ "sg-a1b234cd" ], "brokerName": "MyBroker", "autoMinorVersionUpgrade": false, "subnetIds": [ "subnet-12a3b45c", "subnet-67d8e90f" ] }, "responseElements": { "brokerId": "b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9", "brokerArn": "arn:aws:mq:us-east-2:123456789012:broker:MyBroker:b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9" }, "requestID": "a1b2c345-6d78-90e1-f2g3-4hi56jk7l890", "eventID": "a12bcd3e-fg45-67h8-ij90-12k34d5l16mn", "readOnly": false, "eventType": "AwsApiCall", "recipientAccountId": "111122223333"}

一般ログおよび監査ログを Amazon CloudWatchLogs に発行するよう Amazon MQ を設定する

Amazon MQ は、さまざまなソースのログファイルの監視や保存、アクセスを行うサービス、AmazonCloudWatch Logs と統合されています。たとえば、CloudWatch アラームを設定して、ブローカーの再起動の通知を受け取ったり、ブローカーの設定 (p. 62)に関するエラーをトラブルシューティングしたりすることができます。CloudWatch Logs の詳細については、Amazon CloudWatch Logs User Guide を参照してください。

CloudWatch Logs へのログの発行を Amazon MQ に許可するには、ブローカーを作成および再起動する前に、Amazon MQ ユーザーにアクセス権限を追加 (p. 112)して、Amazon MQ にリソースベースのポリシーを指定 (p. 113)する必要があります。

一般ログおよび監査ログを CloudWatch Logs に発行するための Amazon MQ の設定に関する詳細については、「高度なブローカー設定を構成する (p. 12)」を参照してください。

トピック

111

Page 117: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドCloudWatch Logs でのログ記録の構造を理解する

• CloudWatch Logs でのログ記録の構造を理解する (p. 112)• Amazon MQ ユーザーへの CreateLogGroup アクセス許可の追加 (p. 112)• Amazon MQ のリソースベースのポリシーを設定する (p. 113)• CloudWatch Logs 設定のトラブルシューティング (p. 114)

CloudWatch Logs でのログ記録の構造を理解する一般ログおよび監査ログ記録は、高度なブローカー設定 (p. 12)時、ブローカー作成時、またはブローカー編集時に有効にすることができます。

一般ログ記録では、デフォルトの INFO ロギングレベルを有効にし (DEBUG ログ記録はサポートされていません)、activemq.log を CloudWatch アカウントでロググループに発行します。ロググループの形式は次のようになります。

/aws/amazonmq/broker/b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9/general

監査ログ記録では、JMX または ActiveMQ ウェブコンソールを使用して行われる管理アクションのログ記録を有効にし、CloudWatch アカウントで audit.log をロググループに発行します。ロググループの形式は次のようになります。

/aws/amazonmq/broker/b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9/audit

単一インスタンスブローカー (p. 47)か、アクティブ/スタンバイブローカー (p. 50)を使用するかに応じて、各ロググループ内に 1 つまたは 2 つのログストリームが Amazon MQ によって作成されます。ログストリームの形式は次のようになります。

activemq-b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.logactivemq-b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-2.log

サフィックスが -1 および -2 の場合は、個々のブローカーインスタンスを示します。詳細については、Amazon CloudWatch Logs User Guide の「ロググループとログストリームを操作する」を参照してください。

Amazon MQ ユーザーへの CreateLogGroup アクセス許可の追加CloudWatch Logs ロググループの作成を Amazon MQ に許可するには、ブローカーの作成または再起動を行うユーザーに、logs:CreateLogGroup アクセス許可が付与されていることを確認する必要があります。

Important

ユーザーがブローカーの作成または再起動を行う前に CreateLogGroup アクセス許可をAmazon MQ ユーザーに追加していない場合、Amazon MQ でロググループは作成されません

次の IAM ベースのポリシーの例では、logs:CreateLogGroup のアクセス許可をユーザー111122223333 に付与します。

{ "Version": "2012-10-17", "Statement": [ {

112

Page 118: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドAmazon MQ のリソースベースのポリシーを設定する

"Effect": "Allow", "Principal": { "AWS": "111122223333" }, "Action": "logs:CreateLogGroup", "Resource": "arn:aws:logs:*:*:log-group:/aws/amazonmq/*" } ]}

詳細については、「Amazon CloudWatch Logs API Reference」の「CreateLogGroup」を参照してください。

Amazon MQ のリソースベースのポリシーを設定するCloudWatch Logs ロググループへのログの発行を Amazon MQ に許可するには、Amazon MQ から以下のCloudWatch Logs API アクションにアクセスできるようにリソースベースのポリシーを設定します。

• CreateLogStream – 指定したロググループの CloudWatch Logs ログストリームを作成します。• PutLogEvents – 指定した CloudWatch Logs ログストリームにイベントを配信します。

Important

Amazon MQ にリソースベースのポリシーを指定していない場合、ブローカーから CloudWatchLogs にログを発行することはできません。

次のリソースベースのポリシー の例では、logs:CreateLogStream および logs:PutLogEvents のアクセス許可を AWS に付与します。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "mq.amazonaws.com" }, "Action":[ "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource" : "arn:aws:logs:*:*:log-group:/aws/amazonmq/*" } ]}

Note

この例では、/aws/amazonmq/ プレフィックスを使用しているため、リソースベースのポリシーは、AWS アカウント、リージョン別に一度のみ設定する必要があります。

この操作は、次の AWS CLI コマンドを使用して行うこともできます。

aws --region us-east-1 logs put-resource-policy --policy-name AmazonMQ-logs \ --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "mq.amazonaws.com" }, "Action":[ "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource" : "arn:aws:logs:*:*:log-group:/aws/amazonmq/*" } ] }'

113

Page 119: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドCloudWatch Logs 設定のトラブルシューティング

CloudWatch Logs 設定のトラブルシューティング場合によっては、CloudWatch Logs が正常に動作しないことがあります。このセクションでは、一般的な問題の概要と解決方法を示します。

ロググループが CloudWatch に表示されないAdd the CreateLogGroup アクセス許可を Amazon MQ ユーザー (p. 112)に追加し、ブローカーを再起動します。これにより、Amazon MQ でロググループを作成することができます。

ログストリームが CloudWatch ロググループに表示されないAmazon MQ のリソースベースのポリシーを設定します (p. 113)。これにより、ブローカーよりログを発行することができます。

114

Page 120: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドタグベースのポリシー

Amazon MQ のセキュリティこのセクションでは、Amazon MQ および ActiveMQ の認証および許可に関する情報を示します。セキュリティのベストプラクティスの詳細については、「Amazon MQ の安全な使用 (p. 93)」を参照してください。

トピック• タグベースのポリシー (p. 115)• Authentication (p. 115)• 暗号化 (p. 117)• Amazon MQ の API 認証および許可 (p. 118)• ActiveMQ のメッセージングの認証および許可 (p. 121)

タグベースのポリシーAmazon MQ はタグベースのポリシーをサポートしています。たとえば、キー environment および値production のタグを含む Amazon MQ リソースへのアクセスを拒否できます。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "mq:DeleteBroker", "mq:RebootBroker", "mq:DeleteTag" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/environment": "production" } } } ]}

このポリシーでは、environment/production タグを含む Amazon MQ ブローカーを削除または再起動する機能を Deny します。

タグ付けの詳細については、以下を参照してください。

• リソースのタグ付け (p. 85)• IAM タグを使用したアクセスの制御

AuthenticationYou can access AWS as any of the following types of identities:

115

Page 121: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドAuthentication

• AWS account root user – When you first create an AWS account, you begin with a single sign-in identitythat has complete access to all AWS services and resources in the account. This identity is called theAWS account root user and is accessed by signing in with the email address and password that you usedto create the account. We strongly recommend that you do not use the root user for your everyday tasks,even the administrative ones. Instead, adhere to the best practice of using the root user only to createyour first IAM user. Then securely lock away the root user credentials and use them to perform only a fewaccount and service management tasks.

• IAM user – An IAM user is an identity within your AWS account that has specific custom permissions (forexample, permissions to create a broker in Amazon MQ). You can use an IAM user name and passwordto sign in to secure AWS webpages like the AWS Management Console, AWS Discussion Forums, or theAWS Support Center.

 

In addition to a user name and password, you can also generate access keys for each user. You canuse these keys when you access AWS services programmatically, either through one of the severalSDKs or by using the AWS Command Line Interface (CLI). The SDK and CLI tools use the access keysto cryptographically sign your request. If you don’t use AWS tools, you must sign the request yourself.Amazon MQ supports Signature Version 4, a protocol for authenticating inbound API requests. For moreinformation about authenticating requests, see Signature Version 4 Signing Process in the AWS GeneralReference.

 • IAM role – An IAM role is an IAM identity that you can create in your account that has specific

permissions. An IAM role is similar to an IAM user in that it is an AWS identity with permissions policiesthat determine what the identity can and cannot do in AWS. However, instead of being uniquelyassociated with one person, a role is intended to be assumable by anyone who needs it. Also, a roledoes not have standard long-term credentials such as a password or access keys associated withit. Instead, when you assume a role, it provides you with temporary security credentials for your rolesession. IAM roles with temporary credentials are useful in the following situations:

 • Federated user access – Instead of creating an IAM user, you can use existing identities from AWS

Directory Service, your enterprise user directory, or a web identity provider. These are known asfederated users. AWS assigns a role to a federated user when access is requested through an identityprovider. For more information about federated users, see Federated Users and Roles in the IAM UserGuide.

 • AWS service access – A service role is an IAM role that a service assumes to perform actions in your

account on your behalf. When you set up some AWS service environments, you must define a rolefor the service to assume. This service role must include all the permissions that are required for theservice to access the AWS resources that it needs. Service roles vary from service to service, butmany allow you to choose your permissions as long as you meet the documented requirements forthat service. Service roles provide access only within your account and cannot be used to grant accessto services in other accounts. You can create, modify, and delete a service role from within IAM. Forexample, you can create a role that allows Amazon Redshift to access an Amazon S3 bucket on yourbehalf and then load data from that bucket into an Amazon Redshift cluster. For more information, seeCreating a Role to Delegate Permissions to an AWS Service in the IAM User Guide.

 • Applications running on Amazon EC2 – You can use an IAM role to manage temporary credentials

for applications that are running on an EC2 instance and making AWS CLI or AWS API requests.This is preferable to storing access keys within the EC2 instance. To assign an AWS role to an EC2instance and make it available to all of its applications, you create an instance profile that is attachedto the instance. An instance profile contains the role and enables programs that are running on the

116

Page 122: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイド暗号化

EC2 instance to get temporary credentials. For more information, see Using an IAM Role to GrantPermissions to Applications Running on Amazon EC2 Instances in the IAM User Guide.

暗号化Amazon MQ に保存されるユーザーデータは、保管時に暗号化されます。Amazon MQ の保管時の暗号化は、AWS Key Management Service (KMS) に保存された暗号化キーを使用してデータを暗号化することにより、拡張したセキュリティを提供しています。このサービスは、機密データの保護における負担と複雑な作業を減らすのに役立ちます。保管時に暗号化することで、セキュリティを重視したアプリケーションを構築して、暗号化のコンプライアンスと規制の要件を満たすことができます。

Amazon MQ ブローカー間のすべての接続は、転送中の暗号化を提供するために Transport layer Security(TLS) を使用します。

Amazon MQ は、安全に保存し管理している暗号化キーを使用して、保管時および転送時のメッセージを暗号化します。 セキュリティを高めるため、クライアント側の暗号化を使用するようにアプリケーションを設計することを強くお勧めします。詳細については、「AWS Encryption SDK Developer Guide」を参照してください。

保管時の暗号化Amazon MQ と AWS Key Management Service (KMS) を統合して、サーバー側暗号化の透過性を提供します。Amazon MQ は常に保管時にデータを暗号化します。ブローカーを作成するときに、Amazon MQが保管時のデータを暗号化するために使用する AWS KMS カスタマーマスターキー (CMK) を指定できます。CMK を指定しない場合、Amazon MQ は AWS 管理の CMK を作成して、ユーザーに代わって使用します。CMK の詳細については、AWS Key Management Service 開発者ガイドの「カスタマーマスターキー (CMK)」を参照してください。

ブローカーを作成するときに、次のいずれかを選択して、どの Amazon MQ をキーの暗号化に使用するかを選択できます。

• AWS 所有の CMK キー — キーは Amazon MQ により所有されユーザーのアカウントにはありません。• AWS 管理の CMK — AWS 管理の CMK (aws/mq) は、ユーザーに代わって Amazon MQ により作成、管

理、使用されるユーザーのアカウントにある CMK です。• 既存のカスタマー管理の CMK を選択する — カスタマー管理の CMK が、ユーザーにより AWS Key

Management Service (KMS) に作成され、管理されます。

Important

Amazon MQ は Amazon Elastic File System (EFS) を使用してメッセージデータを保存します。アカウントで KMS キーを使用する Amazon EFS アクセス許可を与える許可を取り消した場合、Amazon MQ はこのデータにアクセスできず、ブローカーは機能しなくなります。AmazonEFS への許可を取り消しても、すぐには反映されません。アクセス権限を取り消すには、許可を取り消すのではなく、ブローカーを削除します。

転送中の暗号化Amazon MQ は、Amazon MQ デプロイのブローカー間で転送されるデータを暗号化します。Amazon MQブローカー間を通過するすべてのデータは、Transport layer Security (TLS) を使用して暗号化されています。これはすべての利用可能なプロトコルに当てはまります。

TLS を有効にし、次のプロトコルを使用してブローカーにアクセスできます。

• AMQP

117

Page 123: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドAPI 認証と認可

• MQTT• MQTT over WebSocket• OpenWire• STOMP• STOMP over WebSocket

Amazon MQ の API 認証および許可Amazon MQ では、標準の AWS リクエスト署名を使用して API 認証を行います。詳細については、『AWS General Reference』の「AWSAPI リクエストの署名」を参照してください。

Note

現在、Amazon MQ はリソースベースのアクセス許可またはリソースベースのポリシーを使用した IAM 認証をサポートしていません。

ブローカー、設定、およびユーザーを使用することを AWS ユーザーに許可するには、IAM ポリシーのアクセス許可を編集する必要があります。

トピック• Amazon MQ ブローカーを作成するために必要な IAM アクセス許可 (p. 118)• Amazon MQ REST API の権限リファレンス (p. 119)• Amazon MQ API アクションのリソースレベルのアクセス許可 (p. 120)

Amazon MQ ブローカーを作成するために必要な IAMアクセス許可ブローカーを作成するには、AmazonMQFullAccess IAM ポリシーを使用するか、次の EC2 アクセス許可を IAM ポリシーに含める必要があります。

以下のカスタムポリシーは、Amazon MQ が ActiveMQ ブローカーを作成するために必要なリソースを操作する権限を付与する 2 つのステートメント (1 つは条件付き) で構成されています。

Important

• ec2:CreateNetworkInterface アクションは、Amazon MQ がユーザーに代わってアカウントに Elastic Network Interface (ENI) を作成することを許可するために必要です。

• ec2:CreateNetworkInterfacePermission アクションは、Amazon MQ が ENI をActiveMQ ブローカーにアタッチすることを許可します。

• ec2:AuthorizedService 条件キーによって、ENI アクセス許可が Amazon MQ サービスアカウントのみに付与されるようにします。

{ "Version": "2012-10-17", "Statement": [{ "Action": [ "mq:*", "ec2:CreateNetworkInterface", "ec2:DeleteNetworkInterface", "ec2:DetachNetworkInterface", "ec2:DescribeInternetGateways", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables",

118

Page 124: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドREST API 権限リファレンス

"ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs" ], "Effect": "Allow", "Resource": "*" },{ "Action": [ "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeNetworkInterfacePermissions" ], "Effect": "Allow", "Resource": "*", "Condition": { "StringEquals": { "ec2:AuthorizedService": "mq.amazonaws.com" } } }]}

詳細については、「IAM ユーザーを作成して AWS 認証情報を取得する (p. 3)」および「Amazon MQElastic Network Interface を絶対に変更または削除しない (p. 95)」を参照してください。

Amazon MQ REST API の権限リファレンス次の表は、Amazon MQ の REST API および対応する IAM アクセス許可の一覧です。

Amazon MQ REST API および必要なアクセス権限

Amazon MQ REST API 必要なアクセス許可

CreateBroker mq:CreateBroker

CreateConfiguration mq:CreateConfiguration

CreateTags mg:CreateTags

CreateUser mq:CreateUser

DeleteBroker mq:DeleteBroker

DeleteUser mq:DeleteUser

DescribeBroker mq:DescribeBroker

DescribeConfiguration mq:DescribeConfiguration

DescribeConfigurationRevision mq:DescribeConfigurationRevision

DescribeUser mq:DescribeUser

ListBrokers mq:ListBrokers

ListConfigurationRevisions mq:ListConfigurationRevisions

ListConfigurations mq:ListConfigurations

ListTags mq:ListTags

ListUsers mq:ListUsers

119

Page 125: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドサポートされるリソースレベルのアクセス許可

Amazon MQ REST API 必要なアクセス許可

RebootBroker mq:RebootBroker

UpdateBroker mq:UpdateBroker

UpdateConfiguration mq:UpdateConfiguration

UpdateUser mq:UpdateUser

Amazon MQ API アクションのリソースレベルのアクセス許可リソースレベルのアクセス許可という用語は、ユーザーがアクションを実行可能なリソースを指定できることを示します。Amazon MQ では、リソースレベルのアクセス許可が部分的にサポートされます。特定の Amazon MQ アクションでは、満たす必要がある条件、またはユーザーが使用できる特定のリソースに基づいて、ユーザーがそれらのアクションをいつ使用できるかを制御できます。

次の表では、現在リソースレベルのアクセス許可をサポートしている Amazon MQ API アクションと、サポートされるリソース、リソース ARN、および各アクションの条件キーについて説明しています。

Important

Amazon MQ API アクションがこの表に示されていない場合、リソースレベルのアクセス許可をサポートしていません。Amazon MQ API アクションでリソースレベルのアクセス許可がサポートされない場合、アクションを使用するアクセス許可をユーザーに付与できますが、ポリシーステートメントのリソース要素としてワイルドカード (*) を指定する必要があります。

API アクション リソースタイプ (* 必須)

CreateConfiguration 設定*

CreateTags ブローカー、設定

CreateUser ブローカー

DeleteBroker ブローカー

DeleteUser ブローカー

DescribeBroker ブローカー

DescribeConfiguration 設定*

DescribeConfigurationRevision 設定*

DescribeUser ブローカー

ListConfigurationRevisions 設定*

ListConfigurationRevisions 設定*

ListTags ブローカー、設定

ListUsers ブローカー

RebootBroker ブローカー

120

Page 126: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドメッセージングの認証および許可

API アクション リソースタイプ (* 必須)

UpdateBroker ブローカー

UpdateConfiguration 設定*

UpdateUser ブローカー

ActiveMQ のメッセージングの認証および許可TLS を有効にし、次のプロトコルを使用してブローカーにアクセスできます。

• AMQP• MQTT• MQTT over WebSocket• OpenWire• STOMP• STOMP over WebSocket

Amazon MQ は、ユーザーのアクセス許可を管理するために ActiveMQ 認証を使用します。ActiveMQ ユーザー名とパスワードに関する制限の詳細については、「ユーザーに関連する制限 (p. 102)」を参照してください。

ActiveMQ ユーザーおよびグループにキューとトピックの使用を許可するには、ブローカーの設定を編集する必要があります (p. 23)。Amazon MQ では、ActiveMQ の Simple Authentication Plugin を使用して、送信先の読み込みと書き込みを制限します。詳細な説明と例については、「常に認証マップを設定する (p. 94)」および「authorizationEntry (p. 75)」を参照してください。

Note

現在、Amazon MQ は、クライアント証明書の認証や、Java 認証および許可サービス (JAAS) 用のプラグインをサポートしていません。

121

Page 127: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドAmazon MQ リソース

関連リソースAmazon MQ リソース

Amazon MQ を使用した作業に役立つリソースを次の表に示します。

リソース 説明

Amazon MQ REST API リファレンス REST リソース、サンプルリクエスト、HTTP メソッド、スキーマ、パラメータ、およびサービスから返されるエラーの説明です。

AWS CLI Command Reference の Amazon MQ メッセージブローカーで使用できる AWS CLI コマンドの説明。

AWS CloudFormation User Guide の Amazon MQ AWS::Amazon MQ::Broker リソースを使用すると、Amazon MQ ブローカーの作成、設定の変更、指定のブローカーのユーザーの変更、指定のブローカーに関する情報の戻し、指定のブローカーの削除を行うことができます

AWS::Amazon MQ::Configuration リソースを使用すると、Amazon MQ 設定の作成、設定の追加とユーザーの変更、指定の設定に関する情報の戻しを行うことができます。

リージョンとエンドポイント Amazon MQ のリージョンおよびエンドポイントに関する情報

製品ページ Amazon MQ に関する情報のメインのウェブページです。

フォーラム 開発者のためのコミュニティベースのフォーラムです。Amazon MQ に関連する技術的な質問についてディスカッションできます。

AWS プレミアムサポート情報 AWS プレミアムサポートに関する情報のメインウェブページです。1 対 1 のサポートチャネルで、迅速に対応します。AWS インフラストラクチャサービスでのアプリケーションの構築および実行を支援します。

Apache ActiveMQ リソースApache ActiveMQ を使用した作業に役立つリソースを次の表に示します。

リソース 説明

Apache ActiveMQ Getting Started Guide Apache ActiveMQ の公式ドキュメントです。

122

Page 128: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドApache ActiveMQ リソース

リソース 説明

ActiveMQ in Action JMS メッセージ、コネクタ、メッセージの持続性、認証、承認の構造を説明した ApacheActiveMQ のガイドです。

言語間のクライアント プログラミング言語と対応する Apache ActiveMQライブラリのリストです。「ActiveMQ クライアント」と「QpidJMS クライアント」も参照してください。

123

Page 129: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイド

Amazon MQ リリースノート次の表は Amazon MQ 機能のリリースおよび拡張の一覧です。Amazon MQ 開発者ガイド の変更については、「Amazon MQ ドキュメント履歴 (p. 131)」を参照してください。

日付 ドキュメントの更新

2020 年 3 月 3 日 Amazon MQ は、2 つの新しい CloudWatch メトリクスをサポートしています。

• TempPercentUsage ー 非永続的メッセージで使用可能な一時ストレージの割合(%)。

• JobSchedulerStorePercentUsage ー ジョブスケジューラストアで使用するディスク領域の割合 (%)。

詳細については、「CloudWatch を使用した Amazon MQ のモニタリング (p. 104)」を参照してください。

2020 年 2 月 4 日 Amazon MQ が Asia Pacific (Hong Kong) と Middle East (Bahrain) リージョンで使用できるようになりました。利用できるリージョンの詳細については、「AWS のリージョンとエンドポイント」を参照してください。

2020 年 1 月 22 日 Amazon MQ は ActiveMQ 5.15.10 をサポートしています。詳細については、以下を参照してください。

• ActiveMQ 5.15.10 リリースノート• ブローカーエンジン (p. 44)• Spring XML 設定ファイルの使用 (p. 62)

2019 年 12 月 19日

Amazon MQ が Europe (Stockholm) と South America (São Paulo) リージョンで使用できるようになりました。利用できるリージョンの詳細については、「AWS のリージョンとエンドポイント」を参照してください。

2019 年 12 月 16日

Amazon MQ は、ブローカーストレージ用のデフォルトの Amazon Elastic FileSystem (Amazon EFS) の代わりに Amazon Elastic Block Store (EBS) を使用したスループット最適化ブローカーの作成をサポートしています。

Important

• Amazon EBS は、mq.m5 ブローカーインスタンスタイプファミリーとのみ使用できます。

• ブローカーインスタンスタイプは変更できますが、ブローカーの作成後にブローカーストレージタイプを変更することはできません。

• Amazon EBS は 1 つのアベイラビリティーゾーン内でデータをレプリケートし、アクティブ/スタンバイ (p. 50)のデプロイモードをサポートしません。

詳細については、以下を参照してください。

• ブローカーストレージ (p. 45)• 最良なスループットのために正しいブローカーストレージタイプを選択す

る (p. 98)• Amazon MQ REST API リファレンスの broker-instance-options リソース

の storageType プロパティ。

124

Page 130: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイド

日付 ドキュメントの更新• 「ブローカーのメトリクス (p. 104)」セクションのBurstBalance、VolumeReadOps、 および VolumeWriteOps メトリクス。

2019 年 10 月 18日

TotalEnqueueCount および TotalDequeueCount の 2 つの AmazonCloudWatch メトリクスが利用可能になりました詳細については、「送信先(キューとトピック) メトリクス (p. 107)」を参照してください。

2019 年 10 月 11日

Amazon MQ が、米国の商用リージョンで連邦情報処理規格 140-2 (FIPS) 準拠のエンドポイントをサポートするようになりました。

詳細については、以下を参照してください。

• 連邦情報処理規格 (FIPS) 140-2• Amazon MQ のリージョンとエンドポイント

2019 年 9 月 30 日 Amazon MQ に、ホストインスタンスタイプを変更してブローカーをスケーリングする機能が組み込まれました。詳細については、UpdateBrokerInputの hostInstanceType プロパティおよび DescribeBrokerOutput のpendingHostInstanceType プロパティを参照してください。

2019 年 8 月 30 日 コンソールと UpdateBrokerInput の両方で、ブローカーに関連付けられたセキュリティグループを更新できるようになりました。

2019 年 7 月 22 日 Amazon MQ と AWS Key Management Service (KMS) を統合して、サーバー側暗号化を提供します。独自のカスタマー管理 CMK を選択できるようになりました。または、KMS アカウントの AWS 管理の CMK を使用します。詳細については、「保管時の暗号化 (p. 117)」を参照してください。

Amazon MQ は次の方法でのカスタマーマスターキー (CMK) の使用をサポートしています。

• AWS 所有の CMK — キーは Amazon MQ により所有され、ユーザーのアカウントにはありません。

• AWS 管理の CMK — AWS 管理の CMK (aws/mq) は、ユーザーに代わってAmazon MQ により作成、管理、使用される、ユーザーのアカウントにあるCMK です。

• 既存のカスタマー管理の CMK を選択する — カスタマー管理の CMK が、ユーザーにより AWS Key Management Service (KMS) に作成され、管理されます。

2019 年 6 月 19 日 Amazon MQ が Europe (Paris) と Asia Pacific (Mumbai) リージョンで使用できるようになりました。利用できるリージョンの詳細については、「AWS のリージョンとエンドポイント」を参照してください。

2019 年 6 月 12 日 Amazon MQ は Canada (Central) リージョンで利用可能です。利用できるリージョンの詳細については、「AWS のリージョンとエンドポイント」を参照してください。

2019 年 6 月 3 日 EstablishedConnectionsCount および InactiveDurableSubscribers の2 つの新しい Amazon CloudWatch メトリクスが利用可能になりました詳細については、以下を参照してください。

• CloudWatch を使用した Amazon MQ のモニタリング (p. 104)• ブローカーのメトリクス (p. 104)

125

Page 131: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイド

日付 ドキュメントの更新

2019 年 5 月 10 日 新しい mq.t2.micro インスタンスタイプのデータストレージが 20 GB に制限されました。詳細については、以下を参照してください。

• データストレージに関連する制限 (p. 102)• ブローカーインスタンスタイプ (p. 40)

2019 年 4 月 29 日 タグベースのポリシーとリソースレベルのアクセス権限を使用できるようになりました。詳細については、以下を参照してください。

• タグベースのポリシー (p. 115)• Amazon MQ API アクションのリソースレベルのアクセス許可 (p. 120)

2019 年 4 月 16 日 REST API を使用して、ブローカーエンジンとブローカーインスタンスのオプションに関する情報を取得できるようになりました。詳細については、以下を参照してください。

• ブローカーインスタンスのオプション• ブローカーエンジンタイプ

2019 年 4 月 8 日 Amazon MQ は ActiveMQ 5.15.9 をサポートしています。詳細については、以下を参照してください。

• ActiveMQ 5.15.9 リリースノート• ブローカーエンジン (p. 44)• Spring XML 設定ファイルの使用 (p. 62)

2019 年 3 月 4 日 動的なフェイルオーバーの設定と、ブローカーのネットワークのクライアントの再分散のため、ドキュメントを改善しました。transportConnectors とnetworkConnectors 設定オプションを設定することにより、動的なフェイルオーバーを有効にします。詳細については、以下を参照してください。

• トランスポートコネクタを使用した動的なフェイルオーバー (p. 60)• Amazon MQ ブローカーのネットワーク (p. 51)• Amazon MQ ブローカー設定パラメータ (p. 62)

2019 年 2 月 27 日 Amazon MQ は、次の各リージョンに加えて Europe (London) リージョンで利用できます。

• Asia Pacific (Singapore)• US East (Ohio)• US East (N. Virginia)• US West (N. California)• US West (Oregon)• Asia Pacific (Tokyo)• Asia Pacific (Seoul)• Asia Pacific (Sydney)• Europe (Frankfurt)• Europe (Ireland)

2019 年 1 月 24 日 デフォルト設定に、非アクティブな送信先を消去するポリシーが含まれるようになりました。

126

Page 132: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイド

日付 ドキュメントの更新

2019 年 1 月 17 日 Amazon MQ mq.t2.micro インスタンスタイプは、ワイヤレベルプロトコルあたり 100 個の接続のみをサポートするようになりました。詳細については、「Amazon MQ の制限 (p. 101)」を参照してください。

2018 年 12 月 19日

ブローカーのネットワークで一連の Amazon MQ ブローカーを設定できます。詳細については、次のセクションを参照してください。

• Amazon MQ ブローカーのネットワーク (p. 51)• ブローカーのネットワークの作成と設定 (p. 15)• ブローカーのネットワークを正しく設定する (p. 98)• networkConnector (p. 76)

• networkConnectionStartAsync (p. 72)

2018 年 11 月 11日

Amazon MQ は ActiveMQ 5.15.8、5.15.6、および 5.15.0 をサポートします。

• 解決されたバグと ActiveMQ の改善点。• ActiveMQ 5.15.8 リリースノート• ActiveMQ 5.15.7 リリースノート

2018 年 12 月 5 日 AWS は、コスト配分を追跡するのに役立つリソースタグ付けをサポートします。リソースを作成するとき、またはそのリソースの詳細を表示することによって、リソースにタグを付けることができます。詳細については、「リソースにタグを付ける」を参照してください。

2018 年 11 月 19日

AWS で SOC コンプライアンスプログラムが拡張され、SOC 準拠サービス としてAmazon MQ が含まれるようになりました。

2018 年 10 月 15日

• グループの最大数はユーザーあたり 20 です。詳細については、「ユーザーに関連する制限 (p. 102)」を参照してください。

• 接続の最大数は、ブローカーあたり、ワイヤレベルプロトコルあたり 1,000 です。詳細については、「ブローカーに関連する制限事項 (p. 101)」を参照してください。

2018 年 10 月 2 日 AWS で HIPAA コンプライアンスプログラムが拡張され、HIPAA 対応サービスとして Amazon MQ が含まれるようになりました。

2018 年 9 月 27 日 Amazon MQ は、5.15.0 に加えて ActiveMQ 5.15.6 をサポートしています。詳細については、以下を参照してください。

• ブローカーエンジンのバージョン、CloudWatch Logs、およびメンテナンス設定の編集 (p. 19) 内に位置している

• 解決されたバグと ActiveMQ ドキュメントの改善点。• ActiveMQ 5.15.6 リリースノート• ActiveMQ 5.15.5 リリースノート• ActiveMQ 5.15.4 リリースノート• ActiveMQ 5.15.3 リリースノート• ActiveMQ 5.15.2 リリースノート• ActiveMQ 5.15.1 リリースノート

• ActiveMQ Client 5.15.6

127

Page 133: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイド

日付 ドキュメントの更新

2018 年 8 月 31 日 • 以下のメトリクスが利用可能です。• CurrentConnectionsCount 内に位置している• TotalConsumerCount 内に位置している• TotalProducerCount 内に位置している

詳細については、「ブローカーのメトリクス (p. 104)」セクションを参照してください。

• また、ブローカーの IP アドレスが [詳細] ページに表示されます。

Note

パブリックアクセシビリティが無効なブローカーの場合、内部 IP アドレスが表示されます。

2018 年 8 月 30 日 Amazon MQ は、次の各リージョンに加えて Asia Pacific (Singapore) リージョンで利用できます。

• US East (Ohio)• US East (N. Virginia)• US West (N. California)• US West (Oregon)• Asia Pacific (Tokyo)• Asia Pacific (Seoul)• Asia Pacific (Sydney)• Europe (Frankfurt)• Europe (Ireland)

2018 年 7 月 30 日 一般ログおよび監査ログを Amazon CloudWatch Logs に発行するよう AmazonMQ を設定することができます。詳細については、「Amazon CloudWatch Logs にログを発行するよう Amazon MQ を設定する (p. 111)」を参照してください。

2018 年 7 月 25 日 Amazon MQ は、次のリージョンに加え、Asia Pacific (Tokyo) および Asia Pacific(Seoul) リージョンでも使用できます。

• US East (Ohio)• US East (N. Virginia)• US West (N. California)• US West (Oregon)• Asia Pacific (Sydney)• Europe (Frankfurt)• Europe (Ireland)

2018 年 7 月 19 日 Amazon MQ API コールをログ記録するには、AWS CloudTrail を使用します。詳細については、「CloudTrail を使用した Amazon MQ API コールのログ記録 (p. 108)」を参照してください。

128

Page 134: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイド

日付 ドキュメントの更新

2018 年 6 月 29 日 mq.t2.micro および mq.m4.large に加えて、次のブローカーインスタンスタイプが一般的な開発、テスト、および高度なスループットが必要なプロダクションワークロードに利用できます。

• mq.m5.large 内に位置している• mq.m5.xlarge 内に位置している• mq.m5.2xlarge 内に位置している• mq.m5.4xlarge 内に位置している

詳細については、「ブローカーインスタンスタイプ (p. 40)」を参照してください。

2018 年 6 月 27 日 Amazon MQ は、次の各リージョンに加えて US West (N. California) リージョンで利用できます。

• US East (Ohio)• US East (N. Virginia)• US West (Oregon)• Asia Pacific (Sydney)• Europe (Frankfurt)• Europe (Ireland)

2018 年 14 月 6 日 • AWS::Amazon MQ::Broker AWS CloudFormation リソースを使用して次のアクションを実行できます。• ブローカーの作成。• 指定されたブローカーの設定の変更またはユーザーの変更。• 指定されたブローカーに関する情報の戻し。• 指定されたブローカーの削除。

Note

Amazon MQ ブローカーの ConfigurationId のプロパティやAmazon MQブローカーのユーザーのプロパティタイプを変更すると、ブローカーは即時再起動されます。

• AWS::Amazon MQ::Configuration AWS CloudFormation リソースを使用して次のアクションを実行できます。• 設定の作成。• 指定された構成の更新。• 指定された設定に関する情報の戻し。

Note

Amazon MQ 設定の変更 — (削除はできません) — には AWSCloudFormation を使用できます。

2018 年 6 月 7 日 Amazon MQ コンソールでは、ドイツ語、ポルトガル語 (ブラジル)、スペイン語、イタリア語、および繁体字中国語がサポートされています。

2018 年 5 月 17 日 ブローカーあたりのユーザー数の制限は 250 です。詳細については、「ユーザーに関連する制限 (p. 102)」を参照してください。

129

Page 135: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイド

日付 ドキュメントの更新

2018 年 3 月 13 日 ブローカーの作成には約 15 分かかります。詳細については、「ブローカー作成の完了 (p. 13)」を参照してください。

2018 年 3 月 1 日 • concurrentStoreAndDispatchQueues (p. 77) 属性を使用して ApacheKahaDB の同時保存とディスパッチ (p. 97)を設定できます。

• CpuCreditBalance CloudWatch メトリクス (p. 104) は、mq.t2.microブローカーインスタンスタイプで使用することができます。

2018 年 1 月 10 日 以下の変更は Amazon MQ コンソールに影響します。

• ブローカーのリストで、[Creation (作成)] 列はデフォルトで非表示になります。ページサイズと列をカスタマイズするには、 。

• [MyBroker] ページの [Connections (接続)] セクションで、セキュリティグループの名前を選択すると、 が EC2 コンソール (VPC コンソールではなく) を開きます。EC2 コンソールでは、インバウンドおよびアウトバウンドルールのより直感的な設定ができます。詳細については、更新された「インバウンド接続の有効化 (p. 7)」セクションを参照してください。

2018 年 1 月 9 日 • REST オペレーション ID UpdateBroker のアクセス許可が、IAM コンソールでmq:UpdateBroker として正しく表示されるようになりました。

• 誤った mq:DescribeEngine アクセス許可が IAM コンソールから削除されました。

130

Page 136: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドドキュメント履歴

日付 ドキュメントの更新

2017 年 11 月 28日

これは Amazon MQ および Amazon MQ 開発者ガイド の初版リリースです。

• Amazon MQ は、以下のリージョンで利用できます。• US East (Ohio)• US East (N. Virginia)• US West (Oregon)• Asia Pacific (Sydney)• Europe (Frankfurt)• Europe (Ireland)

mq.t2.micro インスタンスタイプの使用は、CPU クレジットおよびベースラインのパフォーマンスの制約を受けます。このタイプは、ベースラインレベルを超えてバーストする機能を備えています (詳細については、CpuCreditBalance (p. 104) メトリクスを参照してください)。アプリケーションで固定パフォーマンスが必要な場合は、mq.m5.large インスタンスタイプの使用を検討してください。

• mq.m4.large および mq.t2.micro ブローカーを作成できます。

mq.t2.micro インスタンスタイプの使用は、CPU クレジットおよびベースラインのパフォーマンスの制約を受けます。このタイプは、ベースラインレベルを超えてバーストする機能を備えています (詳細については、CpuCreditBalance (p. 104) メトリクスを参照してください)。アプリケーションで固定パフォーマンスが必要な場合は、mq.m5.large インスタンスタイプの使用を検討してください。

• ActiveMQ 5.15.0 ブローカーエンジンを使用できます。• Amazon MQ REST API および AWS SDK を使用して、プログラムでブローカー

を作成して管理することもできます。• ブローカーにアクセスするには、ActiveMQ でサポートされている任意のプログ

ラミング言語 を使用し、以下のプロトコルに対して TLS を明示的に有効にします。• AMQP• MQTT• MQTT over WebSocket• OpenWire• STOMP• STOMP over WebSocket

• ActiveMQ ブローカーには、さまざまな ActiveMQ クライアント を使用して接続できます。ActiveMQ クライアント を使用することをお勧めします。詳細については、「ブローカーに Java アプリケーションを接続する (p. 26)」を参照してください。

• ブローカーは任意のサイズのメッセージを送受信できます。

Amazon MQ ドキュメント履歴次の表は、Amazon MQ 開発者ガイド の変更点の一覧です。Amazon MQ 機能のリリースと拡張については、「Amazon MQ リリースノート (p. 124)」を参照してください。

131

Page 137: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドドキュメント履歴

日付 ドキュメントの更新

2019 年 12 月 16日

• 以下のセクションを追加しました。• ブローカーストレージ (p. 45)• 最良なスループットのために正しいブローカーストレージタイプを選択す

る (p. 98)• 以下のセクションの情報を改訂しました。

• ブローカー (p. 38)• ブローカーインスタンスタイプ (p. 40)• Amazon MQ 単一インスタンスブローカー (p. 47)• Amazon MQ 高可用性対応アクティブ/スタンバイブローカー (p. 50)• ActiveMQ ブローカーの作成 (p. 5) 内に位置している• ブローカーの作成と設定 (p. 11)

2019 年 7 月 19 日 次のセクションでは、暗号化管理に関するコンテンツが変更および追加されました。

• 暗号化 (p. 117)• 保管時の暗号化 (p. 117)• 転送中の暗号化 (p. 117)

• EncryptionOptions

2019 年 4 月 22 日 タグベースのポリシーとリソースレベルのアクセス権限について、次のセクションが追加されました。

• タグベースのポリシー (p. 115)• Amazon MQ API アクションのリソースレベルのアクセス許可 (p. 120)

2019 年 3 月 4 日 動的なフェイルオーバーの設定と、ブローカーのネットワークのクライアントの再分散のため、ドキュメントを改善しました。transportConnectors とnetworkConnectors 設定オプションを設定することにより、動的なフェイルオーバーを有効にします。

• トランスポートコネクタを使用した動的なフェイルオーバー (p. 60)• Amazon MQ ブローカーのネットワーク (p. 51)• Amazon MQ ブローカー設定パラメータ (p. 62)

2019 年 1 月 5 日 一部の 1 分あたりのメトリクスに関してドキュメントを改善しました。詳細については、以下を参照してください。「送信先 (キューとトピック) メトリクス (p. 107)」

2018 年 12 月 19日

• 以下のセクションを追加しました。• Amazon MQ ブローカーのネットワーク (p. 51)• ブローカーのネットワークの作成と設定 (p. 15)• ブローカーのネットワークを正しく設定する (p. 98)• networkConnector (p. 76)

• networkConnectionStartAsync (p. 72)

• networkConnectors 子コレクション要素をAmazon MQ 設定で許可された要素、子コレクション要素、およびその子要素 (p. 72)セクションに追加しました。

2018 年 11 月 11日

ActiveMQ バージョン 5.15.8 の可用性を反映するようにドキュメントを更新しました。

132

Page 138: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドドキュメント履歴

日付 ドキュメントの更新

2018 年 12 月 5 日 「リソースのタグ付け (p. 85)」セクションを追加しました。

2018 年 10 月 26日

「準備済み XA トランザクションを復旧して低速な再起動を回避する (p. 99)」セクションを追加しました。

2018 年 10 月 15日

「Amazon MQ の制限 (p. 101)」セクションを更新しました。

2018 年 10 月 3 日 Amazon MQ のセットアップ (p. 3) セクションと Amazon MQ のチュートリアル (p. 11) セクションで古いリンクを修正しました。

2018 年 10 月 1 日 「次のステップ (p. 10)」の情報を訂正しました。

2018 年 9 月 27 日 • 「ブローカーエンジンのバージョン、CloudWatch Logs、およびメンテナンス設定の編集 (p. 19)」セクションを追加しました。

• 以下のセクションを更新しました。• ブローカーエンジン (p. 44) 内に位置している• ActiveMQ ブローカーの作成 (p. 5) 内に位置している• 基本的なブローカー設定を構成する (p. 11) 内に位置している

2018 年 9 月 18 日 「Amazon MQ ブローカーユーザーの作成と管理 (p. 31)」セクションに次の注記が追加されました。You can't configure groups independently of users. A group labelis created when you add at least one user to it and deleted when you remove allusers from it.

2018 年 8 月 31 日 • アクティブ/スタンバイブローカーの用語を明確にしました。詳細については、「Amazon MQ 高可用性対応アクティブ/スタンバイブローカー (p. 50)」を参照してください。

• メンテナンスウィンドウの用語を簡素化しました。詳細については、「AmazonMQ ブローカーの設定のライフサイクル (p. 61)」を参照してください。

• 「その他のブローカーを設定する (p. 12)」セクションを書き換えました。• ブローカーのメトリクス (p. 104) セクションおよび ブローカーのリストおよび

ブローカー詳細の表示 (p. 30) セクションを更新しました。

2018 年 8 月 15 日 「ActiveMQ ブローカーの作成 (p. 5)」の情報を訂正しました。

2018 年 8 月 13 日 「パブリックアクセシビリティが無効なブローカーの ActiveMQ ウェブコンソールへのアクセス (p. 14)」セクションを追加しました。

2018 年 8 月 2 日 • 「CloudWatch Logs 設定のトラブルシューティング (p. 114)」セクションを追加しました。

• このガイド全体に次の警告が追加されました。

Important

次のコード例では、プロデューサーとコンシューマーパターンは単一のスレッドを実行します。本番システムでは、(または、ブローカーインスタンスフェイルオーバーをテストする場合)、プロデューサーとコンシューマーが、別々のホストまたはスレッドで実行していることを確認します。

2018 年 8 月 1 日 以下のセクションの情報を訂正しました。

• CloudWatch Logs でのログ記録の構造を理解する (p. 112) 内に位置している• ブローカーに Java アプリケーションを接続します。 (p. 6) 内に位置している

133

Page 139: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドドキュメント履歴

日付 ドキュメントの更新

2018 年 7 月 31 日 • 3 分間デモビデオを Amazon MQ の使用開始 (p. 5) セクションに移動しました。• 3 分間デモビデオを Amazon MQ とは (p. 1) セクションに追加しました。

2018 年 7 月 30 日 • 「Amazon CloudWatch Logs にログを発行するよう Amazon MQ を設定する (p. 111)」セクションを追加しました。

• 「その他のブローカーを設定する (p. 12)」セクションを更新しました。

2018 年 7 月 19 日 • 「CloudTrail を使用した Amazon MQ API コールのログ記録 (p. 108)」セクションを追加しました。

• 「Amazon MQ の主な利点は何ですか。 (p. 1)」の情報を訂正しました。

2018 年 7 月 5 日 • 「authorizationEntry」セクションに 常に認証マップを設定する (p. 94) 小要素のクロスリファレンスが追加されました。

• 「ActiveMQ のメッセージングの認証および許可 (p. 121)」の情報を明らかにしました。

• 「API のスロットリングに関連する制限 (p. 103)」の情報を明らかにしました。

2018 年 6 月 29 日 • 「ブローカーインスタンスタイプ (p. 40)」セクションの情報が更新されました。

• 「最良なスループットのために正しいブローカーインスタンスタイプを選択する (p. 97)」セクションを追加しました。

2018 年 6 月 26 日 関連リソースへのリンクが「Amazon MQ への移行 (p. 88)」セクションに追加されました。

2018 年 6 月 4 日 GitHub に加えて、HTML、PDF、および Kindle で Amazon MQ 開発者ガイド のリリースノートを RSS フィードとして利用できます。

に位置している

2018 年 5 月 29 日 「Java の使用例 (p. 78)」セクションに次の変更を行いました。

• STOMP+WSS Java の例を追加しました。STOMP+WSS Java コードの例は、ブローカーに接続し、キューを作成して、メッセージを送受信します。

• MQTT Java の例が改善されました。• OpenWire Java の例が改善されました。

2018 年 5 月 24 日 「Java の使用例 (p. 78)」セクションの MQTT Java の例のワイヤレベルプロトコルのエンドポイントポートを訂正しました。

2018 年 5 月 22 日 すべての Java 依存関係セクションの情報を訂正しました。

2018 年 5 月 17 日 「ユーザーに関連する制限 (p. 102)」の情報を訂正しました。

2018 年 5 月 15 日 「効果的な Amazon MQ のパフォーマンスを維持する (p. 97)」の情報を訂正しました。

2018 年 5 月 8 日 • 「Amazon MQ REST API の権限リファレンス (p. 119)」を単独のセクションにしました。

• 「Amazon MQ ブローカーを作成するために必要な IAM アクセス許可 (p. 118)」セクションを作成し、カスタム IAM ポリシーの例を掲載しました。

134

Page 140: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドドキュメント履歴

日付 ドキュメントの更新

2018 年 5 月 7 日 • このガイド全体で、ブローカーのメンテナンスウィンドウが 2 時間であることを明確にしました。詳細については、「Amazon MQ ブローカーの設定のライフサイクル (p. 61)」を参照してください。

• ブローカーの作成に ec2:CreateNetworkInterface およびec2:CreateNetworkInterfacePermission アクセス権限が必要な理由の説明を追加しました。詳細については、「Amazon MQ の API 認証および許可 (p. 118)」を参照してください。

2018 年 5 月 1 日 次のセクションで、アクティブ/スタンバイブローカーのメンテナンスウィンドウに関する情報を明確にしました。

• Amazon MQ 高可用性対応アクティブ/スタンバイブローカー (p. 50) 内に位置している

• ブローカーの作成と設定 (p. 11) 内に位置している• ブローカー設定の作成と適用 (p. 20)• ブローカー設定の編集と管理 (p. 23) 内に位置している

2018 年 4 月 27 日 以下のセクションを書き直し、Java コード例を、コンシューマーではなくプロデューサーのみで接続プールを使用する推奨事項に一致するように最適化しました。

• 常に接続プールを使用する (p. 95) 内に位置している• メッセージプロデューサーの作成およびメッセージの送信 (p. 8) 内に位置してい

る• メッセージコンシューマーの作成およびメッセージの受信 (p. 9) 内に位置してい

る• AmazonMQExample.java (p. 80) 内に位置している

2018 年 4 月 26 日 「Java の使用例 (p. 78)」セクションに MQTT Java の例を追加しました。MQTTJava コードの例は、ブローカーに接続し、トピックを作成して、メッセージを送受信します。

2018 年 4 月 4 日 Amazon MQ との通信セクションの名前を「Amazon MQ への接続 (p. 94)」に変更しました。

2018 年 4 月 3 日 「遅いコンシューマーのキューで同時保存とディスパッチを無効にする (p. 97)」セクションの情報を訂正し明確にしました。

2018 年 4 月 2 日 「Amazon MQ でのキューの同時保存とディスパッチ」セクションを「遅いコンシューマーのキューで同時保存とディスパッチを無効にする (p. 97) 」セクションに移動しました。

2018 年 3 月 27 日 • 「Amazon MQ とは (p. 1)」セクションの re:Invent 発表ビデオを 3 分間デモビデオに置き換えました。

• 「Amazon MQ の主な利点は何ですか。 (p. 1)」セクションを書き換え、最近リリースされた機能に関する情報を含めました。

• 以下のセクションを再構成しました。• Amazon MQ ブローカーのアーキテクチャ (p. 46)• Amazon MQ の詳細 (p. 38)• Amazon MQ への移行 (p. 88)

• 「Amazon MQ ブローカーの設定のライフサイクル (p. 61)」を「Amazon MQ ブローカーのアーキテクチャ (p. 46)」セクションに移動しました。

135

Page 141: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドドキュメント履歴

日付 ドキュメントの更新

2018 年 3 月 22 日 このガイド全体で次の記述を明確にしました。Amazon MQ は、安全に保存し管理している暗号化キーを使用して、保管時および転送時のメッセージを暗号化します。 セキュリティを高めるため、クライアント側の暗号化を使用するようにアプリケーションを設計することを強くお勧めします。詳細については、「AWSEncryption SDK Developer Guide」を参照してください。

2018 年 3 月 19 日 このガイド全体で次の説明を明確にしました。アクティブ/スタンバイブローカー は 2 つの異なるアベイラビリティーゾーンにある 2 つのブローカーで構成される、冗長なペアで設定されています。これらのブローカーは、アプリケーションおよび Amazon EFS と同期的に通信します。

2018 年 3 月 15 日 • 「Amazon MQ の基本的要素 (p. 38)」セクションを再構成しました。• 以下のセクションの図の説明を改善しました。

• サービスの中断なしでの Amazon MQ への移行 (p. 88)• サービスの中断ありでの Amazon MQ への移行 (p. 90)

2018 年 3 月 12 日 • 「Amazon MQ の安全な使用 (p. 93)」セクションおよび「Amazon MQ への接続 (p. 94)」セクションの情報を明確にし、訂正しました。

• 「遅いコンシューマーのキューで同時保存とディスパッチを無効にする (p. 97)」セクションを追加しました。

• 「高度なブローカー設定を構成する (p. 12)」セクションの序文に警告をグループ化しました。

2018 年 3 月 9 日 • 「常に認証マップを設定する (p. 94)」セクションの情報を訂正し明確にしました。

• 「authorizationEntry (p. 75)」セクションを追加し、「kahaDB (p. 77)」セクションを更新しました。

2018 年 3 月 8 日 • 「常に認証マップを設定する (p. 94)」セクションを追加しました。• ブローカーのサフィックスに関する注意事項を「CloudWatch を使用した

Amazon MQ のモニタリング (p. 104)」セクションに追加しました。

2018 年 3 月 6 日 このガイド全体に次の注意事項を追加しました。

Note

mq.t2.micro インスタンスタイプの使用は、CPU クレジットおよびベースラインのパフォーマンスの制約を受けます。このタイプは、ベースラインレベルを超えてバーストする機能を備えています (詳細については、CpuCreditBalance (p. 104) メトリクスを参照してください)。アプリケーションで固定パフォーマンスが必要な場合は、mq.m5.large インスタンスタイプの使用を検討してください。

2018 年 3 月 1 日 • CpuCreditBalance メトリクスを ブローカーのメトリクス (p. 104) セクションに追加しました。

• 「Amazon MQ 子要素の属性 (p. 75)」セクションを追加しました。• 「the section called “許可された要素” (p. 63)」セクションの要素のリンクを、そ

の属性および子コレクション要素に追加しました。• GitHub の AWS 用語集を修正しました。

2018 年 2 月 28 日 GitHub のイメージ表示を修正しました。

136

Page 142: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドドキュメント履歴

日付 ドキュメントの更新

2018 年 2 月 27 日 Amazon MQ 開発者ガイド は、HTML、PDF、Kindle に加えて、GitHub でも利用できます。フィードバックを送信するには、右上の GitHub アイコンをクリックします。

2018 年 2 月 26 日 • すべての例と図でリージョンに整合性を持たせました。• AWS コンソールおよび製品ウェブページへのリンクを最適化しました。

2018 年 2 月 22 日 以下のセクションの情報を明確にし、訂正しました。

• パブリックアクセスビリティのないブローカーを優先する (p. 93)• TLS の補完としてクライアント側の暗号化を必ず使用する (p. 93)• 常にフェイルオーバートランスポートを使用して複数のブローカーエンドポイン

トに接続する (p. 96)• Amazon MQ の API 認証および許可 (p. 118)• ActiveMQ のメッセージングの認証および許可 (p. 121)

2018 年 2 月 21 日 以下のセクションの Java コードを訂正しました。

• Java の使用例 (p. 78)• ブローカーに Java アプリケーションを接続します。 (p. 6)• 常に接続プールを使用する (p. 95)

2018 年 2 月 20 日 「Amazon MQ のセキュリティ (p. 115)」セクションおよび「Amazon MQ のベストプラクティス (p. 93)」セクションの情報を明確にし、訂正しました。

2018 年 2 月 19 日 • 「常に接続プールを使用する (p. 95)」の Java コードを訂正しました。• 「TLS の補完としてクライアント側の暗号化を必ず使用する (p. 93)」セクショ

ンの情報を訂正し明確にしました。• 「Amazon MQ のベストプラクティス (p. 93)」セクションと「Amazon MQ のセ

キュリティ (p. 115)」セクションを再構成し、拡張しました。

2018 年 2 月 16 日 • 「Amazon MQ の安全な使用 (p. 93)」セクションを追加しました。• 「Amazon MQ への接続 (p. 94)」セクションを更新しました。• 以下のセクションの Java コードを訂正しました。

• Amazon MQ の使用開始 (p. 5)• AmazonMQExample.java (p. 80)

2018 年 2 月 15 日 • 「Amazon MQ のベストプラクティス (p. 93)」セクションを再構成し、拡張しました。

• 以下のセクションを更新しました。• Amazon MQ の使用を開始するには (p. 2)• 次のステップ (p. 10) (ご利用開始にあたって)• 関連リソース (p. 122)

137

Page 143: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドドキュメント履歴

日付 ドキュメントの更新

2018 年 2 月 14 日 以下のセクションを更新しました。

• Amazon MQ の制限 (p. 101)• API のスロットリングに関連する制限 (p. 103)• Amazon MQ のベストプラクティス (p. 93)• Amazon MQ のセキュリティ (p. 115)

2018 年 2 月 13 日 • 「関連リソース (p. 122)」セクションを更新しました。• 「Amazon MQ の制限 (p. 101)」セクションを更新しました。• 「ご意見をお待ちしております (p. 2)」セクションを追加しました。

2018 年 1 月 25 日 • 「Java 依存関係の追加 (p. 79)」セクションの「Java の使用例 (p. 78)」サブセクションのエラーを修正しました。

• REST オペレーション ID RebootBroker のアクセス許可が、IAM コンソールでmq:RebootBroker として正しく表示されるようになりました。

2018 年 1 月 24 日 • 「Amazon MQ Elastic Network Interface を絶対に変更または削除しない (p. 95)」セクションを追加しました。

• このガイド全体ですべての図が更新されました。• このガイド全体で、Amazon MQ REST API リファレンス へのリンクと、特定

の REST API へのリンクを「Amazon MQ の API 認証および許可 (p. 118)」セクションに追加しました。

2018 年 1 月 19 日 「Apache ActiveMQ リソース (p. 122)」セクションの情報が更新されました。

2018 年 1 月 18 日 「Amazon MQ の制限 (p. 101)」セクションの情報を訂正し明確にしました。

2018 年 1 月 17 日 永続サブスクリプションより仮想送信先を優先する推奨 (p. 96)を復帰させ、説明を改善しました。

2018 年 1 月 11 日 • この Amazon MQ 開発者ガイド は、HTML と PDF に加えて、Kindle 形式で利用できます。

• 「Amazon MQ の API 認証および許可 (p. 118)」および「IAM ユーザーを作成して AWS 認証情報を取得する (p. 3)」セクションの情報を訂正し明確にしました。

2018 年 1 月 3 日 「DescribeConfigurationRevision」を「Amazon MQ の API 認証および許可 (p. 118)」セクションに追加しました。

2017 年 15 月 12日

「Amazon MQ のベストプラクティス (p. 93)」セクションから、永続サブスクリプションに対する推奨事項を削除しました。

2017 年 8 月 12 日 • 「インバウンド接続の有効化 (p. 7)」および「ブローカーに Java アプリケーションを接続する (p. 26)」セクションに「Java の使用例 (p. 78)」の前提条件を追加しました。

• このガイド全体に次の注意事項が追加されました。現在、設定を削除することはできません。

2017 年 7 月 12 日 • 「AmazonMQExample.java (p. 80)」のコードを強化しました。• 「Amazon MQ の API 認証および許可 (p. 118)」セクションを追加しました。

138

Page 144: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイドドキュメント履歴

日付 ドキュメントの更新

2017 年 5 月 12 日 • 「CloudWatch を使用した Amazon MQ のモニタリング (p. 104)」セクションの情報を明確にし、修正しました。• メトリクスの説明を改善しました。• 「ブローカーメトリクスのディメンション (p. 106)」および「送信先 (キュー

とトピック) メトリクスのディメンション (p. 108)」サブセクションを追加しました。

• 「Amazon MQ とは (p. 1)」セクションに「Amazon MQ のご紹介」ビデオを追加しました。

2017 年 4 月 12 日 • 「データストレージに関連する制限 (p. 102)」セクションで、次の情報を明確にしました。ブローカーあたりのストレージ容量は 200 GB です。

• 「前提条件 (p. 78)」を「Java の使用例 (p. 78)」セクションに追加しました(activemq-client.jar および activemq-pool.jar パッケージは、例が動作するために必要です)。詳細については、「ブローカーに Java アプリケーションを接続する (p. 26)」を参照してください。

2017 年 1 月 12 日 • すべてのチュートリアルのスクリーンショットを更新および改善しました。• このガイド全体で次の説明を明確にしました。設定リビジョンまたは ActiveMQ

ユーザーに変更を加えても、変更は即座には適用 されません。変更を適用するには、次のメンテナンスウィンドウを待つ (p. 25)か、ブローカーを再起動する (p. 33)必要があります。詳細については、「Amazon MQ ブローカーの設定のライフサイクル (p. 61)」を参照してください。

139

Page 145: Amazon MQ - 開発者ガイド...Amazon MQ 開発者ガイド Amazon MQ の主な利点は何ですか。Amazon MQ とは Amazon MQ は、Apache ActiveMQ 向けの完全マネージド型メッセージブローカーサービスであり、こ

Amazon MQ 開発者ガイド

AWS GlossaryFor the latest AWS terminology, see the AWS Glossary in the AWS General Reference.

140