Upload
serverworks-coltd
View
5.186
Download
2
Embed Size (px)
Citation preview
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
ご清聴ありがとうございました