翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
EventBridge Pipes のソースとしての Amazon MQ メッセージブローカー
EventBridge Pipes を使用して、Amazon MQ メッセージブローカーからレコードを受信できます。その後、オプションでこれらのレコードをフィルタリングまたは拡張してから、処理可能な送信先のいずれかに送信できます。パイプを設定するときに選択できる Amazon MQ 固有の設定があります。 EventBridge Pipes は、そのデータを宛先に送信するときに、メッセージブローカーからのレコードの順序を維持します。
Amazon MQ は、Apache ActiveMQ
Amazon MQ は、ActiveMQ または RabbitMQ ブローカーをインストールすることで、ユーザーに代わって Amazon Elastic Compute Cloud (Amazon EC2) インスタンスを管理することもできます。 RabbitMQ ブローカーをインストールすると、さまざまなネットワークトポロジやその他のインフラストラクチャのニーズがインスタンスに提供されます。
Amazon MQ ソースには、次の設定制限があります。
-
クロスアカウント – クロスアカウント処理は EventBridge サポートされていません。を使用して EventBridge 、別の AWS アカウントにある Amazon MQ メッセージブローカーからのレコードを処理することはできません。
-
認証 – ActiveMQ では、ActiveMQ SimpleAuthenticationPlugin
のみがサポートされています。RabbitMQ では、PLAIN 認証メカニズムのみがサポートされています。認証情報を管理するには、 AWS Secrets Managerを使用してください。ActiveMQ 認証の詳細については、Amazon MQデベロッパーガイドActiveMQ ブローカーと の統合LDAP」を参照してください。 -
接続クォータ - ブローカーは、ワイヤレベルプロトコルごとに最大の接続可能数を持っています。このクォータは、ブローカーインスタンスタイプに基づいています。これらの制限の詳細については、「Amazon MQ デベロッパーガイド」の「*Amazon MQ のクォータ」 の「ブローカー」のセクションを参照してください。
-
接続 — ブローカーは、パブリックまたはプライベート仮想プライベートクラウド () で作成できますVPC。プライベート の場合VPCs、パイプはメッセージを受信VPCするために にアクセスする必要があります。
-
イベント送信先 - キューの送信先のみがサポートされます。ただし、仮想トピックを使用することができます。仮想トピックは、パイプと対話するとき、内部的にトピックとして、かつ外部的にキューとして動作します。詳細については、Apache ActiveMQ ウェブサイトの Virtual Destinations
および RabbitMQ ウェブサイトの Virtual Hosts を参照してください。 -
ネットワークトポロジ - ActiveMQ の場合、パイプに対して、1つの単一インスタンスまたはスタンバイブローカーがサポートされます。RabbitMQ の場合、パイプごとに、単一インスタンスブローカーまたはクラスターデプロイメントがサポートされます。単一インスタンスブローカーには、フェイルオーバーエンドポイントが必要です。これらのブローカーデプロイメントモードの詳細については、「Amazon MQ デベロッパーガイド」の「Active MQ ブローカーアーキテクチャ」および「Rabbit MQ ブローカーアーキテクチャ」を参照してください。
-
プロトコル — サポートされるプロトコルは、使用する Amazon MQ の統合のタイプによって異なります。
-
ActiveMQ 統合の場合、 EventBridge は OpenWire/Java Message Service (JMS) プロトコルを使用してメッセージを消費します。メッセージの使用は、他のプロトコルではサポートされていません。 EventBridge は、 JMS プロトコル内の TextMessage
および BytesMessage オペレーションのみをサポートします。 OpenWire プロトコルの詳細については、Apache ActiveMQ ウェブサイトのOpenWire 「」を参照してください。 -
RabbitMQ 統合の場合、 EventBridge は AMQP 0-9-1 プロトコルを使用してメッセージを消費します。その他のプロトコルは、メッセージの使用をサポートしていません。RabbitMQ による 0-9-1 AMQP プロトコルの実装の詳細については、RabbitMQ ウェブサイトのAMQP「0-9-1 完全なリファレンスガイド
」を参照してください。
-
EventBridge は、Amazon MQ がサポートする最新バージョンの ActiveMQ と RabbitMQ を自動的にサポートします。 Amazon MQ サポートされている最新バージョンについては、「Amazon MQ デベロッパーガイド」の「Amazon MQ リリースノート」を参照してください。
注記
デフォルトでは、Amazon MQ には毎週、ブローカー用のメンテナンスウィンドウがあります。その期間中、ブローカーは利用できません。スタンバイのないブローカー EventBridge の場合、ウィンドウが終了するまでメッセージを処理しません。
イベントの例
次のサンプルイベントは、パイプが受信した情報を示しています。このイベントを使用して、イベントパターンを作成およびフィルタリングしたり、入力変換を定義したりできます。すべてのフィールドをフィルタリングできるわけではありません。フィルターできるフィールドの詳細については、「Amazon EventBridge Pipes でのイベントフィルタリング」を参照してください。
ActiveMQ
[ { "eventSource": "aws:amq", "eventSourceArn": "arn:aws:mq:us-west-2:112556298976:broker:test:b-9bcfa592-423a-4942-879d-eb284b418fc8", "messageID": "ID:b-9bcfa592-423a-4942-879d-eb284b418fc8-1.mq.us-west-2.amazonaws.com-37557-1234520418293-4:1:1:1:1", "messageType": "jms/text-message", "data": "QUJDOkFBQUE=", "connectionId": "myJMSCoID", "redelivered": false, "destination": { "physicalname": "testQueue" }, "timestamp": 1598827811958, "brokerInTime": 1598827811958, "brokerOutTime": 1598827811959 }, { "eventSource": "aws:amq", "eventSourceArn": "arn:aws:mq:us-west-2:112556298976:broker:test:b-9bcfa592-423a-4942-879d-eb284b418fc8", "messageID": "ID:b-9bcfa592-423a-4942-879d-eb284b418fc8-1.mq.us-west-2.amazonaws.com-37557-1234520418293-4:1:1:1:1", "messageType": "jms/bytes-message", "data": "3DTOOW7crj51prgVLQaGQ82S48k=", "connectionId": "myJMSCoID1", "persistent": false, "destination": { "physicalname": "testQueue" }, "timestamp": 1598827811958, "brokerInTime": 1598827811958, "brokerOutTime": 1598827811959 } ]
RabbitMQ
[ { "eventSource": "aws:rmq", "eventSourceArn": "arn:aws:mq:us-west-2:111122223333:broker:pizzaBroker:b-9bcfa592-423a-4942-879d-eb284b418fc8", "eventSourceKey": "pizzaQueue::/", "basicProperties": { "contentType": "text/plain", "contentEncoding": null, "headers": { "header1": { "bytes": [ 118, 97, 108, 117, 101, 49 ] }, "header2": { "bytes": [ 118, 97, 108, 117, 101, 50 ] }, "numberInHeader": 10 }, "deliveryMode": 1, "priority": 34, "correlationId": null, "replyTo": null, "expiration": "60000", "messageId": null, "timestamp": "Jan 1, 1970, 12:33:41 AM", "type": null, "userId": "AIDACKCEVSQ6C2EXAMPLE", "appId": null, "clusterId": null, "bodySize": 80 }, "redelivered": false, "data": "eyJ0aW1lb3V0IjowLCJkYXRhIjoiQ1pybWYwR3c4T3Y0YnFMUXhENEUifQ==" } ]
コンシューマーグループ
Amazon MQ とやり取りするために、 は Amazon MQ ブローカーから読み取ることができるコンシューマーグループ EventBridge を作成します。コンシューマーグループは、パイプ と同じ ID で作成されますUUID。
Amazon MQ ソースの場合、 はレコードをまとめて EventBridge バッチ処理し、単一のペイロードで関数に送信します。動作を制御するには、バッチ処理ウィンドウとバッチサイズを設定できます。 EventBridge は、次のいずれかが発生するまでメッセージをプルします。
-
処理されたレコードのペイロードサイズは最大 6 MB に達します。
-
バッチウィンドウの有効期限が切れる。
-
レコード数がバッチサイズ全体に達します。
EventBridge はバッチを単一のペイロードに変換し、関数を呼び出します。メッセージは永続化も逆シリアル化もされません。代わりに、コンシューマーグループはそれらをバイトBLOB単位で取得します。次に、base64 でそれらをJSONペイロードにエンコードします。パイプがバッチ内のいずれかのメッセージに対してエラーを返した場合、 は処理が成功するか、メッセージが期限切れになるまで、メッセージのバッチ全体を EventBridge 再試行します。
ネットワーク構成
デフォルトではAmazon MQ、 ブローカーは PubliclyAccessible
フラグを false に設定して作成されます。ブローカーにパブリック IP アドレスが与えられるのは、PubliclyAccessible
が true に設定されている場合のみです。パイプでフルアクセスするには、ブローカーがパブリックエンドポイントを使用するか、 へのアクセスを提供する必要がありますVPC。
Amazon MQ ブローカーがパブリックアクセス可能でない場合は、ブローカーに関連付けられた Amazon Virtual Private Cloud (Amazon VPC) リソースにアクセスできる EventBridge 必要があります。
Amazon MQ ブローカーVPCの にアクセスするには、ソースのサブネットにアウトバウンドインターネットアクセス EventBridge を使用できます。パブリックサブネットの場合、これはマネージドNATゲートウェイ である必要があります。プライベートサブネットの場合、NATゲートウェイでも独自の でもかまいませんNAT。にパブリック IP アドレスNATがあり、インターネットに接続できることを確認します。
EventBridge Pipes は を介したイベント配信もサポートしているためAWS PrivateLink
、 Amazon Virtual Private Cloud (Amazon VPC) にあるイベントソースから Pipes ターゲットにイベントを送信できます。パブリックインターネットを経由する必要はありません。Pipes を使用すると、インターネットゲートウェイをデプロイしたり、ファイアウォールルールを設定したり、プロキシサーバーを設定したりすることなく、 Amazon Managed Streaming for Apache Kafka (Amazon MSK)、セルフマネージド Apache Kafka、およびプライベートサブネットに存在する Amazon MQ ソースからポーリングできます。 VPC エンドポイントを設定するには、「 ユーザーガイド」のVPC「エンドポイントの作成AWS PrivateLink 」を参照してください。サービス名で、 を選択します
com.amazonaws.
。region
.pipes-data
Amazon VPC セキュリティグループを次のルールで設定します (最低)。
-
インバウンドルール – ソースに指定されたセキュリティグループの Amazon MQ ブローカーポート上のすべてのトラフィックを許可します。
-
アウトバウンドルール – すべての送信先に対して、ポート 443 上のすべてのトラフィックを許可します。ソースに指定されたセキュリティグループの Amazon MQ ブローカーポート上のすべてのトラフィックを許可します。
ブローカーポートには以下が含まれます。
プレーンテキストの場合は 9092
の 9094 TLS
の 9096 SASL
の 9098 IAM
注記
Amazon VPC設定は、Amazon MQ APIを通じて検出できます。セットアップ中に設定する必要はありません。