レッスン 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 クラスターの実装
- クラスターの管理と操作_
- インシデント処理とトラブルシューティング
- パフォーマンスとセキュリティ