jawsug版 postgresql on amazon ec2の可能性
TRANSCRIPT
PostgreSQL on Amazon EC2
@hashiva
Serverworks Co.,Ltd
JAWSUG版
RDS?? Multi-AZ??
ポスグレ使いたいんだけど!
やってみた
EC2だとこうなったSPOF
ELB
SPOFができてしまう理由
Amazon EC2の特徴
ローカルIPとグローバルIPは仮想サーバー起動時に自動設定される
ローカルIPは自由に変更する事が出来ない
仮想IPを使用する一般的な冗長構成は難しい
がんばってみた
スクリプトでpgpool-IIを監視
pgpool-IIが落ちたらAMIから再起動
⇒EC2ならでは!
おとしてみた
障害発生時の流れ
①障害検知 AMI
ELB
監視サーバー上の起動スクリプト
pgpool-IIへ定期的に接続を行う
失敗した場合
• 新しいpgpool-IIサーバーを起動して監視再開
• さらに失敗した場合は再度新しいpgpool-IIサーバーを起動する
スクリプトのURL
http://github.com/serverworks/jpug-
2010-summer-seminar
pgpool-IIサーバーの自動実行スクリプト
1. 割り当てられたローカルIPを取得する
2. 監視サーバ, Webサーバー1号機, 2号機の各ホストにSSH接続し /etc/hosts に含まれるpgpool-IIホストのIPアドレスを書き換える
スクリプトのURL
http://github.com/serverworks/jpug-
2010-summer-seminar
復旧までの時間
状態 時刻
障害発生 14:15:10
障害検知、新サーバー起動開始 14:18:31
新サーバー起動確認 14:19:47
新サーバーDB接続確認 14:20:20
ダウンタイム:5分10秒
スクリプト改善の余地あり
おまけ
ポーリングの間隔を間違えると大変なことになります
検証中の失敗例
ELB
考察
pgpool-IIを冗長化する場合、仮想IPを使用した冗長構成は難しい
監視システムとスクリプトを連動させる事でpgpool-IIサーバーの自動復旧は実現可能
次回予告
パフォーマンス比較(RDS vs PostgreSQL on EC2)
最後に
Amazon RDS のPostgreSQL版
ぜひよろしくお願いいたします
ありがとうございました
@cloudworks_jp