postgresql on amazon ec2の可能性

Post on 28-Jun-2015

5.192 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

ご清聴ありがとうございました

top related