PostgreSQLの冗長化について

16,046 views

Published on

第三回 中国地方DB勉強会の発表資料です。

http://dbstudychugoku.doorkeeper.jp/events/9698

DB勉強会についてはこちら。

http://dbstudychugoku.github.io/

Published in: Engineering

PostgreSQLの冗長化について

  1. 1. PostgreSQLの冗長化の話 第三回 中国地方DB勉強会
  2. 2. What is it? 概念とか仕組みとかの難しい話はしません
  3. 3. What is it? 今日、皆さんにお伝えしたいことは2つ
  4. 4. What is it? PostgreSQLの冗長化ってなによ?
  5. 5. What is it? 出来る!冗長化!!
  6. 6. What is it? たったこれだけ
  7. 7. What is it? 今日の細かいことは既にWebにある
  8. 8. What is it? 今日はそんなDBのお話をします
  9. 9. あじぇんだ 1 自己紹介 2 冗長化とは 3 PostgreSQLの冗長化 4 RDS For PostgreSQL 5 まとめ
  10. 10. あじぇんだ 1 自己紹介 2 冗長化とは 3 PostgreSQLの冗長化 4 RDS For PostgreSQL 5 まとめ
  11. 11. 自己紹介 名前:曽根 壮大(そね たけとも) 年齢:29歳(三人の子供がいます) 職場:まほろば工房 所属:日本PostgreSQLユーザ会 技術的にはWeb系でLLとかRDB大好きです
  12. 12. 自己紹介 名前:曽根 壮大(そね たけとも) 年齢:29歳(三人の子供がいます) 職場:まほろば工房 所属:日本PostgreSQLユーザ会 PBXを作ったりVyattaの使ったりしてます
  13. 13. 自己紹介 名前:曽根 壮大(そね たけとも) 年齢:29歳(三人の子供がいます) 職場:まほろば工房 所属:日本PostgreSQLユーザ会 中国支部長やってます
  14. 14. あじぇんだ 1 自己紹介 2 冗長化とは 3 PostgreSQLの冗長化 4 RDS For PostgreSQL 5 まとめ
  15. 15. PostgreSQLとは PostgreSQLとは
  16. 16. PostgreSQLとは オープンソースなリレーショナルデータベース
  17. 17. PostgreSQLとは 特 徴
  18. 18. PostgreSQLとは 高機能・高可用性 特 徴
  19. 19. PostgreSQLとは 高機能・高可用性 日本語ドキュメントが豊富 特 徴
  20. 20. PostgreSQLとは 高機能・高可用性 日本語ドキュメントが豊富 コミュニティが活発 特 徴
  21. 21. 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句
  22. 22. PostgreSQLとは 高機能・高可用性 日本語ドキュメントが豊富 コミュニティが活発 特 徴
  23. 23. 冗長化とは 高可用性を実現すること
  24. 24. 冗長化とは 一部の設備が故障しても サービスを継続して提供できる ようにシステムを構築すること。
  25. 25. 冗長化とは 「どのくらいの稼働率を想定されていますか?」
  26. 26. 冗長化とは 稼働率 年間停止時間 90% 36.5日 99% 3.65日 99.9% 8.7時間 99.99% 52分 99.999% 5分 99.9999% 32秒
  27. 27. 冗長化とは 稼働率 年間停止時間 実現方法 90% 36.5日 バックアップ~リストアだけで十分。 オンラインバックアップ取得を実施。 99% 3.65日 オンプレミスなら予備マシンが必要。 大データならバックアップのリストア所要時間を把握しておく。 99.9% 8.7時間 保守停電のないクラウド~ハウジングが必要。 平日日中のみ障害検知だとむずかしい。 99.99% 52分 バックアップのリストアがほぼ不可能。 レプリケーション(データ同期)された待機サーバが必要。 99.999% 5分 HAクラスタソフトウェア等が必要。 技術者のスキルが急に跳ね上がる。 99.9999% 32秒 無停止型サーバなどのハードが必要になってくる。 コストが急に跳ね上がる。
  28. 28. 冗長化とは 今日は99.999%を目指します
  29. 29. 冗長化とは 今日は99.999%を目指します ※ただし、DB部分のみに限る
  30. 30. あじぇんだ 1 自己紹介 2 冗長化とは 3 PostgreSQLの冗長化 4 RDS For PostgreSQL 5 まとめ
  31. 31. PostgreSQLの冗長化 DBの冗長化のアプローチは複数あります
  32. 32. PostgreSQLの冗長化 冗長化の手法
  33. 33. PostgreSQLの冗長化 1 pgpool-II 冗長化の手法
  34. 34. PostgreSQLの冗長化 1 pgpool-II 2 DRBD+Pacemaker 冗長化の手法
  35. 35. PostgreSQLの冗長化 1 pgpool-II 2 DRBD+Pacemaker 3 Replication+Pacemaker 冗長化の手法
  36. 36. PostgreSQLの冗長化 1 pgpool-II 2 DRBD+Pacemaker 3 Replication+Pacemaker 冗長化の手法
  37. 37. pgpool-II PostgreSQLとクライアントの間で 稼働するミドルウェア http://www.pgpool.net/mediawiki/jp/
  38. 38. pgpool-IIの場合 DB1 DB2 アプリ 一つのDBに見える pgpool-IIがDBのクラスタを抽象化する 更新は両方に行う 参照は色々出来る pgpool-II
  39. 39. pgpool-IIの場合 DB1 DB2 アプリ 一つのDBに見える pgpool-IIが検知してDB2のみを利用する pgpool-II
  40. 40. pgpool-IIの場合 DB1 DB2 アプリ 一つのDBに見える pgpool-IIが単一障害点 pgpool-II
  41. 41. pgpool-IIの場合 DB1 DB2 アプリ pgpool-IIの冗長化もできる 仮想IP pgpool-II pgpool-II
  42. 42. pgpool-IIの場合 DB1 DB2 アプリ 障害時に切り替え 仮想IP pgpool-II pgpool-II
  43. 43. pgpool-IIの場合 メリット
  44. 44. pgpool-IIの場合 高可用性 メリット
  45. 45. pgpool-IIの場合 高可用性 pgpool-IIが多機能 メリット
  46. 46. pgpool-IIの場合 高可用性 pgpool-IIが多機能 ドキュメントが豊富 メリット
  47. 47. pgpool-IIの場合 デメリット
  48. 48. pgpool-IIの場合 構成が複雑になる デメリット
  49. 49. pgpool-IIの場合 構成が複雑になる ボトルネックが解りにくくなる デメリット
  50. 50. pgpool-IIの場合 構成が複雑になる ボトルネックが解りにくくなる 多機能⇔使い分けが大変 デメリット
  51. 51. PostgreSQLの冗長化 1 pgpool-II 2 DRBD+Pacemaker 3 Replication+Pacemaker 冗長化の手法
  52. 52. DRBD Linuxプラットフォームの分散ストレージシステム ディスク領域をミラーリングする
  53. 53. Pacemaker "Linux-HA Japan“のソフトウェア HAクラスタを実現するためのソフト
  54. 54. DRBDの場合 HDD1 DB1 DB2 アプリ ディスクをミラーリングする HDD2 仮想IP ミラーリング
  55. 55. DRBDの場合 HDD1 DB1 DB2 アプリ 障害時はDB2にフェールオーバー HDD2 仮想IP
  56. 56. DRBDの場合 メリット
  57. 57. DRBDの場合 構成がシンプル メリット
  58. 58. DRBDの場合 構成がシンプル サーバの台数が必要最小限 メリット
  59. 59. DRBDの場合 構成がシンプル サーバの台数が必要最小限 DBの扱いはシングルの時と変わらない メリット
  60. 60. DRBDの場合 デメリット
  61. 61. DRBDの場合 フェールオーバーに時間がかかる デメリット
  62. 62. DRBDの場合 フェールオーバーに時間がかかる 負荷分散は出来ない デメリット
  63. 63. DRBDの場合 フェールオーバーに時間がかかる 負荷分散は出来ない 1対1の組み合わせ以外だと難しくなる デメリット
  64. 64. PostgreSQLの冗長化 1 pgpool-II 2 DRBD+Pacemaker 3 Replication+Pacemaker 冗長化の手法
  65. 65. Replication PostgreSQL 9.0 以降で利用できる 本体組み込みのレプリケーション機能
  66. 66. Replicationの場合 DB1 DB2 アプリ ApplicationはDB2も呼べる 仮想IP レプリケーション Read-Onlyでアクセス可能
  67. 67. Replicationの場合 DB1 DB2 アプリ フェールオーバーして更新可能になる 仮想IP
  68. 68. Replicationの場合 メリット
  69. 69. Replicationの場合 フェールオーバーが早い メリット
  70. 70. Replicationの場合 フェールオーバーが早い 負荷分散が出来る メリット
  71. 71. Replicationの場合 フェールオーバーが早い 負荷分散が出来る 3台以上でも対応しやすい メリット
  72. 72. Replicationの場合 デメリット
  73. 73. Replicationの場合 初期導入の技術コストは高い デメリット
  74. 74. Replicationの場合 初期導入の技術コストは高い PostgreSQLの9系が必須 デメリット
  75. 75. Replicationの場合 初期導入の技術コストは高い PostgreSQLの9系が必須 レプリケーションのオーバーヘッドがある デメリット
  76. 76. PostgreSQLの冗長化 大事なこと
  77. 77. PostgreSQLの冗長化 それぞれに特徴がある 大事なこと
  78. 78. PostgreSQLの冗長化 それぞれに特徴がある 銀の弾丸はない 大事なこと
  79. 79. PostgreSQLの冗長化 それぞれに特徴がある 銀の弾丸はない 要件に合わせて選ぶ 大事なこと
  80. 80. 続・大切なこと サーバのNICとか DB間のLANとか サーバの設置箇所とか 単一障害点は他にもあり得る
  81. 81. 続・大切なこと 大規模災害とか 不正なデータが混入された時とか ヒューマンエラーとか 冗長化してもバックアップは必要
  82. 82. 続・大切なこと どの手法も日本語ドキュメントが豊富 ただし古い情報も多い 検証して詰まったらMLとかで聞くといい 情報の選択と検証が大事
  83. 83. PostgreSQLの冗長化 単一障害点は他にもありえる 冗長化しても定期的なバックアップは必要 情報の選択と検証が大事 続・大事なこと
  84. 84. PostgreSQLの冗長化 そしてデモ
  85. 85. あじぇんだ 1 自己紹介 2 冗長化ってとは 3 PostgreSQLの冗長化 4 RDS For PostgreSQL 5 まとめ
  86. 86. 衝撃の事実 稼働率99.999%? それAWSのRDSで 出来るよ
  87. 87. 衝撃の事実 _人人人人人人人人人人_ > それRDSで出来るよ <  ̄Y^Y^Y^Y^Y^Y^Y^Y^Y ̄
  88. 88. AWS&RDSとは AWS&RDSとは
  89. 89. AWS&RDSとは Amazon Web Servicesの略語です AWS
  90. 90. AWS&RDSとは つまりAmazonが提供するIaaSです AWS
  91. 91. AWS&RDSとは Relational Database Service RDS
  92. 92. AWS&RDSとは AWS上でRDBを提供するサービスです RDS
  93. 93. RDS for PostgreSQLとは RDSでPostgreSQLを構築します
  94. 94. RDS for PostgreSQLとは 百聞(100説明)は一見(1デモ)に如かず
  95. 95. RDS for PostgreSQLとは デモなぅ
  96. 96. RDS for PostgreSQLとは デモだん!
  97. 97. RDS for PostgreSQL つまり、RDSを使うと冗長化出来るんです!
  98. 98. RDS for PostgreSQL RDSを使うと・・・
  99. 99. RDS for PostgreSQL • 冗長化構成を容易に実現できる(ただし有料 RDSを使うと・・・
  100. 100. RDS for PostgreSQL • 冗長化構成を容易に実現できる(ただし有料 • バックアップも自動取得(5分おき RDSを使うと・・・
  101. 101. RDS for PostgreSQL • 冗長化構成を容易に実現できる(ただし有料 • バックアップも自動取得(5分おき • 稼働率99.999%が実現出来る RDSを使うと・・・
  102. 102. RDS for PostgreSQL • 冗長化構成を容易に実現できる(ただし有料 • バックアップも自動取得(5分おき • 稼働率99.999%が実現出来る • 運用コストが削減できる RDSを使うと・・・
  103. 103. RDS for PostgreSQL 注意点
  104. 104. RDS for PostgreSQL • 一部の拡張が使えない(日本語の全文検索とか 注意点
  105. 105. RDS for PostgreSQL • 一部の拡張が使えない(日本語の全文検索とか • 参照の負荷分散は出来ない 注意点
  106. 106. RDS for PostgreSQL • 一部の拡張が使えない(日本語の全文検索とか • 参照の負荷分散は出来ない • 99.999%以上を実現するには工夫が必要 注意点
  107. 107. RDS for PostgreSQL • 一部の拡張が使えない(日本語の全文検索とか • 参照の負荷分散は出来ない • 99.999%以上を実現するには工夫が必要 • デフォルトのDBのロケールがCじゃない 注意点
  108. 108. あじぇんだ 1 自己紹介 2 冗長化ってとは 3 PostgreSQLの冗長化 4 RDS For PostgreSQL 5 まとめ
  109. 109. まとめ DBの死=システムの死
  110. 110. まとめ トイ・ストーリー2は死にかけた https://www.youtube.com/watch?feature=player_embedded&v=EL_g0tyaIeE データを守ることはとても大切
  111. 111. まとめ 出来る範囲で稼働率を決めて冗長化
  112. 112. RDS for PostgreSQLの使い方 このデモの詳細はこちらにまとめてあります AWSのPostgreSQL(RDS)を 使えるようになるまでの手順 http://soudai1025.blogspot.jp/2014/01/awspostgresqlrds.html
  113. 113. まとめ One more thing…
  114. 114. 告知 MySQL User Forum 大阪 2014年4月23日(水)12:30~17:00 Oracle主催のセミナー http://soudai1025.blogspot.jp/2014/01/awspostgresqlrds.html
  115. 115. 告知 MySQL勉強会 in 大阪(第6回) 2014年4月24日(木)18:30~21:00 MySQLコミュニティのセミナー http://atnd.org/events/49005
  116. 116. 告知 OSS-DB最新トレンド!データベース活用の最適解 2014年5月27日(火) 14:00~16:50 アシスト主催のセミナー 詳細のリンク
  117. 117. Q&A マサカリがあればどうぞ
  118. 118. ご静聴ありがとうございました。

×