PostgreSQLをクラウドで利用しよう

オープンソースミドルウェア最新技術セミナー
2014/03/25 14:10 - 14:40
SRA OSS, Inc. 日本支社
技術開発部 正野 裕大
Copyright © 2014 SRA OSS, Inc. Japan All rights reserved.

1

アジェンダPostgreSQLはクラウド上でも十分使えます1. PostgreSQLの概要
・PostgreSQLとは・PostgreSQLの導入事例
・PostgreSQLで利用される構成

2. PostgreSQLをクラウドで使う・クラウドサービスの分類
・PostgreSQL ＋ Amazon Web Services による構成例

Copyright © 2014 SRA OSS, Inc. Japan All rights reserved.

2

PostgreSQLをクラウドで利用しよう

PostgreSQLの概要

Copyright © 2014 SRA OSS, Inc. Japan All rights reserved.

3

PostgreSQL の概要
PostgreSQLとは | 歴史
PostgreSQL 6.0（1996年）以来15年以上の歴史を持つ代表的なオープソースRDBS[「改めてOSS、その利用の可能性とは」]
Copyright © 2014 SRA OSS, Inc. Japan All rights reserved.
http://www.sraoss.co.jp/event_seminar/2013/20131127_oss.pdf

4PostgreSQL の概要
PostgreSQLとは | ライセンス
修正BSDライセンスに類似したライセンスで配布
The PostgreSQL Licence[PostgreSQL: License]
http://www.postgresql.org/about/licence/

使用・複製・改変・配布の自由
・ 著作権表示・ ライセンス条文を含めていればOK・ 免責条項
柔軟なライセンスで商用利用もしやすいEnterpriseDB「Postgres Plus Advanced Server」

SRA OSS「PowerGresファミリー」

Copyright © 2014 SRA OSS, Inc. Japan All rights reserved.

5PostgreSQL の概要
PostgreSQLとは | 開発コミュニティ
コミュニティベースの開発体制
特定の企業が独占的に管理をしていない[「オープンソースデータベース PostgreSQL最新動向のご紹介」]
Copyright© 2014 SRA OSS, Inc. Japan All rights reserved.
http://www.sraoss.co.jp/event_seminar/2013/20130627_pgsql93_seminar_sraoss.pdf

6PostgreSQL の概要
PostgreSQLの導入事例 | JTB旅カード(http://travelpoint.jtb.co.jp/tp/)[「PostgreSQL 多機能ミドルウェア pgpool-II
最新活用方法」]
Copyright© 2014 SRA OSS, Inc. Japan All rights reserved.
http://www.sraoss.co.jp/event_seminar/2013/20130212_pgpool_seminar_sraoss.pdf

