PostgreSQL on Amazon EC2の可能性
-
Upload
serverworks-coltd -
Category
Technology
-
view
5.186 -
download
2
Transcript of PostgreSQL on Amazon EC2の可能性
PostgreSQL on Amazon EC2の可能性
2010年6月19日日本PostgreSQLユーザ会株式会社サーバーワークス クラウドオペレーション部柳瀬任章
アジェンダ
自己紹介
検証概要説明
サーバー構成
検証に使用したスクリプトについて
障害発生、確認、復旧
利用料金
検証結果まとめ
自己紹介
柳瀬 任章(やなせ ひであき)
株式会社サーバーワークス
クラウドオペレーション部所属
インフラ担当
背景
既存のWebサービスをAmazon EC2へ移行するにあたり、以下の条件をもとに検証作業を行いました
pgpool-IIの運用ノウハウを生かしたい
アプリケーション側に接続先DBの自動切り替え機能がない
検証の概要
Amazon EC2上でPostgreSQLとpgpool-IIを運用する場合において、以下についてレポートします
構成案
障害時の復旧時間
PostgreSQLサーバー1号機
PostreSQLサーバー2号機
監視サーバー
pgpool-IIサーバー
pgpool-IIサーバーAMI
Webサーバー1号機
Webサーバー2号機
ロードバランサ
構成図(Amazon EC2)
※注意各サーバーはAmazon EC2上のUS-WESTリージョンで稼働各サーバーはグローバルIPとローカルIPの両方が割り当たっていますWebサーバー以下の通信はローカルIPを使用して通信します上記構成はあくまで論理的なものであり、各サーバーがインターネットに接続されています
ソフトウェア
CentOS 5.5
PostgreSQL 8.4.4
pgpool-II 2.3.3
Ruby 1.8.5
弊社製のrubyスクリプト
pgpool-II監視スクリプト
hostsファイル変更スクリプト
今回の構成にした理由
Amazon EC2の特徴
ローカルIPとグローバルIPは仮想サーバー起動時に自動設定される
ローカルIPは自由に変更する事が出来ない
仮想IPを使用する一般的な冗長構成は難しい
PostgreSQLサーバー1号機
PostreSQLサーバー2号機
監視サーバー
pgpool-IIサーバー
pgpool-IIサーバーAMI
Webサーバー1号機
Webサーバー2号機
ロードバランサ
障害発生時の流れ
監視サーバーで起動させておくスクリプト
pgpool-IIへの接続を行う成功した場合 監視は成功したので、継続して監視をする
失敗した場合 新しいpgpool-IIサーバを起動して監視を再開 成功した場合はサーバーの起動に成功したので、継続
して監視をする
失敗した場合はサーバのー起動に失敗したので、さらに新しいpgpool-IIサーバーを起動する
スクリプトのURLhttp://github.com/serverworks/jpug-2010-summer-seminar
pgpool-IIサーバーで自動実行するスクリプト
割り当てられたローカルIPを取得する
監視サーバ, Webサーバー1号機, 2号機の各ホストについて、以下の処理を行う
SSH接続して、/etc/hostsに含まれるpgpool-IIホストのIPアドレスを書き換える
スクリプトのURLhttp://github.com/serverworks/jpug-2010-summer-seminar
障害発生
①サーバー停止中
②サーバー停止開始時刻
障害確認
①サーバー停止確認時刻
②DB接続障害確認、新サーバー起動
復旧確認
①サーバー起動時刻
Webサーバーからの復旧確認
①DB接続復旧時刻
復旧までの時間
状態 時刻
障害発生 14:15:10
監視スクリプトが障害検知、新サーバー起動開始 14:18:31
新サーバー起動確認 14:19:47
新サーバーDB接続確認 14:20:20
ダウンタイム:5分10秒
スクリプト改善の余地あり
サーバー起動開始からの復旧時間:1分49秒
1ヶ月の利用料金
PostgreSQLサーバー1号機
PostreSQLサーバー2号機
監視サーバー
pgpool-IIサーバー
pgpool-IIサーバーAMI
Webサーバー1号機
Webサーバー2号機
ロードバランサ
11,340円
6,840円
11,340円
2,586円
6,840円
6,840円
6,840円
各サーバのディスクI/O6台分 7,260円
まとめ
Amazon EC2でpgpool-IIを冗長化する場合、仮想IPを使用した冗長構成は難しい
Amazon EC2ではサーバーをスクリプトから操作し、直ちに用意する事が出来る
監視システムと連動させる事でpgpool-IIサーバーの自動復旧は実現可能
Cloudworks
Amazon EC2を日本語で運用出来ます
http://www.cloudworks.jp
ご清聴ありがとうございました