sql >> データベース >  >> RDS >> PostgreSQL

PostgreSQLをリモートで管理するためのヒント

    PostgreSQLデータベースクラスターをリモートで管理する場合は、さまざまなリソースを利用できます。適切なツールを使用してリモートで管理することは難しい作業ではありません。

    PostgreSQLにフルマネージドサービスを使用すると、データベースの管理に必要なもののほとんどを提供できる可観測性が提供されます。アラートシステム、メトリクス、時間のかかるシステム管理タスクの自動化、バックアップの管理などを提供します。

    オンプレミスで実行する場合、それは別の課題です。それがこのブログで取り上げる内容です。 PostgreSQLデータベースクラスターをリモートで管理するためのヒントを共有します。

    データベースの可観測性

    可観測性という用語は、一部の人にはなじみのないものかもしれません。可観測性は過去のものではなく、データベース(またはPaaSまたはSaaSアプリケーション)を管理する際の傾向です。可観測性は監視を扱いますが、ある程度はデータベースの状態とパフォーマンスの状態を判断する機能をカバーし、データベースノードの特定のステータスに基づいて判断する予防的および事後対応的な機能を備えています。

    この良い例は、ClusterControlにあります。 ClusterControlは、特定の構成のチェックに基づいて警告を検出すると、提供されたチャネルにアラートを送信します。これらは、システムまたはデータベース管理者がセットアップおよびカスタマイズできます。

    プライマリデータベースが劣化し、トランザクション(読み取りまたは書き込み)を処理できない場合、ClusterControlはそれに応じて反応し、フェイルオーバーのトリガーを開始して、新しいノードがトラフィックのオーバーフローの不当な原因を処理できるようにします。これが発生している間、ClusterControlは、アラームをトリガーしてアラートを送信することにより、エンジニアに何が起こったかを通知できます。ログも一元化されており、どの調査および診断タスクを1か所で実行できるため、迅速な結果を提供できます。

    これは、ClusterControlがObservabilityの完全なパッケージであることを意味するわけではありませんが、強力なツールの1つです。特にRancherとDatadogが混在するコンテナ環境で管理するために、よりアーキテクチャ化されたツールがあります。

    これはリモート管理にどのように役立ちますか?

    管理の基本原則の1つは、安心することです。問題が発生した場合、可観測性のために使用しているツールは、電子メール、SMSの送信、またはデータベースクラスターのステータスを警告するポケットベルアプリケーション(PagerDutyなど)を介して通知できる必要があります。

    または、次のようなアラートを受信できます...

    変更が発生したときに通知することが非常に重要です。その後、インフラストラクチャの状態を改善および分析し、ビジネスに影響を与える可能性のある影響を回避できます。

    データベースの自動化 時間のかかるタスクのほとんどを自動化することは非常に重要です。自動化により、人員を削減できます。 PostgreSQLデータベースクラスターを自動化するとはどういう意味ですか?

    フェイルオーバー

    フェイルオーバーは、前例のないインシデント(ハードウェアの障害、システムクラッシュ、メインプライマリノードの電源喪失、データセンター全体のネットワーク損失など)が発生したときに発生する自動アプローチです。 。フェイルオーバー容量は定期的にテストされ、業界標準の慣行に従う必要があります。内部障害のサービス検出は、それが真であると判断され、実際に発生しているポイントに到達する必要があります。

    ClusterControlでは、インシデントが発生すると、フェイルオーバーメカニズムがトリガーされ、最新のスタンバイノードがプロモートされてから、以下に示すようにアラームがトリガーされます...

    次に、以下に示すように、フェイルオーバーのバックグラウンドで機能します。 、進捗状況は進行中です。

    結果を以下のように終了したままにします...

    バックアップのスケジューリング

    バックアップは、災害復旧計画(DRP)の非常に重要な部分です。スプリットブレインまたはネットワークパーティションが発生した後、クラスターデータがドリフトする場合、バックアップはバックボーンとして機能します。 pg_rewindが有益な場合もありますが、データの大幅な損失やRPOとRTOの低下を回避するには、バックアップの自動化が常に非常に重要です。

    ClusterControlでは、特別なツールを使用せずにバックアップを作成または作成したり、自動バックアップをスクリプト化するためのユーティリティ作業を追加したりできます。すべてが揃っており、バックアップがいつ行われるか、およびバックアップの保持を含むバックアップのポリシーは組織次第です。実際、ここで最も重要なことは、バックアップが本番環境に干渉したり、バックアップが行われたときにノードをロックアップしたりしないことです。

    ここでは、バックアップの検証も非常に重要な役割を果たします。バックアップは有効なタイプのバックアップである必要があり、危機が発生したときに信頼できるコピーである必要がありますので、ご安心ください。バックアップを施設やデータセンターだけでなく、クラウドやAWSS3やGoogleCloudStorageなどの安全な場所に保存するメカニズムを追加します。

    ClusterControlを使用すると、以下に示すようにGUIに従うだけで、プラットフォーム内でこれを簡単かつ片手で行うことができます。

    これにより、選択したバックアップ方法を選択してクラウドに保存し、バックアップコピーを1つのソースだけでなくクラウドにも分散させることで、バックアップの保持と保証を強化できます。次に、バックアップの作成が完了したらバックアップを検証して、それが有効かどうかを検証するオプションがあります。その一環として、バックアップの暗号化を選択することもできます。これは、保存データを保存し、セキュリティ規制ガイドラインに準拠する場合に非常に重要な方法です。

    データベースのセキュリティ

    PostgreSQLデータベースクラスターをリモートで管理する場合、通常、セキュリティが最大の関心事です。データベースにリモートでアクセスできるのは誰ですか、それともローカルのみにする必要がありますか?セキュリティ制限を追加する方法と、ユーザーを管理し、セキュリティアナリストによるユーザーの許可を確認する方法。抜け穴がどこにあるのか、セキュリティを改善または強化するために必要なものは何かを分析できるように、アーキテクチャをより適切に設定し、アーキテクチャの明確な全体像を提供することが非常に重要です。

    ClusterControlは、PostgreSQLユーザーの概要と管理を提供し、pg_hba.confの視覚化とエディターを提供します。これは、ユーザーの認証方法を管理します。

    ユーザー管理の場合、ユーザーのリストの概要とデータベースクラスターでの特権を提供します。また、セキュリティと会社のガイドラインに準拠していない場合は、ここでユーザーの権限を変更または変更することもできます。リモートで管理するには、すべてのユーザーが特定の権限と役割を持っている必要があります。また、データベースの損傷を防ぐために、使用またはアクセスのみが可能であり、役割を制限する必要があります。

    PostgreSQLでは、失効がないことを確認して確認することも非常に重要です。ユーザーの認証で。許可できる場合とそのスコープがサーバーに接続できる場合。これは、以下のように視覚化するのが最善です。

    これにより、このような可能性のある抜け穴で見落とされている認証を簡単に確認して回避できます。認証のルールが弱いため、攻撃者がログインできる可能性があります。

    SSLと暗号化を使用すると、データベースにリモートでアクセスする際のセキュリティと堅牢性が向上します。ただし、組織の敷地外でデータベースにリモートアクセスしている場合は、VPNを介したログインなど、データをカプセル化するのが最適です。 Multi-DC PostgreSQL:VPNを介した別の地理的場所でのスタンバイノードの設定に関するブログを確認できます。

    一元化されたデータベースログ

    集約されたログの集中化は、データベースクラスターとその動作を理解するためのセキュリティ分析ツールを調査および実装するための非常に便利な方法を提供します。これは、リモートデータベースを管理するときに非常に役立ちます。一般的なアプローチのいくつかは、ELKスタックを使用したLogstash、またはログの強力なオープンソース管理であるGraylogを使用することです。

    データベースログを一元化することが重要なのはなぜですか?

    クラスター全体の問題を調査し、データベースクラスター、プロキシ、またはロードバランサーで何が発生しているかを確認する必要がある場合。一箇所だけ見るととても便利です。上記のような非常に豊富で強力なツールを使用すると、動的かつリアルタイムで検索できます。また、分析に非常に便利なメトリックとグラフも提供します。

    ClusterControlを使用すると、ログにアクセスするときに便利な機能が提供されます。ログは一元的に収集および保存されませんが、ログの概要と読み取り機能を提供します。以下を参照してください...

    ClusterControlが検出し、アラームに基づいて、または以下のようにジョブを実行したときに実行したジョブを確認することもできます。

    結論

    PostgreSQLデータベースクラスターをリモートで管理することは、特にセキュリティ、監視、およびフェイルオーバーに関しては困難な場合があります。適切なツール、業界標準、および実装、セキュリティ、および可観測性のベストプラクティスがあれば、データベースを管理するときに安心できます。場所に関係なく。


    1. 一言で言えば軽い

    2. テーブルユーザーのインデックスの解決が壊れています。それを修理してみてください

    3. MariaDB Xpand(以前のClustrixDB)の概要

    4. MariaDBと外部データ