Azure Database for PostgreSQL のアーキテクチャのベスト プラクティス
この記事では、Azure Database for PostgreSQL のアーキテクチャのベスト プラクティスについて説明します。
このガイダンスは、アーキテクチャの卓越性の 5 つの柱に基づいています。
- 確実
- 安全
- コストの最適化
- オペレーショナル エクセレンス
- パフォーマンス効率
前提 条件
Well-Architected Framework の柱を理解することは、高品質で安定した効率的なクラウド アーキテクチャを生み出すのに役立ちます。 Azure Well-Architected Framework Review 評価を使用してワークロードを見直すことをお勧めします。
Azure Database for PostgreSQL は、PostgreSQL オープンソース リレーショナル データベースに基づく Azure のリレーショナル データベース サービスです。 これは、予測可能なパフォーマンス、セキュリティ、高可用性、動的なスケーラビリティを備えたミッション クリティカルなワークロードを処理できるサービスとしてのフル マネージド データベースです。 Azure Database for PostgreSQL は、PostgreSQL データベース エンジンのコミュニティ エディションに基づいて構築されています。 PostgreSQL サーバー コミュニティ エディションと互換性があり、PostGIS や TimescaleDB などの PostgreSQL 拡張機能をサポートしています。
手記
Azure Database for PostgreSQL を使用して Cognitive Services API から分析結果を格納する軽量ソリューションのアイデアについては、Azure Database for PostgreSQL を使用したインテリジェント アプリのに関するページを参照してください。
確実
Azure Database for PostgreSQL - フレキシブル サーバーは、同じ可用性ゾーン (ゾーン) 内または複数の可用性ゾーン (ゾーン冗長) 内で、物理的に分離されたプライマリ レプリカとスタンバイ レプリカをプロビジョニングすることで、高可用性 サポートを提供します。 この高可用性モデルにより、エラーが発生してもコミットされたデータが失われることはありません。 また、このモデルは、データベースがソフトウェア アーキテクチャの単一障害点にならないように設計されています。 Azure Database for PostgreSQL - フレキシブル サーバーは、計画的および計画外のダウンタイム イベント中に、ミッション クリティカルなデータベースのデータを保護し、ダウンタイムを軽減する機能を提供します。 堅牢な回復性と可用性を提供する Azure インフラストラクチャに基づいて構築されたフレキシブル サーバーには、障害保護を提供し、復旧時間の要件に対処し、データ損失の露出を減らすビジネス継続性機能があります。
信頼性設計チェックリスト
アーキテクチャのコストを最適化するために 設計原則を確認する必要があります。
- ワークロードの RPO (目標復旧ポイント) と RTO (目標復旧時間) のターゲットを定義します。
- 適切な高可用性構成を選択します。
- 地理的冗長性バックアップを構成します。
- 障害が発生した場合に迅速にデータを復元できるように、ディザスター リカバリー計画をテストします。
- HA 対応サーバーのオンデマンド フェールオーバーをテストして、アプリケーションが期待どおりに動作することを確認します。
- サーバーを監視して、正常で期待どおりに動作していることを確認します。
信頼性に関する推奨事項
勧告 | 特長 |
---|---|
ワークロードの RPO (目標復旧ポイント) と RTO (目標復旧時間) のターゲットを定義します。 | リスク評価を実施し、ダウンタイムとデータ損失のコストとリスクを確実に把握することで、これらの値を導き出します。 これらはシステムの非機能的な要件であり、ビジネス要件によって決定される必要があります。 |
適切な高可用性構成を選択します。 | Azure Database for PostgreSQL Server には高可用性構成が用意されており、ゾーンの障害が発生してもデータが失われない場合でも、サービスを引き続き利用できます。 高可用性を構成すると、Azure Database for PostgreSQL サーバーによってスタンバイ レプリカが自動的にプロビジョニングおよび管理されます。 |
地理的冗長バックアップを構成します。 | リージョン間の読み取りレプリカをデプロイして、リージョン レベルの障害からデータベースを保護できます。 geo 冗長バックアップは、選択したリージョンで有効になり、プライマリ サーバー リージョンがダウンしている場合のディザスター リカバリーに役立ちます。 Geo 冗長性は、復旧ポイントの長期的なストレージに Azure Backup コンテナーを使用することでも実現できます。 リージョンの障害や障害が発生した場合は、Azure Backup を使用してデータベース サーバーを Azure ペアリージョンに復元し、ダウンタイムを最小限に抑えることができます。 Azure Backup では、Azure Database for PostgreSQL - フレキシブル サーバーの geo 冗長性も提供され、効率性が向上し、災害やリージョンの停止時のダウンタイムが短縮されます。 |
障害が発生した場合は、ディザスター リカバリー計画をテストして、データの迅速な復元を確保します。 | ディザスター リカバリーが必要な場合は、読み取りレプリカを別のリージョンにデプロイし、読み取り/書き込みサーバーに昇格させることができます。 |
サーバーを監視して、正常で期待どおりに動作していることを確認します。 | データベース レベルの障害を監視してアラートを生成するためのデータベース監視が用意されています。 |
ヒント
Azure Database for PostgreSQL の信頼性ガイダンスの詳細については、Azure Database for PostgreSQL を使用した信頼性に関するページを参照してください。
Azure ポリシー定義
Azure Policy 定義は、Azure 環境内のリソースに対して特定の規則と構成を適用するのに役立ちます。 Azure Database for PostgreSQL の信頼性を確保するために、特定の構成とベスト プラクティスを実装するカスタム Azure Policy 定義を作成できます。 信頼性のために作成できるカスタム Azure Policy 定義の例を次に示します。
安全
設計と実装からデプロイと運用まで、アプリケーションのライフサイクル全体を通して、セキュリティ について考えてください。 Azure プラットフォームは、ネットワーク侵入や DDoS 攻撃などのさまざまな脅威から保護します。 アプリケーションと DevOps プロセスにセキュリティを組み込む必要があります。
セキュリティ設計チェックリスト
アーキテクチャのコストを最適化するために 設計原則を確認する必要があります。
- SSL を使用し、転送中のデータをセキュリティで保護するために暗号化を適用します。
- ネットワーク セキュリティ グループとファイアウォールを実装して、データベースへのアクセスを制御します。
- 認証と承認には Microsoft Entra ID を使用して、ID 管理を強化します。
- 行レベルのセキュリティを構成します。
セキュリティに関する推奨事項
勧告 | 特長 |
---|---|
SSL を使用し、転送中のデータをセキュリティで保護するために暗号化を適用します。 | SSL 経由でクライアント アプリケーションと通信するために必要な信頼された証明機関 (CA) 証明書から DigiCert グローバル ルート証明書をデプロイします。 |
ネットワーク セキュリティ グループとファイアウォールを実装して、データベースへのアクセスを制御します。 | セキュリティのゼロ トラスト モデルの一部として、コンポーネント (この場合はアプリケーションとデータベース サーバー) 間の通信パスが必要なもののみに制限されるネットワーク セグメント化をお勧めします。 これは、ネットワーク セキュリティ グループとアプリケーション セキュリティ グループを使用して実装できます。 |
認証と承認には Microsoft Entra ID を使用して、ID 管理を強化します。 | Microsoft Entra ID 認証は、Azure AD で定義されている ID を使用して Azure Database for PostgreSQL に接続するメカニズムです。 |
行レベルのセキュリティを構成します。 | 行レベル セキュリティ (RLS) は PostgreSQL セキュリティ機能であり、データベース管理者は、1 つ以上のロールに対して特定の行のデータを表示および動作する方法を制御するポリシーを定義できます。 行レベルのセキュリティは、PostgreSQL データベース テーブルに適用できる追加のフィルターです。 |
コストの最適化
コストの最適化は、不要な費用を削減し、運用効率を向上させるための構成オプションと推奨されるベスト プラクティスを理解することです。 ワークロードを確認して、コストを削減する機会を特定する必要があります。
コスト設計チェックリスト
アーキテクチャのコストを最適化するために 設計原則を確認する必要があります。
- 適切なレベルと SKU を選択します。
- 高可用性モードについて理解します。
- コンピューティング層とストレージ層をスケーリングします。
- 予約インスタンスについて検討します。
- プロビジョニングされたストレージを使用します。
- ジオ冗長化のコストについて理解する。
- ストレージのスケールアップに関する決定を評価します。
- アプリと同じリージョンにデプロイします。
- 高可用性指向のコストの説明。
- データベースとサーバーを統合します。
コストに関する推奨事項
推奨 事項 | 利点 |
---|---|
適切なレベルと SKU を選択します。 | ワークロードの特定のニーズをサポートする価格階層を選択し、SKU(構成単位)を計算します。 Azure Advisor では、Azure の全体的な支出を最適化して削減するための推奨事項が提供されます。 推奨事項には、従う必要があるサーバーの適切なサイズ設定が含まれます。 |
高可用性モードについて理解します。 | 高可用性により、スタンバイ サーバーは常に同じゾーンまたはリージョン内で使用できるようになります。 高可用性を有効にすると、コストが 2 倍になります。 |
コンピューティング層とストレージ層を調整します。 | 時間の経過に伴うアプリケーションの要件を満たすように、コンピューティング層とストレージ層を手動で調整する必要があります。 |
開始/停止機能を使用します。 | フレキシブル サーバーには、サーバーが不要な場合にサーバーの実行を停止するために使用できる開始/停止機能があります。 |
予約インスタンスについて検討します。 | コンピューティングの大幅な割引を受けるために、1 年または 3 年の予約を検討してください。 これらの予約は、1 年以上一貫したコンピューティング使用量を持つワークロードに使用します。 |
プロビジョニングされたストレージを使用します。 | プロビジョニングされたサーバー ストレージの合計の最大 100% のバックアップ ストレージには追加料金はかかりません。 |
冗長性コストについて理解します。 | geo 冗長ストレージ (GRS) は、ローカル冗長ストレージ (LRS) の 2 倍のコストがかかります。 GRS には LRS の 2 倍のストレージ容量が必要です。 |
保護されたインスタンスとバックアップ ストレージのコストについて | Azure Backup を使用して PostgreSQL - フレキシブル サーバーをバックアップする場合、保護されたインスタンス料金 (250 GB ごと) とバックアップ ストレージ料金 (格納されている合計データと冗長性の種類に基づく) が発生します。 |
ストレージのスケールアップに関する決定を評価します。 | ストレージをスケールアップする前に、現在および将来のストレージのニーズを評価する必要があります。 ストレージをスケールアップした後は、スケールダウンできません。 |
アプリと同じリージョンにデプロイします。 | 転送コストを最小限に抑えるために、アプリケーションと同じリージョンにデプロイします。 仮想ネットワーク統合を使用する場合、別の仮想ネットワーク内のアプリケーションはフレキシブル サーバーに直接アクセスできません。 アクセス権を付与するには、仮想ネットワーク ピアリングを構成する必要があります。 仮想ネットワーク ピアリングには、わずかな受信と送信のデータ転送コストがあります。 |
高可用性指向のコストの説明。 | HA とコストのトレードオフです。 HA は HA 以外の構成のコストの 2 倍ですが、必要です。 |
データベースとサーバーを統合します。 | 複数のデータベースとサーバーを 1 つのサーバーに統合して、コストを削減できます。 |
Azure ポリシー定義
Azure Policy 定義は、Azure 環境内のリソースに対して特定の規則と構成を適用するのに役立ちます。 Azure Database for PostgreSQL のコスト最適化を確実に行うために、特定の構成とベスト プラクティスを適用するカスタム Azure Policy 定義を作成できます。 コストの最適化のために作成できるカスタム Azure Policy 定義の例を次に示します。
- コスト を最適化する
オペレーショナル エクセレンス
オペレーショナル エクセレンスの原則は、優れた運用プラクティスの実現に役立つ一連の考慮事項です。
運用においてより高いコンピテンシーを実現するには、ソフトウェアの開発、展開、運用、保守の方法を検討し、改善します。
オペレーショナル エクセレンス設計チェックリスト
アーキテクチャのコストを最適化するために 設計原則を確認する必要があります。
- データの可用性を維持し、コンプライアンス要件を満たすように、自動バックアップと保持ポリシーを設定します。
- PostgreSQL インスタンスのセキュリティと up-to-date を維持するために、自動修正プログラムと更新プログラムを実装します。
- Azure Monitor を使用してデータベースの正常性とパフォーマンスを監視し、重要なメトリックのアラートを設定します。
オペレーショナル エクセレンスの推奨事項
勧告 | 利点 |
---|---|
データの可用性を維持し、コンプライアンス要件を満たすように、自動バックアップと保持ポリシーを設定します。 または、Azure Backup ポリシー を使用して、Azure Database for PostgreSQL Server をバックアップします。 この Azure Backup ポリシーを使用して、Azure Database for PostgreSQL - フレキシブル サーバーを保護することもできます。 |
Azure Database for PostgreSQL では、データベースの自動バックアップとポイントインタイム リストアが提供されます。 バックアップのリテンション期間は、最大 35 日間構成できます。 Azure Backup では、バックアップを作成する方法とタイミング、復旧ポイントの保有期間、データ保護と復旧の規則を定義できます。 バックアップ コンテナー内の復旧ポイントは、最長で 10 年間保持できます。 Azure Database for PostgreSQL - フレキシブル サーバーを長期的に保護し、データベースの安全性と整合性を管理するには、Azure Backup ポリシー を使用します。 また、Azure Business Continuity Center を使用して、バックアップ操作と復元操作を管理することもできます。 |
PostgreSQL インスタンスのセキュリティと up-to-date を維持するために、自動修正プログラムと更新プログラムを実装します。 | Azure Database for PostgreSQL では、データベースの自動修正プログラムと更新プログラムが提供されます。 ワークロードへの影響を最小限に抑えるために、サーバーのメンテナンス期間を構成できます。 |
Azure Monitor を使用してデータベースの正常性とパフォーマンスを監視し、重要なメトリックのアラートを設定します。 | Azure Database for PostgreSQL には、組み込みの監視とアラート機能が用意されています。 Azure Monitor を使用して、データベースの正常性とパフォーマンスを監視できます。 また、重要なメトリックのアラートを設定して、データベースが期待どおりに動作していないときに通知を受け取ることもできます。 |
オペレーショナル エクセレンス ポリシーの定義
Azure Policy 定義は、Azure 環境内のリソースに対して特定の規則と構成を適用するのに役立ちます。 Azure Database for PostgreSQL のオペレーショナル エクセレンスを確保するために、特定の構成とベスト プラクティスを適用するカスタム Azure Policy 定義を作成できます。 オペレーショナル エクセレンスのために作成できるカスタム Azure Policy 定義の例を次に示します。
パフォーマンス効率
パフォーマンス効率は、ワークロードをスケーリングして、ユーザーが効率的に要求を満たす能力です。 パフォーマンス効率の原則を確認することをお勧めします。
以下の設計チェックリストと推奨事項の一覧では、各選択肢がクラスター アーキテクチャ、ワークロード アーキテクチャ、またはその両方に適用されるかどうかを示します。
パフォーマンス効率設計チェックリスト
アーキテクチャのコストを最適化するために 設計原則を確認する必要があります。
- リソースの消費を最小限に抑えるために、効率を高めるためにスキーマとクエリを設計します。
- 読み取りレプリカを実装して読み取りトラフィックをオフロードし、全体的なパフォーマンスを向上させます。
パフォーマンス効率に関する推奨事項
勧告 | 利点 |
---|---|
リソースの消費を最小限に抑えるために、効率を高めるためにスキーマとクエリを設計します。 | リソースの消費を最小限に抑えるために、効率を高めるためにスキーマとクエリを設計する必要があります。 |
読み取りレプリカを実装して読み取りトラフィックをオフロードし、全体的なパフォーマンスを向上させます。 | 読み取りレプリカを使用して、読み取りトラフィックをオフロードし、パフォーマンスを向上させることができます。 |
パフォーマンス効率ポリシーの定義
Azure Policy 定義は、Azure 環境内のリソースに対して特定の規則と構成を適用するのに役立ちます。 Azure Database for PostgreSQL のパフォーマンス効率を確保するために、カスタム Azure Policy 定義を作成して、特定の構成とベスト プラクティスを適用できます。 パフォーマンス効率のために作成できるカスタム Azure Policy 定義の例を次に示します。
その他のリソース
Azure Database for PostgreSQL に関連するその他のリソースを検討してください。
Azure アーキテクチャ センターのガイダンス
クラウド導入フレームワークのガイダンス
- Azure Database for PostgreSQL を使用して Batch Data アプリケーション を開発する