2012年5月7日月曜日

HAProxyの"backup"オプションで障害時のみ別AZを利用

スズキです。

CDPネタです。今回の対象は「Multi-Datacenterパターン」です。


このパターンの「注意点」に
AZ間の通信速度が気になる場合は、アプリケーションやHAProxyなどの
ミドルウェアで基本的には同一AZのEC2と通信するようにし、
そのEC2が障害時に別AZのEC2と通信するように制御することも可能である。
といった記載があります。

今回はHAProxyを利用して、通常は同一AZのEC2と通信するが、
そのEC2に障害が起きた場合、別AZのEC2を利用するような設定を試してみました。

と言ってもHAProxyの設定は、下記で紹介した"backup"オプションを利用することで
HAProxyを用いた"Read Replica"(RDS)の振り分け
簡単に実現することが可能です。

ちなみに"backup"オプションは"、backup"オプションがついていない
すべてのバックエンドサーバに対する通信ができなくなった場合に限り、
backup"オプションがついているサーバをバックエンドとして利用するものです。

具体的に、下記で別AZで冗長化した"Kyoto Tycoon(Memcache)"に対して、
"Kyoto Tycoon"の冗長化
上記の設定を行なってみます。図にすると、こんな感じでしょうか?


Aゾーンの"haproxy.cfg"の設定は、下記のような感じでしょうか?
listen memcache
    bind 0.0.0.0:11211
    mode tcp
    balance leastconn
    server memcache-a kt-a:11211 check port 11211
    server memcache-b kt-b:11211 check port 11211 backup
BゾーンのEC2(kt-b)に"backup"オプションをつけることで、
"kt-b"は"kt-a"が利用できなくなった時のみ利用されるようになり、
通常は同一AZの通信速度で利用することができます。

近頃、自分のやっている作業は、どれかのCDPに関わってるような気がする...
--------
http://www.suz-lab.com/

0 コメント: