RabbitMQとは何か
今日は、RabbitMQに関する新しいチュートリアルシリーズを始めます。RabbitMQは分散型のメッセージブローカーです。メッセージブローカーとは何かよくわからない方のために説明すると、これはアプリケーション同士が通信し、メッセージを交換できるようにするソフトウェアです。
例えば、あるユーザーがECアプリケーションで新しい商品をカートに追加したり、別のデバイスからアカウントにサインインしたりすることを示すメッセージなどがあります。
では、なぜ自分のアプリケーションにメッセージブローカーを使用したいと思うのでしょうか?メッセージブローカーは、シンプルなAPIベースのシステムに比べて少し複雑さが増しますが、特に長期的には多くの利点があります。
RabbitMQの利点
メッセージブローカーの利用が人気なのは、エンジニアが疎結合なアプリケーションを作成でき、新しいシステムパーツを既存のシステムに影響を与えることなくシームレスに追加できるからです。これは、マイクロサービススタイルのアーキテクチャで一般的に使用されており、開発者にとって必須のトピックとなっています。

ほとんどのメッセージバス(RabbitMQを含む)は非同期で動作します。これは、シンプルなリクエスト・リプライパターンに従わず、返信を待つ必要がないことを意味します。これについては後ほど詳しく説明しますが、このアプローチを現代のマイクロサービスアーキテクチャと組み合わせることで、優れたスケーラビリティと信頼性を達成することができます。
シリーズの後半では、RabbitMQのようなメッセージブローカーがどのようにこれを実現するのか、一般的なアプリケーションの例を挙げて詳しく見ていきます。
RabbitMQの人気
RabbitMQのウェブサイトをご覧になればわかるように、RabbitMQは最も広く導入されているオープンソースのメッセージブローカーです。非常に人気があります。Reddit、Accenture、NASAのような巨大な多国籍技術企業だけでなく、世界中のスタートアップでも広く採用されています。インストールと始めるのが非常に簡単で、プロトタイピングに最適です。また、AWS、Azure、GCPのような多くの人気クラウドでデプロイすることができます。
RabbitMQのウェブサイトは、スタートするのに最適な場所です。録画時点では、最新バージョンは3.9.8であり、ウェブサイトにはコミュニティに参加する方法、ドキュメント、サポート、ブログなどの詳細が豊富に掲載されています。
RabbitMQの特徴
特徴について言えば、RabbitMQには膨大な機能があり、さまざまなシナリオに対応するためにプラグインで拡張することもできます。RabbitMQには管理UIが組み込まれており、このコースではこれを使用して、RabbitMQがメッセージに対してどのような処理を行っているかを理解していきます。

RabbitMQは非常に軽量で、RabbitMQのコアプラットフォームは40MB未満のRAMで動作します。管理UIでは、RabbitMQが行っているすべての作業の概要が表示されます。接続、チャネル、エクスチェンジ、キューの監視が可能で、これらはすべて今後の記事で説明していきます。
また、ディスク読み取り、ディスク書き込み、ポートやユーザーが使用しているRabbitMQ環境に関する情報などの統計データも確認できます。
このチュートリアルシリーズでは、RabbitMQを複数のプラットフォームにインストールする方法から始め、できるだけ早く使用を開始するための基本的な操作方法を見ていきます。また、RabbitMQがデフォルトのメッセージングプロトコルとしてAMQPをどのように使用しているかについても簡単に見ていきます。
RabbitMQのクライアント
先に述べたように、このシリーズの核心では、RabbitMQの機能を使用して、分散コンピューティング環境でよく直面するコアアーキテクチャの問題を解決する方法を探ります。これらは、オンプレミスやクラウドにデプロイされたアプリケーションを容易にスケールさせると同時に、これらのアプリケーションが高い可用性を確保するための手法です。
これらのアーキテクチャパターンは、技術分野で最も需要のあるスキルの一つであり、それらを深く理解することは、技術スタックに関係なく業界全体で価値があります。RabbitMQには多くの人気のある言語でクライアントライブラリが提供されています。このシリーズでは主にPythonとC#を使用しますが、主にコンセプトに焦点を当てているため、カバーする内容はJava、PHP、Ruby、Goなど、クライアントライブラリが存在する他の言語でも同様に適用可能です。
シリーズを締めくくるために、RabbitMQの高度な機能の一部を取り上げ、RabbitMQをノードのクラスタとして設定する方法や、RabbitMQソリューションを高度に可用性が高く、クラウド内の複数のデータセンターに分散させるための技術について説明します。
このチュートリアルが、RabbitMQとは何か、そしてこのコースで何をカバーするのかについて良い導入と概要を提供できたことを願っています。次の記事では、ローカルマシンにRabbitMQをインストールする作業に取り掛かります。
アプリケーションのアーキテクチャは最も弱いポイントでしかないことを忘れずに、他のチュートリアルもチェックして、開発を次のレベルに引き上げるために使用できる他の需要の高いスキルを学びましょう。