7PostgreSQL の概要
PostgreSQLの導入事例 | Zalando (http://www.zalando.de/)ヨーロッパ最大のオンライン服飾販売サイト
PostgreSQLの国際カンファレンス (2013) で事例発表
800台のAPサーバ(Tomcat)
50種類のデータベース
90台のマスターDBサーバ
5TBのDBサイズ
200人の開発者[PGConf EU/DE 2013 recap and slides |Zalando Tech Blog]
http://tech.zalando.com/posts/pgconf-2013-r
ecap-and-slides.html
Copyright © 2014 SRA OSS, Inc. Japan All rights reserved.

8

PostgreSQL の概要
PostgreSQLの典型的な構成例 – HA構成High Availability（高可用性）

可能な限り限りサービスのダウンタイムを短くしたい

サービス
開始

サーバを停止してバックアップ

障害発生

障害検知
対処開始

障害復旧
完了

複数のサーバを1つのシステムにまとめて信頼性を高める
サービス提供1つのHAクラスタ

サービス監視稼動系

データ同期

待機系

Copyright © 2014 SRA OSS, Inc. Japan All rights reserved.

9

PostgreSQL の概要
PostgreSQLの典型的な構成例 – HA構成High Availability（高可用性）

可能な限り限りサービスのダウンタイムを短くしたい

サービス
開始

サーバを停止してバックアップ

障害発生

障害検知
対処開始

障害復旧
完了

複数のサーバを1つのシステムにまとめて信頼性を高める
サービス提供サービス監視
稼動系

データ同期

待機系
↓稼動系

Copyright © 2014 SRA OSS, Inc. Japan All rights reserved.

障害を検知してサービスを切り替え10

PostgreSQL の概要
PostgreSQLの典型的な構成例 – HA構成High Availability（高可用性）

可能な限り限りサービスのダウンタイムを短くしたい

サービス
開始

サーバを停止してバックアップ

障害発生

障害検知
対処開始

障害復旧
完了

複数のサーバを1つのシステムにまとめて信頼性を高める
代表的なHAクラスタリングソフトウェア
サービス提供・ Pacemaker
http://linux-ha.sourceforge.jp/wp/

待機系
・ pgpool-II↓稼動系
稼動系
データ同期
http://www.pgpool.net/mediawiki/jp/index.php/
サービス監視Copyright © 2014 SRA OSS, Inc. Japan All rights reserved.

OSS です11

PostgreSQL の概要
PostgreSQLのHA構成例 | Pacemaker
サービスを構成するアプリケーション・ネットワーク・ディスクを監視・制御する

正常稼働時

DBクライアント
アクセス
稼動系

死活監視

Pacemaker

Pacemaker

待機系

データ同期
PostgreSQLのStreaming Replication
Copyright © 2014 SRA OSS, Inc. Japan All rights reserved.

12

PostgreSQL の概要
PostgreSQLのHA構成例 | Pacemaker
サービスを構成するアプリケーション・ネットワーク・ディスクを監視・制御する

障害発生時
フェイルオーバ

死活監視
稼動系

PacemakerDBクライアント
アクセス
Pacemaker

待機系
↓
稼動系

データ同期
PostgreSQLのStreaming Replication
Copyright © 2014 SRA OSS, Inc. Japan All rights reserved.

13

PostgreSQL の概要
PostgreSQLのHA構成例 | pgpool-II
コネクションプーリング・参照負荷分散・自動フェイルオーバ etc.
正常稼働時
DBクライアント
アクセス

稼動系

pgpool-II

情報共有
死活監視

pgpool-II

待機系

死活監視 / DBアクセス / 負荷分散

データ同期
PostgreSQLのStreaming Replication
Copyright © 2014 SRA OSS, Inc. Japan All rights reserved.

14

PostgreSQL の概要
PostgreSQLのHA構成例 | pgpool-II
コネクションプーリング・参照負荷分散・自動フェイルオーバ etc.
障害発生時

フェイルオーバ
稼動系

pgpool-II

情報共有
死活監視

DBクライアントアクセス

pgpool-II

待機系↓
稼動系

死活監視 / DBアクセス / 負荷分散

データ同期
PostgreSQLのStreaming Replication
Copyright © 2014 SRA OSS, Inc. Japan All rights reserved.

15

PostgreSQL の概要
PostgreSQLのHA構成例 | pgpool-II
コネクションプーリング・参照負荷分散・自動フェイルオーバ etc.
障害発生時
DBクライアント
アクセス

待機系

pgpool-II

情報共有
死活監視

pgpool-II

稼働系

死活監視 / DBアクセス / 負荷分散

フェイルオーバ
データ同期
PostgreSQLのStreaming Replication
Copyright © 2014 SRA OSS, Inc. Japan All rights reserved.

16

PostgreSQLをクラウドで利用しよう

PostgreSQLをクラウドで使う

Copyright © 2014 SRA OSS, Inc. Japan All rights reserved.

17

PostgreSQLをクラウドで使うクラウドコンピューティングサービスの形態
ネットワーク越しに仮想化されたリソースを提供提供するレイヤ別に3つに分類できる＠
メールサーバ

メールサービス

仮想サーバ
DBサーバ
物理サーバ

仮想サーバ

www
Webサーバブログサービス

IaaS
Infrastructure as aServicePaaS
Platform as a Service

SaaS
Software as a Service

Copyright © 2014 SRA OSS, Inc. Japan All rights reserved.

18

PostgreSQLをクラウドで使うクラウドコンピューティングサービスの形態
ネットワーク越しに仮想化されたリソースを提供提供するレイヤ別に3つに分類できる＠
メールサーバ

メールサービス

仮想サーバ
DBサーバ
物理サーバ

仮想サーバ

www
Webサーバブログサービス

IaaS
Infrastructure as aService

PaaS
Platform as a Service

SaaS
Software as a Service

Copyright © 2014 SRA OSS, Inc. Japan All rights reserved.

19

PostgreSQLをクラウドで使う
AWS + PostgreSQL = Amazon RDS
Amazonが提供するDBサーバのマネージドサービス
位置付けとしては DaaS (Database as a Servise)
手軽にHA構成が組める
PostgreSQL

AP
インスタンスAvailability Zone #2
PostgreSQL

AP
インスタンスAvailability Zone #1
Copyright © 2014 SRA OSS, Inc. Japan All rights reserved.

20

PostgreSQLをクラウドで使う
AWS + PostgreSQL = Amazon RDS
Amazonが提供するDBサーバのマネージドサービス
先ほどのPacemaker版構成例と同様の形
位置付けとしては DaaS (Database as a Servise)
手軽にHA構成が組める

PostgreSQL

AP
インスタンスAvailability Zone #2
PostgreSQL

AP
インスタンスAvailability Zone #1
Copyright © 2014 SRA OSS, Inc. Japan All rights reserved.

21

PostgreSQLをクラウドで使う
AWS + PostgreSQL = Amazon RDS
VirtualAmazonが提供するDBサーバのマネージドサービス
Private Cloud
AWS上にユーザ毎に仮想的なプライベートネットワークが提供される位置付けとしては DaaS (Database as a Servise)

手軽にHA構成が組める

Copyright © 2014 SRA OSS, Inc. Japan All rights reserved.

22

PostgreSQLをクラウドで使う
AWS + PostgreSQL = Amazon RDS
Availability
Zone
Amazonが提供するDBサーバのマネージドサービス
異なるAvailabilityZone ≒異なるデータセンタ
位置付けとしてはDaaS(Database as a Servise)
仮想環境を動かしている物理サーバが異なっている
手軽にHA構成が組める
高い対障害性を実現

Availability Zone #2

Availability Zone #1
Copyright © 2014 SRA OSS, Inc. Japan All rights reserved.

23

PostgreSQLをクラウドで使う
AWS + PostgreSQL = Amazon RDSRDSインスタンス
Amazonが提供するDBサーバのマネージドサービス
プロビジョンされたDBサーバ
位置付けとしては DaaS (Database as a Servise)
作成したらすぐに使える
手軽にHA構成が組める
AWS側のアーキテクチャで自動フェイルオーバー・データ同期
PostgreSQL

待機系
Slave
Availability Zone #2

データ同期
PostgreSQL

Availability Zone #1
Copyright © 2014 SRA OSS, Inc. Japan All rights reserved.

稼働系
Master24

PostgreSQLをクラウドで使う
AWS + PostgreSQL = Amazon RDS
Amazonが提供するDBサーバのマネージドサービス
位置付けとしては DaaS (Database as a Servise)
手軽にHA構成が組める
PostgreSQL

AP
インスタンスAvailability Zone #2
PostgreSQL

AP
インスタンスAvailability Zone #1
Copyright © 2014 SRA OSS, Inc. Japan All rights reserved.

25PostgreSQLをクラウドで使う
AWS + PostgreSQL + pgpool-II
仮想サーバに自前のPostgreSQLとpgpool-IIをインストールしてHA構成を構築
AWSではややトリッキーな構成になる
PostgreSQL
PostgreSQL

NAT
インスタンスAP
インスタンス

pgpool-II

M S

Availability Zone #2

NATインスタンス

AP
インスタンス

pgpool-II

Availability Zone #1
Copyright © 2014 SRA OSS, Inc. Japan All rights reserved.

PostgreSQL

M26

PostgreSQLをクラウドで使う
AWS + PostgreSQL + pgpool-II
仮想サーバに自前のPostgreSQLとpgpool-IIをインストールして先ほどのpgpool-II版構成例と同様の形
HA構成を構築
AWSではややトリッキーな構成になる

PostgreSQL
PostgreSQL

NAT
インスタンスAP
インスタンス

pgpool-II

M S

Availability Zone #2

NAT
インスタンスAP
インスタンス

pgpool-II

Availability Zone #1
Copyright © 2014 SRA OSS, Inc. Japan All rights reserved.

PostgreSQL

M
27

PostgreSQLをクラウドで使う
AWS + PostgreSQL + pgpool-II
仮想サーバに自前のPostgreSQLとpgpool-IIをインストールしてHA構成を構築
AWSではややトリッキーな構成になる

NAT
インスタンス?

AP
インスタンス

pgpool-II

PostgreSQL
PostgreSQLM S

Availability Zone #2

NAT
インスタンスAP
インスタンス

pgpool-II

Availability Zone #1

Copyright © 2014 SRA OSS, Inc. Japan All rights reserved.

PostgreSQL

M
28

PostgreSQLをクラウドで使う
AWS + PostgreSQL + pgpool-II | NAT インスタンスの必要性
HA構成ではサービスで使う共通のIPアドレス（仮想IP）をフェイル
オーバ時に稼動系となるサーバに割り当てる

PostgreSQL
PostgreSQL

NATインスタンス

AP
インスタンス

pgpool-II

M S

Availability Zone #2

NATインスタンス

AP
インスタンス

pgpool-II

Availability Zone #1
Copyright © 2014 SRA OSS, Inc. Japan All rights reserved.

PostgreSQL

M
29

PostgreSQLをクラウドで使う
AWS + PostgreSQL + pgpool-II | NAT インスタンスの必要性
HA構成ではサービスで使う共通のIPアドレス（仮想IP）をフェイルオーバ時に稼動系となるサーバに割り当てる
しかしAWSでは仮想IPの割り当てができない
PostgreSQL
PostgreSQL

AP
インスタンス

pgpool-II

M S

Availability Zone #2

AP
インスタンス

pgpool-IIAvailability Zone #1
Copyright © 2014 SRA OSS, Inc. Japan All rights reserved.

PostgreSQL

M
30

PostgreSQLをクラウドで使う
AWS + PostgreSQL + pgpool-II | NAT インスタンスの必要性
そこでAWSの機能を使ってフェイルオーバ時にネットワーク経路を変更してしまう
NATインスタンスはHAクラスタソフトウェアAWSの機能を使う際に安全に外部ネットワークにアクセするために使われる
PostgreSQL
PostgreSQL

NAT
インスタンスAP
pgpool-II
インスタンス
経路変更

M

Availability Zone #2

NAT
インスタンスAP
インスタンス

pgpool-II

Availability Zone #1
Copyright © 2014 SRA OSS, Inc. Japan All rights reserved.

PostgreSQL

M
31

まとめ
PostgreSQLはクラウド上でも十分使えます1. PostgreSQLの概要
15年以上の長い歴史
大規模運用の実例あり
PostgreSQLで利用される構成

2. PostgreSQLをクラウドで使う
Amazon Web Service でHA構成が組める・ AWSのマネージドサービス
・ 仮想サーバ上で自分で構築

Copyright © 2014 SRA OSS, Inc. Japan All rights reserved.

32

オープンソースとともにURL： http://www.sraoss.co.jp/
E-mail： sales@sraoss.co.jp
Tel： 03-5979-2701
Copyright © 2014 SRA OSS, Inc. Japan All rights reserved.

33