Amazon MQサービスについて
Amazon MQとは?
概要
Amazon MQというサービスはご存知でしょうか。AWSで提供されているApache ActiveMQ向けのマネージド型メッセージブローカーサービスがこのAmazon MQというサービスです。
では、このメッセージブローカーとはどのような機能を指すのかはご存知でしょうか。
メッセージブローカーとは
簡単に説明すると、異なるシステム間でメッセージをやり取りする際に、中間システムとしてメッセージ格納領域を管理する機能のことです。ここでいうメッセージとは、SMSなどでやり取りされるメッセージとは異なっており、システムからシステムに送信される指示や渡す情報のことを指しています。例えば「処理2を行いたい」となって処理1から値や引数などの情報が必要な場合、処理1が処理2を起動する時に出す情報や指示をメッセージと呼ぶのです。
メッセージキューイングとは
そして、Amazon MQのMQとはメッセージキューイングの事を指しています。メッセージキューイングとは、メッセージブローカーを介したメッセージのやり取りを含めた異なるシステム間のデータの送受信を、第三者のソフトウェアの預けることで送信側も受信側も任意のタイミングで送受信処理を行うことができるようにするシステムです。
もしこのMQがなければ、送受信は毎回タイミングを合わせて同時に行う必要があり、送受信側共に処理の開始と終了を待ち続けなければならないという弊害が生まれてしまいます。
こうした弊害を解決する為のシステムがこのメッセージキューイングであり、メッセージキューイングの中間システムを担うのが先程解説したメッセージブローカーであり、今回解説しているAmazon MQは、このメッセージブローカーサービスを取り扱うことができるサービスなのです。
メリット
完全マネージド型
Amazon MQは完全マネージド型であるが故に不要な作業は軽減され、必要な作業が凝縮される事でメンテナンスが容易に行えるようになるのです。ソフトウェアのアップグレードやセキュリティ更新、障害検知などの管理タスクを処理でき、総合的な管理が容易に行うことができるようになります。
移行
Amazon MQでは業界標準のAPI及びプロトコルをサポートしています。その為、従来のメッセージコードを書き換える必要なく現状を維持したまま、Amazon MQに移行することができるのです。これは大幅な工数の削減をしつつ、新しく便利なシステムに移行ができるという、大きなメリットになると言えるのではないでしょうか。例としてAmazon MQではNMS、JMS、STOMP、MQTT、WebSocketなどのメッセージング用のプロトコルを使用しています。これは元々ActiveMQという人気の高いオープンソースのメッセージブローカーを採用している事で実現しています。
また、万が一ActiveMQ以外のメッセージブローカーを現在使用していたとしても、基本的には標準に準拠したメッセージブローカーであればActiveMQをベースにしている事で様々なAPIやプロトコルとの互換性がある為、多くの場合はAmazon MQブローカーのエンドポイントの更新を行うだけで、現在利用中のアプリケーションに接続しメッセージの送信を行うことができるのです。
連携
また他のAWSサービスとも統合されており、当然高い親和性を持っています。例えばAmazon CloudWatchではメトリクスの監視とアラームの作成を、Amazon CloudWatch LogsではAmazon MQのブローカーからログをパブリッシュすることができます。
その他にもAWS CloudTrailではAmazon MQ APIコールのログ作成や継続的な監視や保持、AWS CloudFormationではメッセージブローカー作成やアップデートなどを行います。このようにAmazon MQだけではなく他の様々なサービスと連携することで、よりこのAmazon MQを活用することができる点も、Amazon MQを利用するメリットの一つと言えるのではないでしょうか。
管理
では、Amazon MQは具体的にどのような事をユーザーの代わりに管理してくれるのでしょうか。
Amazon MQはメッセージブローカーの設定に関わる作業を管理します。例えばそれはブローカーソフトウェアのインストールであったり、インフラストラクチャキャパシティーのプロビも含まれています。ブローカーをセットアップし、実行することにより、実行中のソフトウェアのアップグレード、障害の検出及びリカバリ、セキュリティの更新などがAmazonに管理されるようになります。
Amazon MQによりブローカーに関わる作業はほぼすべて管理できるようになるのです。
最後に
現行のメッセージブローカーサービスから容易に移行することができ、また様々なAWSと統合することでメッセージブローカーサービスをより有効的に利用できるようになるAmazon MQ。既にAvtiveMQを利用している方はもちろん、それ以外のメッセージブローカーを利用している方も、新たな移行先として検討する余地は大いにあると言えるでしょう。