17
PostgreSQL on Amazon EC2 @hashiva Serverworks Co.,Ltd JAWSUG

JAWSUG版 PostgreSQL on Amazon EC2の可能性

Embed Size (px)

Citation preview

Page 1: JAWSUG版 PostgreSQL on Amazon EC2の可能性

PostgreSQL on Amazon EC2

@hashiva

Serverworks Co.,Ltd

JAWSUG版

Page 2: JAWSUG版 PostgreSQL on Amazon EC2の可能性

RDS?? Multi-AZ??

ポスグレ使いたいんだけど!

Page 3: JAWSUG版 PostgreSQL on Amazon EC2の可能性

やってみた

Page 4: JAWSUG版 PostgreSQL on Amazon EC2の可能性

EC2だとこうなったSPOF

ELB

Page 5: JAWSUG版 PostgreSQL on Amazon EC2の可能性

SPOFができてしまう理由

Amazon EC2の特徴

ローカルIPとグローバルIPは仮想サーバー起動時に自動設定される

ローカルIPは自由に変更する事が出来ない

仮想IPを使用する一般的な冗長構成は難しい

Page 6: JAWSUG版 PostgreSQL on Amazon EC2の可能性

がんばってみた

Page 7: JAWSUG版 PostgreSQL on Amazon EC2の可能性

スクリプトでpgpool-IIを監視

pgpool-IIが落ちたらAMIから再起動

⇒EC2ならでは!

Page 8: JAWSUG版 PostgreSQL on Amazon EC2の可能性

おとしてみた

Page 9: JAWSUG版 PostgreSQL on Amazon EC2の可能性

障害発生時の流れ

①障害検知 AMI

ELB

Page 10: JAWSUG版 PostgreSQL on Amazon EC2の可能性

監視サーバー上の起動スクリプト

pgpool-IIへ定期的に接続を行う

失敗した場合

• 新しいpgpool-IIサーバーを起動して監視再開

• さらに失敗した場合は再度新しいpgpool-IIサーバーを起動する

スクリプトのURL

http://github.com/serverworks/jpug-

2010-summer-seminar

Page 11: JAWSUG版 PostgreSQL on Amazon EC2の可能性

pgpool-IIサーバーの自動実行スクリプト

1. 割り当てられたローカルIPを取得する

2. 監視サーバ, Webサーバー1号機, 2号機の各ホストにSSH接続し /etc/hosts に含まれるpgpool-IIホストのIPアドレスを書き換える

スクリプトのURL

http://github.com/serverworks/jpug-

2010-summer-seminar

Page 12: JAWSUG版 PostgreSQL on Amazon EC2の可能性

復旧までの時間

状態 時刻

障害発生 14:15:10

障害検知、新サーバー起動開始 14:18:31

新サーバー起動確認 14:19:47

新サーバーDB接続確認 14:20:20

ダウンタイム:5分10秒

スクリプト改善の余地あり

Page 13: JAWSUG版 PostgreSQL on Amazon EC2の可能性

おまけ

ポーリングの間隔を間違えると大変なことになります

検証中の失敗例

ELB

Page 14: JAWSUG版 PostgreSQL on Amazon EC2の可能性

考察

pgpool-IIを冗長化する場合、仮想IPを使用した冗長構成は難しい

監視システムとスクリプトを連動させる事でpgpool-IIサーバーの自動復旧は実現可能

Page 15: JAWSUG版 PostgreSQL on Amazon EC2の可能性

次回予告

パフォーマンス比較(RDS vs PostgreSQL on EC2)

Page 16: JAWSUG版 PostgreSQL on Amazon EC2の可能性

最後に

Amazon RDS のPostgreSQL版

ぜひよろしくお願いいたします

Page 17: JAWSUG版 PostgreSQL on Amazon EC2の可能性

ありがとうございました

Twitter

@cloudworks_jp