大柳です。
マネージド型のメッセージブローカーサービスAmazon MQが発表されました。
Amazon MQでできること
Apache ActiveMQが設定されたサーバをフルマネージドサービスとして使えます。
AWSにはこれまでも、メッセージブローカー相当のものとしてSQSやAWS IoTがありました。
- SQS(Simple Queue Service)…AWS SDK経由やJMSプロバイダーとしてキューの登録・取り出しが可能
- AWS IoT…MQTT(+SSL)プロトコルでメッセージの送受信が可能
Amazon MQの核となるApache ActiveMQはWebSocket、AMQP、STOMP、OpenWire、MQTTなど様々なプロトコルに対応しており、アプリケーションや機器など接続可能先が広がります。
検証
Amazon MQの構築手順は某社の方が秒速で書いているので、構築して気になったポイントをいくつか紹介します。
利用可能なリージョン
現在は東京リージョンは対応していません。2017/11/29現在、以下のリージョンに対応しています。
- EU (アイルランド)
- アジアパシフィック (シドニー)
- EU (フランクフルト)
- 米国東部 (バージニア北部)
- 米国東部 (オハイオ)
- 米国西部 (オレゴン)
管理画面
ActiveMQのウェブコンソールを利用可能です。TCP8162番ポートをセキュリティグループのInboundで空けておく必要があります。
利用できるプロトコル
OpenWire、AMQP、STOMP、MQTT、WSSが利用可能です。SSLが必要です。各プロトコルのポート番号は以下の通りです。
ポート番号を変えたり、SSLなしのを使えないか、試してみましたが後述する通り、設定できる範囲は制限があります。
ActiveMQ設定の変更
[設定]タブからActiveMQの設定を変更できます。xml形式の設定ファイルをマネジメントコンソール上から編集する形になります。
なお、以下のURLにも記載があるように、設定できるエントリには制限があります。今回、SSLなしのMQTTのエントリを設定しようとしましたが、許可されない設定ということで該当エントリは削除されてしまいました。
Amazon MQ ブローカー設定パラメータ – Amazon MQ
https://docs.aws.amazon.com/ja_jp/amazon-mq/latest/developer-guide/amazon-mq-broker-configuration-parameters.html
インスタンス構成
インスタンスタイプは、mq.t2.micro(1vCPU、1GB RAM)、mq.m4.large(2vCPU、8GB RAM)が選べます。
また、シングル構成と、障害時のフェイルオーバーを考慮したアクティブ/スタンバイ構成が選べます。
Apache ActiveMQのバージョン
ブローカーエンジンバージョンは5.15.0です。
まとめ
SQSやAWS IoTはメッセージブローカーとしての使い方もできますが、フルマネージド型のため管理負担は小さくなる一方で、柔軟なカスタマイズはやりにくい一面もありました。今回フルマネージド型のActiveMQのサービスが出たと聞いて、いろんな設定を柔軟にできるようになる、と期待したのですが設定できる範囲には制約がありそうです。
しかしながらActiveMQの様々なメッセージブローカーの機能をマネージド型サービスとして使えるのは魅力的なので今後いろいろ使い方を検証していきたいと思います。