はじめに
2017/04/11時点のAmazon Linuxだと標準のRPM repositoryからインストールされるerlangのバージョンが古く(R14)、EPELからインストールできるRabbitMQのバージョンも古い(3.1.3)ので最新版のRabbitMQを入れてみたので備忘録として残しておきます。
なお、公式ではEC2ではOSはUbuntu使うのがオススメです、と書いてあるのでAmazon Linuxに固執する理由がないならUbuntu使った方が簡単に導入できると思います。(参考)
方針
RabbitMQ - Installing on RPM-based Linux (RHEL, CentOS, Fedora, openSUSE)にさまざまなアプローチが書いてありますので好きな方法を選択すると良いと思います。
今回はRabbitMQのメンテナが用意してくれているerlangのRPMビルドスクリプトを利用してerlangのRPMパッケージを作成、そしてRabbitMQが配布しているビルド済みのRabbitMQのRPMパッケージを使うことにしました。
Erlang
rabbitmq/erlang-rpm: Zero dependency Erlang RPM, just enough for running RabbitMQを手元に持ってきてmakeするだけでRPMパッケージが作成されます。
dockerのイメージをビルドするスクリプトも用意されているので環境に合わせてご利用ください。
上記以外の方法としてはErlang Solutionsのパッケージを使う方法も推奨されていますがこちらは試していません。
RabbitMQ
RabbitMQ - Installing on RPM-based Linux (RHEL, CentOS, Fedora, openSUSE)で配布されているRPMパッケージを利用している環境に合わせてダウンロードして署名キーと合わせてインストールするだけです。
rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
yum install rabbitmq-server-3.6.9-1.noarch.rpm
RabbitMQのweb management GUI
RabbitMQはWebから利用できる管理用のGUIがあるのですが、3.3.0以降からlocalhost以外からのアクセスはデフォルトで拒否するようになっています。
そのため、rabbitmqctl
コマンドを使ってadd_user
, set_user_tags
, set_permissions
する必要があります。
下記がサンプルになります。user、 passwordは環境に合わせて変更した方がよいと思います。
rabbitmqctl add_user test test
rabbitmqctl set_user_tags test administrator
rabbitmqctl set_permissions -p / test ".*" ".*" ".*"