Chuyển đến nội dung chính

Patroni と etcd による PostgreSQL の高可用性

Patroni と etcd を使用して PostgreSQL 高可用性クラスターをデプロイする方法を学びます。 AからZまでの実践的なコース: インストール、構成、自動フェイルオーバー、監視、運用操作。 29 レッスン + 詳細なラボ。

レッスン 1: PostgreSQL の高可用性の概要

  • HA を使用する理由
  • PostgreSQL の HA メソッド
  • 比較: Patroni、Repmgr、Pacemaker
  • _システムアーキテクチャの概要_

レッスン 2: PostgreSQL のストリーミング レプリケーション

  • ストリーミング レプリケーションのメカニズム
  • WAL (先行書き込み)ロギング)_
  • 同期レプリケーションと非同期レプリケーション
  • レプリケーション スロット
  • ラボ: 簡単なレプリケーション設定 (プライマリ-スタンバイ)

レッスン 3: Patroni とetcd_

  • パトローニとは何ですか?仕組み_
  • DCS (分散構成ストア) - etcd/Consul/ZooKeeper
  • コンセンサスアルゴリズム (Raft)
  • リーダーの選出とフェイルオーバーメカニズム_
  • _スプリットブレイン問題とその解決方法_

レッスン 4: インフラストラクチャの準備_

  • ハード要件と部品要件ソフトウェア_
  • ネットワークとファイアウォールの構成
  • 3 つの VM/サーバーのセットアップ (VirtualBox/VMware/Cloud)
  • SSH キーベースの認証
  • 時刻同期(NTP/chrony)

レッスン 5: PostgreSQL のインストール_

  • パッケージ リポジトリから PostgreSQL をインストール
  • ソースからインストール(オプション)
  • 基本的な postgresql.conf 構成
  • pg_hba.conf について_
  • ラボ: 3 ノードへの PostgreSQL のインストール

レッスン 6: etcd のインストールと構成クラスター_

  • etcd のダウンロードとインストール_
  • etcd クラスター 3 ノードの構成
  • systemd サービスの作成
  • etcd の健全性の確認クラスター_
  • ___HTMLTAG_91__etcdctl 基本コマンド_
  • ラボ: etcd クラスターの完全な編集

レッスン 7: Patroni のインストール

  • _Python のインストール依存関係_
  • pip 経由で Patroni をインストール_
  • Patroni.yml ファイル構造_
  • Patroni 用の systemd サービスを作成_
  • ラボ: Patroni を 3 にインストールするノード_

レッスン 8: Patroni の詳細構成

  • 毎回 patroni.yml ファイルを分析するセクション
  • ブートストラップ構成_
  • PostgreSQLパラメータ調整
  • 認証設定_
  • Tags と制約_

レッスン 9: PostgreSQL クラスターのブートストラップ_

  • Patroni タイムヘッドの開始
  • 自動ブートストラップprocess_
  • patronictl でクラスターのステータスを確認する_
  • 一般的な問題のトラブルシューティング_
  • ラボ: クラスターをパブリックにブートストラップ

レッスン 10: レプリケーション管理_

  • 同期レプリカと非同期レプリカ
  • synchronous_modeの構成
  • synchronous_node_count
  • _レプリケーションの監視ラグ_
  • ラボ: 同期構成レプリケーション_

レッスン 11: コールバック スクリプトとフック_

  • on_start、on_stop、on_role_changeコールバック
  • 通知用のカスタム スクリプト
  • 監視システムとの統合
  • ラボ: フェールオーバー時にアラートを送信するスクリプトを作成

レッスン 12: REST API とpatronictl_

  • Patroni REST API エンドポイント
  • patronictl コマンドの使用
  • API による自動化
  • ラボ: CLI およびAPI_

モジュール 4: フェイルオーバーとフェイルオーバーリカバリ_ (4 レッスン)

レッスン 13: 自動フェイルオーバー_

  • 検出メカニズムエラー
  • リーダーの選出プロセス_
  • フェイルオーバーのタイムライン
  • 自動フェイルオーバーのテスト_
  • ラボ: プライマリ ノードの障害をシミュレート

