読者です 読者をやめる 読者になる 読者になる

MHAをAWSで使うための支援ツールMHA::AWSをアップデートしてCPANに上げた

以前に作って、プロダクションでもいくつかのサービスに導入している MHA::AWS ですが、failover 方法を ENI 付け替えの他に VPC Route Table の書き換えもサポートしました。

ENI付け替えでは同一 Availability Zone 内での failover しかできませんが、VPC Route Table の書き換えによる方法では Multi-AZ 環境での failover も可能になります。

CPANにも上げましたので、 cpanm MHA::AWS でインストール可能です。

以前の紹介記事 → #11 MySQL Master HA を AWS で動作させる場合のフェイルオーバー支援ツール MHA::AWS のご紹介 | tech.kayac.com - KAYAC engineers' blog

# /etc/masterha_default.cnf
master_ip_failover_script=mhaws master_ip_failover --interface_id=eni-xxxxxxxx
master_ip_online_change_script=mhaws master_ip_online_change --interface_id=eni-xxxxxxx
shutdown_script=mhaws shutdown --interface_id=eni-xxxxxxxx

使用方法は以前と変わらず、master_ip_(failover|online_change)_script と shutdown_script に対して引数を適切に設定した mhaws コマンドを指定すれば動きます。

Usage:
        $ mhaws [subcommand] --interface_id=ENI-id [... args passed by MHA]

        required arguments:
          1. failover method is ENI attach/detach
            --interface_id=[ENI-id for master VIP]

          2. failover method is RouteTable change destination
            --route_table_id=[RouteTable-id]
            --vip=[master VIP]

        subcommand:
          master_ip_failover
          master_ip_online_change
          shutdown

実はまだ、幸か不幸か(テスト以外で) 本番環境で事故による failover が発動したことはないのですが、一応ちゃんと動くと思います。
深遠な理由で RDS でなく EC2環境で MySQL を動作させる必要がある、MHAでフェイルオーバーしたい、というかたはどうぞご利用ください。