Web コンソールまたはワイヤーレベルのエンドポイントを使用して Amazon MQ ブローカーに接続できません。問題のトラブルシューティングを行うにはどうすればよいですか?
簡単な説明
Amazon MQ ブローカー接続の問題は、さまざまな理由で発生する可能性があり、さまざまな種類のエラーが発生する可能性があります。以下は、Amazon MQ が接続関連のエラーを返す最も一般的な理由です。
- 誤って設定されたローカルファイアウォールとルーティングテーブル
- 誤って構成されたセキュリティグループとネットワークアクセスコントロールリスト (NACL)
- 間違ったポート番号に接続しています
- DNS 解像度の問題
- サポートされていない SDK クライアント
- ブローカーの可視性設定が正しくありません
- 誤って設定された SSL / TLS
- 期限切れのブローカーエンドポイント証明書
以下は、ブローカー接続の問題が発生したときに Amazon MQ が返す可能性のあるいくつかのエラーメッセージの例です。
- SSLHandshakeException
- JMSException
- UnknownHostException
- SocketTimeoutException
解決方法
Amazon MQ ブローカー接続の問題をトラブルシューティングするには、以下を実行します。
ローカルファイアウォールとルーティングテーブルが正しく設定されていることを確認します
パブリックアクセシビリティのあるブローカー向け
以下を確認します。
- アプリケーションはインターネットにアクセスできます。
- ローカルファイアウォールとルートテーブルは、パブリックインターネットトラフィックを許可します。
- サブネット NACL とブローカーのセキュリティグループは、Amazon MQ でサポートされているポートを介した通信を許可します。
- Amazon 仮想プライベートクラウド (Amazon VPC) のブローカーは、インターネットゲートウェイへのデフォルトルートを持つパブリックサブネットにあります。詳細については、Amazon VPC ユーザーガイドの 「インターネットアクセスを有効にする」 を参照してください。
プライベートブローカー向け
以下を確認します。
- Amazon MQ ブローカーに関連付けられている AWS クラウドサービス固有の設定が正しく設定されている。
- ローカルファイアウォールとルートテーブルにより、関連する仮想プライベートネットワーク (VPN) 間のインバウンドトラフィックとアウトバウンドトラフィックが許可されます。
- サブネット NACL とブローカーのセキュリティグループは、Amazon MQ でサポートされているポートを介した通信を許可します。
Amazon MQ ブローカーのネットワーク接続をテストします
『Amazon MQ デベロッパーガイド』の ブローカー Web コンソールまたはエンドポイントに接続できない のステップ 5 の指示に従ってください。
注: nslookup コマンド要求がタイムアウトした場合、またはコマンド出力の応答セクションに値が存在しない場合は、以下を実行してください。
- ローカル DNS キャッシュをクリアします。
- ローカルのネットワーク機器とクライアントを再起動します。
- ローカル DNS サーバが正しく設定されていることを確認します。
サポートされている SDK クライアントを使用していることを確認する
使用しているブローカーエンジンと互換性のある最新の SDK クライアント実装を使用していることを確認します。
Amazon MQ for ActiveMQ の場合、AMQP 1.0 プロトコルを使用する必要があります。Amazon MQ for RabbitMQ の場合、AMPQ 0-9-1 プロトコルを使用する必要があります。
AWS リソースとの通信に SSL / TLS を使用していることを確認してください
**注:**Amazon MQ は現在、相互 Transport Layer Security (TLS) (TLS) 認証をサポートしていません。
誤った SSL / TLS バージョンとサポートされていない暗号スイートを使用すると、SSL エラーが発生します。詳細については、 Amazon MQ デベロッパーガイドのAmazon MQ でのデータ保護 を参照してください。
RabbitMQ および ActiveMQ でサポートされている暗号のリストについては、 Amazon MQ 開発者ガイドの 転送中の暗号化 を参照してください。
注: 一部のクライアントライブラリでは、SSLを明示的にアクティブ化する必要があります。以下は、Java および Ruby プログラミング言語の明示的な SSL アクティベーションの例です。
(Java) 明示的な SSL アクティベーションコードの例
ConnectionFactory factory=new ConnectionFactory();
factory.useSslProtocol()
(Ruby) 明示的な SSL アクティベーションコードの例
conn = Bunny.new(:tls => true, :verify_peer => false)
Amazon MQ ブローカーエンドポイント証明書が最新であることを確認します
詳細については、 Amazon MQ デベロッパーガイドの SSL例外 セクションを参照してください。
Amazon トラストサービス認証局 (CA) がトラストストアにあるかどうかを確認する方法については、次の記事を参照してください。AWS が独自の認証局に移行する準備をする方法。