21
PostgreSQL on Amazon EC2の可能性 2010619日本PostgreSQLユーザ会 株式会社サーバーワークス クラウドオペレーション部 柳瀬任章

PostgreSQL on Amazon EC2の可能性

Embed Size (px)

Citation preview

Page 1: PostgreSQL on Amazon EC2の可能性

PostgreSQL on Amazon EC2の可能性

2010年6月19日日本PostgreSQLユーザ会株式会社サーバーワークス クラウドオペレーション部柳瀬任章

Page 2: PostgreSQL on Amazon EC2の可能性

アジェンダ

自己紹介

検証概要説明

サーバー構成

検証に使用したスクリプトについて

障害発生、確認、復旧

利用料金

検証結果まとめ

Page 3: PostgreSQL on Amazon EC2の可能性

自己紹介

柳瀬 任章(やなせ ひであき)

株式会社サーバーワークス

クラウドオペレーション部所属

インフラ担当

Page 4: PostgreSQL on Amazon EC2の可能性

背景

既存のWebサービスをAmazon EC2へ移行するにあたり、以下の条件をもとに検証作業を行いました

pgpool-IIの運用ノウハウを生かしたい

アプリケーション側に接続先DBの自動切り替え機能がない

Page 5: PostgreSQL on Amazon EC2の可能性

検証の概要

Amazon EC2上でPostgreSQLとpgpool-IIを運用する場合において、以下についてレポートします

構成案

障害時の復旧時間

Page 6: PostgreSQL on Amazon EC2の可能性

PostgreSQLサーバー1号機

PostreSQLサーバー2号機

監視サーバー

pgpool-IIサーバー

pgpool-IIサーバーAMI

Webサーバー1号機

Webサーバー2号機

ロードバランサ

構成図(Amazon EC2)

※注意各サーバーはAmazon EC2上のUS-WESTリージョンで稼働各サーバーはグローバルIPとローカルIPの両方が割り当たっていますWebサーバー以下の通信はローカルIPを使用して通信します上記構成はあくまで論理的なものであり、各サーバーがインターネットに接続されています

Page 7: PostgreSQL on Amazon EC2の可能性

ソフトウェア

CentOS 5.5

PostgreSQL 8.4.4

pgpool-II 2.3.3

Ruby 1.8.5

弊社製のrubyスクリプト

pgpool-II監視スクリプト

hostsファイル変更スクリプト

Page 8: PostgreSQL on Amazon EC2の可能性

今回の構成にした理由

Amazon EC2の特徴

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

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

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

Page 9: PostgreSQL on Amazon EC2の可能性

PostgreSQLサーバー1号機

PostreSQLサーバー2号機

監視サーバー

pgpool-IIサーバー

pgpool-IIサーバーAMI

Webサーバー1号機

Webサーバー2号機

ロードバランサ

障害発生時の流れ

Page 10: PostgreSQL on Amazon EC2の可能性

監視サーバーで起動させておくスクリプト

pgpool-IIへの接続を行う成功した場合 監視は成功したので、継続して監視をする

失敗した場合 新しいpgpool-IIサーバを起動して監視を再開 成功した場合はサーバーの起動に成功したので、継続

して監視をする

失敗した場合はサーバのー起動に失敗したので、さらに新しいpgpool-IIサーバーを起動する

スクリプトのURLhttp://github.com/serverworks/jpug-2010-summer-seminar

Page 11: PostgreSQL on Amazon EC2の可能性

pgpool-IIサーバーで自動実行するスクリプト

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

監視サーバ, Webサーバー1号機, 2号機の各ホストについて、以下の処理を行う

SSH接続して、/etc/hostsに含まれるpgpool-IIホストのIPアドレスを書き換える

スクリプトのURLhttp://github.com/serverworks/jpug-2010-summer-seminar

Page 12: PostgreSQL on Amazon EC2の可能性

障害発生

①サーバー停止中

②サーバー停止開始時刻

Page 13: PostgreSQL on Amazon EC2の可能性

障害確認

①サーバー停止確認時刻

②DB接続障害確認、新サーバー起動

Page 14: PostgreSQL on Amazon EC2の可能性

復旧確認

①サーバー起動時刻

Page 15: PostgreSQL on Amazon EC2の可能性

Webサーバーからの復旧確認

①DB接続復旧時刻

Page 16: PostgreSQL on Amazon EC2の可能性

復旧までの時間

状態 時刻

障害発生 14:15:10

監視スクリプトが障害検知、新サーバー起動開始 14:18:31

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

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

ダウンタイム:5分10秒

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

サーバー起動開始からの復旧時間:1分49秒

Page 17: PostgreSQL on Amazon EC2の可能性

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円

Page 18: PostgreSQL on Amazon EC2の可能性
Page 19: PostgreSQL on Amazon EC2の可能性

まとめ

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

Amazon EC2ではサーバーをスクリプトから操作し、直ちに用意する事が出来る

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

Page 20: PostgreSQL on Amazon EC2の可能性

Cloudworks

Amazon EC2を日本語で運用出来ます

http://www.cloudworks.jp

Page 21: PostgreSQL on Amazon EC2の可能性

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