share facebook facebook twitter menu hatena pocket slack

2012.06.29 FRI

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

鈴木 宏康

WRITTEN BY 鈴木 宏康

今回は、Cloud Design Pattern(CDP)の記事になります。
対象は「Multi-Datacenterパターン」です。

このパターンの「注意点」に下記の記載があります。

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

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

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

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

具体的には、Kyoto Tycoonの冗長化の記事で紹介した、別AZで冗長化したKyoto Tycoon(Memcache)に対して、
上記の設定を行なってみます。

上記を図にすると、下記のようになります。

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の通信速度で利用することができます。

こちらの記事はなかの人(suz-lab)監修のもと掲載しています。
元記事は、こちら

鈴木 宏康

鈴木 宏康

愛知県生まれ。東京工業大学大学院修士課程修了。在学時より、ベンチャー企業でインターネットに関する業務に携わり、現在はクラウド(主にAmazon Web Services)上での開発・運用を軸とした事業の、業務の中心として活躍。

cloudpack

cloudpackは、Amazon EC2やAmazon S3をはじめとするAWSの各種プロダクトを利用する際の、導入・設計から運用保守を含んだフルマネージドのサービスを提供し、バックアップや24時間365日の監視/障害対応、技術的な問い合わせに対するサポートなどを行っております。
AWS上のインフラ構築およびAWSを活用したシステム開発など、案件のご相談はcloudpack.jpよりご連絡ください。