Upload
soudai-sone
View
4.853
Download
0
Embed Size (px)
DESCRIPTION
第三回 中国地方DB勉強会の発表資料です。 http://dbstudychugoku.doorkeeper.jp/events/9698 DB勉強会についてはこちら。 http://dbstudychugoku.github.io/
Citation preview
PostgreSQLの冗長化の話
第三回 中国地方DB勉強会
What is it?
概念とか仕組みとかの難しい話はしません
What is it?
今日、皆さんにお伝えしたいことは2つ
What is it?
PostgreSQLの冗長化ってなによ?
What is it?
出来る!冗長化!!
What is it?
たったこれだけ
What is it?
今日の細かいことは既にWebにある
What is it?
今日はそんなDBのお話をします
あじぇんだ
1 自己紹介
2 冗長化とは
3 PostgreSQLの冗長化
4 RDS For PostgreSQL
5 まとめ
あじぇんだ
1 自己紹介
2 冗長化とは
3 PostgreSQLの冗長化
4 RDS For PostgreSQL
5 まとめ
自己紹介
名前:曽根 壮大(そね たけとも)
年齢:29歳(三人の子供がいます)
職場:まほろば工房
所属:日本PostgreSQLユーザ会
技術的にはWeb系でLLとかRDB大好きです
自己紹介
名前:曽根 壮大(そね たけとも)
年齢:29歳(三人の子供がいます)
職場:まほろば工房
所属:日本PostgreSQLユーザ会
PBXを作ったりVyattaの使ったりしてます
自己紹介
名前:曽根 壮大(そね たけとも)
年齢:29歳(三人の子供がいます)
職場:まほろば工房
所属:日本PostgreSQLユーザ会
中国支部長やってます
あじぇんだ
1 自己紹介
2 冗長化とは
3 PostgreSQLの冗長化
4 RDS For PostgreSQL
5 まとめ
PostgreSQLとは
PostgreSQLとは
PostgreSQLとは
オープンソースなリレーショナルデータベース
PostgreSQLとは
特 徴
PostgreSQLとは
高機能・高可用性
特 徴
PostgreSQLとは
高機能・高可用性
日本語ドキュメントが豊富
特 徴
PostgreSQLとは
高機能・高可用性
日本語ドキュメントが豊富
コミュニティが活発
特 徴
PostgreSQLとは
ver. リリース日 主な追加機能
8.4 2009-07-01再帰クエリ, ウィンドウ関数, 列単位のアクセス制御, SQLと関数の性能解析機能
9.0 2010-09-20レプリケーション, 一括権限変更, 匿名プロシージャ, 64bit Windows サポート, 移動平均, 列/条件トリガ, 一意性制約の遅延, 排他制約
9.1 2011-09-12同期レプリケーション, 外部テーブル, パッケージ管理, UNLOGGEDテーブル, 更新可能なWITH句, 近傍検索, SELinux権限制御
9.2 2012-09-10インデックスオンリースキャン, カスケードレプリケーション, JSON型, 範囲型
9.3 2013-09-09マテリアライズドビュー, 外部テーブルへの書き出し, イベントトリガ, データページ・チェックサム, LATERAL句
PostgreSQLとは
高機能・高可用性
日本語ドキュメントが豊富
コミュニティが活発
特 徴
冗長化とは
高可用性を実現すること
冗長化とは
一部の設備が故障しても
サービスを継続して提供できる
ようにシステムを構築すること。
冗長化とは
「どのくらいの稼働率を想定されていますか?」
冗長化とは
稼働率 年間停止時間
90% 36.5日
99% 3.65日
99.9% 8.7時間
99.99% 52分
99.999% 5分
99.9999% 32秒
冗長化とは
稼働率 年間停止時間 実現方法
90% 36.5日 バックアップ~リストアだけで十分。オンラインバックアップ取得を実施。
99% 3.65日 オンプレミスなら予備マシンが必要。大データならバックアップのリストア所要時間を把握しておく。
99.9% 8.7時間 保守停電のないクラウド~ハウジングが必要。平日日中のみ障害検知だとむずかしい。
99.99% 52分 バックアップのリストアがほぼ不可能。レプリケーション(データ同期)された待機サーバが必要。
99.999% 5分 HAクラスタソフトウェア等が必要。技術者のスキルが急に跳ね上がる。
99.9999% 32秒 無停止型サーバなどのハードが必要になってくる。コストが急に跳ね上がる。
冗長化とは
今日は99.999%を目指します
冗長化とは
今日は99.999%を目指します
※ただし、DB部分のみに限る
あじぇんだ
1 自己紹介
2 冗長化とは
3 PostgreSQLの冗長化
4 RDS For PostgreSQL
5 まとめ
PostgreSQLの冗長化
DBの冗長化のアプローチは複数あります
PostgreSQLの冗長化
冗長化の手法
PostgreSQLの冗長化
1 pgpool-II
冗長化の手法
PostgreSQLの冗長化
1 pgpool-II
2 DRBD+Pacemaker
冗長化の手法
PostgreSQLの冗長化
1 pgpool-II
2 DRBD+Pacemaker
3 Replication+Pacemaker
冗長化の手法
PostgreSQLの冗長化
1 pgpool-II
2 DRBD+Pacemaker
3 Replication+Pacemaker
冗長化の手法
pgpool-II
PostgreSQLとクライアントの間で
稼働するミドルウェア
http://www.pgpool.net/mediawiki/jp/
pgpool-IIの場合
DB1
DB2
アプリ 一つのDBに見える
pgpool-IIがDBのクラスタを抽象化する
更新は両方に行う
参照は色々出来る
pgpool-II
pgpool-IIの場合
DB1
DB2
アプリ 一つのDBに見える
pgpool-IIが検知してDB2のみを利用する
pgpool-II
pgpool-IIの場合
DB1
DB2
アプリ 一つのDBに見える
pgpool-IIが単一障害点
pgpool-II
pgpool-IIの場合
DB1
DB2
アプリ
pgpool-IIの冗長化もできる
仮想IP
pgpool-II
pgpool-II
pgpool-IIの場合
DB1
DB2
アプリ
障害時に切り替え
仮想IP
pgpool-II
pgpool-II
pgpool-IIの場合
メリット
pgpool-IIの場合
高可用性
メリット
pgpool-IIの場合
高可用性
pgpool-IIが多機能
メリット
pgpool-IIの場合
高可用性
pgpool-IIが多機能
ドキュメントが豊富
メリット
pgpool-IIの場合
デメリット
pgpool-IIの場合
構成が複雑になる
デメリット
pgpool-IIの場合
構成が複雑になる
ボトルネックが解りにくくなる
デメリット
pgpool-IIの場合
構成が複雑になる
ボトルネックが解りにくくなる
多機能⇔使い分けが大変
デメリット
PostgreSQLの冗長化
1 pgpool-II
2 DRBD+Pacemaker
3 Replication+Pacemaker
冗長化の手法
DRBD
Linuxプラットフォームの分散ストレージシステム
ディスク領域をミラーリングする
Pacemaker
"Linux-HA Japan“のソフトウェア
HAクラスタを実現するためのソフト
DRBDの場合
HDD1
DB1
DB2
アプリ
ディスクをミラーリングする
HDD2
仮想IPミラーリング
DRBDの場合
HDD1
DB1
DB2
アプリ
障害時はDB2にフェールオーバー
HDD2
仮想IP
DRBDの場合
メリット
DRBDの場合
構成がシンプル
メリット
DRBDの場合
構成がシンプル
サーバの台数が必要最小限
メリット
DRBDの場合
構成がシンプル
サーバの台数が必要最小限
DBの扱いはシングルの時と変わらない
メリット
DRBDの場合
デメリット
DRBDの場合
フェールオーバーに時間がかかる
デメリット
DRBDの場合
フェールオーバーに時間がかかる
負荷分散は出来ない
デメリット
DRBDの場合
フェールオーバーに時間がかかる
負荷分散は出来ない
1対1の組み合わせ以外だと難しくなる
デメリット
PostgreSQLの冗長化
1 pgpool-II
2 DRBD+Pacemaker
3 Replication+Pacemaker
冗長化の手法
Replication
PostgreSQL 9.0 以降で利用できる
本体組み込みのレプリケーション機能
Replicationの場合
DB1
DB2
アプリ
ApplicationはDB2も呼べる
仮想IP レプリケーション
Read-Onlyでアクセス可能
Replicationの場合
DB1
DB2
アプリ
フェールオーバーして更新可能になる
仮想IP
Replicationの場合
メリット
Replicationの場合
フェールオーバーが早い
メリット
Replicationの場合
フェールオーバーが早い
負荷分散が出来る
メリット
Replicationの場合
フェールオーバーが早い
負荷分散が出来る
3台以上でも対応しやすい
メリット
Replicationの場合
デメリット
Replicationの場合
初期導入の技術コストは高い
デメリット
Replicationの場合
初期導入の技術コストは高い
PostgreSQLの9系が必須
デメリット
Replicationの場合
初期導入の技術コストは高い
PostgreSQLの9系が必須
レプリケーションのオーバーヘッドがある
デメリット
PostgreSQLの冗長化
大事なこと
PostgreSQLの冗長化
それぞれに特徴がある
大事なこと
PostgreSQLの冗長化
それぞれに特徴がある
銀の弾丸はない
大事なこと
PostgreSQLの冗長化
それぞれに特徴がある
銀の弾丸はない
要件に合わせて選ぶ
大事なこと
続・大切なこと
サーバのNICとか
DB間のLANとか
サーバの設置箇所とか
単一障害点は他にもあり得る
続・大切なこと
大規模災害とか
不正なデータが混入された時とか
ヒューマンエラーとか
冗長化してもバックアップは必要
続・大切なこと
どの手法も日本語ドキュメントが豊富
ただし古い情報も多い
検証して詰まったらMLとかで聞くといい
情報の選択と検証が大事
PostgreSQLの冗長化
単一障害点は他にもありえる
冗長化しても定期的なバックアップは必要
情報の選択と検証が大事
続・大事なこと
PostgreSQLの冗長化
そしてデモ
あじぇんだ
1 自己紹介
2 冗長化ってとは
3 PostgreSQLの冗長化
4 RDS For PostgreSQL
5 まとめ
衝撃の事実稼働率99.999%?それAWSのRDSで出来るよ
衝撃の事実
_人人人人人人人人人人_> それRDSで出来るよ < ̄Y^Y^Y^Y^Y^Y^Y^Y^Y ̄
AWS&RDSとは
AWS&RDSとは
AWS&RDSとは
Amazon Web Servicesの略語です
AWS
AWS&RDSとは
つまりAmazonが提供するIaaSです
AWS
AWS&RDSとは
Relational Database Service
RDS
AWS&RDSとは
AWS上でRDBを提供するサービスです
RDS
RDS for PostgreSQLとは
RDSでPostgreSQLを構築します
RDS for PostgreSQLとは
百聞(100説明)は一見(1デモ)に如かず
RDS for PostgreSQLとは
デモなぅ
RDS for PostgreSQLとは
デモだん!
RDS for PostgreSQL
つまり、RDSを使うと冗長化出来るんです!
RDS for PostgreSQL
RDSを使うと・・・
RDS for PostgreSQL
• 冗長化構成を容易に実現できる(ただし有料
RDSを使うと・・・
RDS for PostgreSQL
• 冗長化構成を容易に実現できる(ただし有料
• バックアップも自動取得(5分おき
RDSを使うと・・・
RDS for PostgreSQL
• 冗長化構成を容易に実現できる(ただし有料
• バックアップも自動取得(5分おき
• 稼働率99.999%が実現出来る
RDSを使うと・・・
RDS for PostgreSQL
• 冗長化構成を容易に実現できる(ただし有料
• バックアップも自動取得(5分おき
• 稼働率99.999%が実現出来る
• 運用コストが削減できる
RDSを使うと・・・
RDS for PostgreSQL
注意点
RDS for PostgreSQL
• 一部の拡張が使えない(日本語の全文検索とか
注意点
RDS for PostgreSQL
• 一部の拡張が使えない(日本語の全文検索とか
• 参照の負荷分散は出来ない
注意点
RDS for PostgreSQL
• 一部の拡張が使えない(日本語の全文検索とか
• 参照の負荷分散は出来ない
• 99.999%以上を実現するには工夫が必要
注意点
RDS for PostgreSQL
• 一部の拡張が使えない(日本語の全文検索とか
• 参照の負荷分散は出来ない
• 99.999%以上を実現するには工夫が必要
• デフォルトのDBのロケールがCじゃない
注意点
あじぇんだ
1 自己紹介
2 冗長化ってとは
3 PostgreSQLの冗長化
4 RDS For PostgreSQL
5 まとめ
まとめ
DBの死=システムの死
まとめ
トイ・ストーリー2は死にかけた
https://www.youtube.com/watch?feature=player_embedded&v=EL_g0tyaIeE
データを守ることはとても大切
まとめ
出来る範囲で稼働率を決めて冗長化
RDS for PostgreSQLの使い方
このデモの詳細はこちらにまとめてあります
AWSのPostgreSQL(RDS)を
使えるようになるまでの手順
http://soudai1025.blogspot.jp/2014/01/awspostgresqlrds.html
まとめ
One more thing…
告知
MySQL User Forum 大阪
2014年4月23日(水)12:30~17:00
Oracle主催のセミナー
http://soudai1025.blogspot.jp/2014/01/awspostgresqlrds.html
告知
MySQL勉強会 in 大阪(第6回)
2014年4月24日(木)18:30~21:00
MySQLコミュニティのセミナー
http://atnd.org/events/49005
告知
OSS-DB最新トレンド!データベース活用の最適解
2014年5月27日(火) 14:00~16:50
アシスト主催のセミナー
詳細のリンク
Q&A
マサカリがあればどうぞ
ご静聴ありがとうございました。