レッスン 14: スイッチオーバー計画

  • スイッチオーバーが必要な場合
  • 計画スイッチオーバーとフェイルオーバー
  • ダウンタイムゼロのメンテナンス
  • ラボ: 実装スイッチオーバー_

レッスン 15: 障害が発生したノードの回復_

  • 障害が発生したプライマリへの再参加
  • pg_rewindメカニズム_
  • バックアップからレプリカを再構築
  • ラボ: 回復シナリオ

レッスン 16: バックアップとポイントインタイムリカバリ_

  • pg_basebackup
  • WAL アーカイブ_
  • 継続的構成アーカイブ
  • PITR (ポイントインタイム)リカバリ)
  • ラボ: バックアップからデータベースを復元

レッスン 17: Patroni クラスターの監視

  • 追跡する指標
  • Prometheus 統合 + Grafana
  • postgres_exporter
  • アラートルール_
  • ラボ: 監視スタックのセットアップ

レッスン 18: パフォーマンスのチューニング

  • PostgreSQL の構成チューニング_
  • 接続プーリング (PgBouncer)
  • 負荷分散 (HAProxy/pgpool)
  • リードレプリカのスケーリング
  • ラボ: クラスターの最適化パフォーマンス_

レッスン 19: ロギングとトラブルシューティング

  • PostgreSQL ログ
  • Patroniログ
  • etcd ログ
  • 一般的な問題と修正方法_
  • デバッグ技術

レッスン 20: セキュリティの最善策プラクティス

  • SSL/TLS 構成
  • 認証方法
  • ネットワークセキュリティ
  • 暗号化残り
  • 監査ログ
  • ラボ: クラスターのセキュリティの強化

レッスン 21: マルチデータセンターセットアップ_

  • DC 間レプリケーション戦略
  • 非同期カスケードレプリケーション_
  • 災害復旧計画
  • 地理的負荷バランス

レッスン 22: Patroni と Kubernetes_

  • Patroniオペレーター
  • StatefulSets_
  • 永続ボリューム_
  • Helm チャート
  • ラボ: デプロイ先K8s_

レッスン 23: Patroni 構成管理

  • 動的構成変更
  • DCS ベース構成_
  • patronictl edit-config_
  • 構成の検証
  • ラボ: ダウンタイムなしで構成を更新_

レッスン 24: アップグレード戦略_

  • PostgreSQL メジャー バージョン アップグレード
  • Patroni バージョン アップグレード
  • ゼロダウンタイム アップグレード手法
  • ロールバック手順_
  • ラボ: クラスターを PG 14 から 15 にアップグレード

レッスン 25: 実際のケーススタディ_

  • 本番アーキテクチャ例_
  • スケーリング戦略_
  • コストの最適化
  • 学んだ教訓

レッスン 26: Ansible による自動化_

  • Ansible プレイブック導入_
  • _構成管理_
  • 自動テスト
  • CI/CD統合
  • ラボ: 自動化導入

レッスン 27: 災害復旧訓練_

  • DR 計画_
  • テスト手順_
  • インシデント対応
  • 事後分析
  • ラボ:完全な DR シミュレーション

レッスン 28: アーキテクチャ設計HA

  • 要件の収集
  • アーキテクチャ設計ドキュメント
  • キャパシティ計画
  • コスト見積もり_

レッスン 29: 実稼働対応クラスターのデプロイ

  • デプロイメントを完了するスクラッチ_
  • ドキュメント_
  • ランブックの作成
  • 知識の伝達
  • 最終評価

前提条件:_

  • Linux バージョン
  • PostgreSQL基本
  • ネットワークの基本
  • シェルスクリプト_

セクション終了後の目標コース:

  • 本番環境に対応した PostgreSQL HA クラスターの実装
  • クラスターの管理と操作_
  • インシデント処理とトラブルシューティング
  • パフォーマンスとセキュリティ

パート 1: 概要と背景

パート 2: インストールと構成

パート 3: クラスター管理

パート 4: バックアップ、モニタリング、チューニング

パート 5: セキュリティと機能強化

パート 6: 制作とケーススタディ