LoginSignup
4
2

More than 5 years have passed since last update.

RabbitMQで、AWSとかでIPアドレスを変更されるとユーザ・vhostが消える対応

Posted at

AWSとかでIPアドレスを変更されるとユーザ・vhostが消える対応

現象

  • AWSとかでRabbitMQをインストールしたインスタンスをAMI化、そのAMIを元にインスタンスを作るとあったはずのユーザやvhostが消えている
作成時点はvhost(/production)が存在
$ sudo /usr/sbin/rabbitmqctl list_vhosts
 Listing vhosts ...
 /
 /production
 ...done.
AMIからインスタンスを作るとvhostが消滅
$ sudo /usr/sbin/rabbitmqctl list_vhosts
 Listing vhosts ...
 /
 ...done.

原因

  • RabbitMQサーバーのIPアドレスが変わったため
    • RabbitMQのユーザやvhostはRabbitMQのNODENAMEに依存している
    • デフォルト値のNODENAMEはrabbit@<hostname>となる
    • AWSの場合、ホスト名はIPアドレスから作成される(例:IPアドレス = 10.1.0.20の場合、ホスト名 = ip-10-1-0-20)
    • その為、IPアドレス = 10.1.0.20の場合、NODENAMEはrabbit@ip-10-1-0-20となる
    • ホスト名が途中で変わるとホスト名を元にしていたNODENAMEと不整合が発生し、ユーザ・vhostが消失する

対策

  • RabbitMQの設定ファイルでNODENAMEをホスト名(=IPアドレス)に依存しない名前に明示的に指定する
/etc/rabbitmq/rabbitmq-env.conf
NODENAME=rabbit@localhost
  • 設定したら再起動。このとき、当然ユーザ・vhostは消えるので注意すること。なのでインストール時に設定したほうがよい。
4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2