Azure Well-Architected Framework レビュー - Azure Database for PostgreSQL
この記事では、Azure Database for PostgreSQLのアーキテクチャのベスト プラクティスについて説明します。
このガイダンスは、アーキテクチャの卓越性の 5 つの柱に基づいています。
- [信頼性]
- セキュリティ
- コストの最適化
- オペレーショナル エクセレンス
- パフォーマンス効率
前提条件
Well-Architected フレームワークの柱を理解することは、高品質で安定した効率的なクラウド アーキテクチャを生み出すのに役立ちます。 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 (目標復旧時間) のターゲットを定義しました。
- 適切な高可用性構成を選択します。
- geo 冗長バックアップを構成します。
- 障害が発生した場合に迅速にデータを復元できるように、ディザスター リカバリー計画をテストします。
- HA 対応サーバーのオンデマンド フェールオーバーをテストして、アプリケーションが期待どおりに動作することを確認します。
- サーバーを監視して、正常で期待どおりに実行されていることを確認します。
信頼性に関する推奨事項
推奨 | 特長 |
---|---|
ワークロードの RPO (目標復旧ポイント) と RTO (目標復旧時間) のターゲットを定義しました。 | リスク評価を実施し、ダウンタイムとデータ損失のコストとリスクを確実に理解することで、これらの値を導き出します。 これらはシステムの機能要件ではなく、ビジネス要件によって決定する必要があります。 |
適切な高可用性構成を選択します。 | Azure Database for PostgreSQL Server は高可用性構成を提供し、ゾーンが停止し、データが失われなかった場合でもサービスを引き続き使用できるようにします。 高可用性を構成すると、Azure Database for PostgreSQL サーバーはスタンバイ レプリカを自動的にプロビジョニングおよび管理します。 |
geo 冗長バックアップを構成します。 | リージョン間の読み取りレプリカをデプロイして、リージョン レベルの障害からデータベースを保護できます。 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 と暗号化を適用して、転送中のデータをセキュリティで保護します。
- ネットワーク セキュリティ グループとファイアウォールを実装して、データベースへのアクセスを制御します。
- 認証と承認には Azure Active Directory を使用して、ID 管理を強化します。
- 行レベルのセキュリティを構成します。
セキュリティに関する推奨事項
推奨 | 特長 |
---|---|
SSL と暗号化を適用して、転送中のデータをセキュリティで保護します。 | SSL 経由でクライアント アプリケーションと通信するために必要な信頼された証明機関 (CA) 証明書から DigiCert グローバル ルート証明書を展開します。 |
ネットワーク セキュリティ グループとファイアウォールを実装して、データベースへのアクセスを制御します。 | セキュリティのためのゼロ トラスト モデルの一部として、コンポーネント間の通信パス (この場合はアプリケーションとデータベース サーバー) が必要なもののみに制限されているネットワーク セグメント化をお勧めします。 これは、ネットワーク セキュリティ グループとアプリケーション セキュリティ グループを使用して実装できます。 |
認証と承認には Azure Active Directory を使用して、ID 管理を強化します。 | Microsoft Azure Active Directory (Azure AD) 認証は、Azure AD で定義された ID を使用して Azure Database for PostgreSQL に接続できるよう設計されています。 |
行レベルのセキュリティを構成します。 | 行レベル セキュリティ (RLS) は PostgreSQL のセキュリティ機能であり、これによりデータベース管理者は、ポリシーを定義して、データの特定行を 1 つ以上のロールに対してどのように表示して動作させるかを制御できます。 行レベルのセキュリティは、PostgreSQL データベース テーブルに適用できる追加のフィルターです。 |
コスト最適化
コストの最適化は、不要な費用を削減し、運用効率を向上させるための構成オプションと推奨されるベスト プラクティスを理解することです。 ワークロードを確認して、コストを削減する機会を特定する必要があります。
コスト設計チェックリスト
アーキテクチャのコストを最適化するには 、設計原則 を確認する必要があります。
- 適切なレベルと SKU を選択します。
- 高可用性モードについて理解する。
- コンピューティング層とストレージ層をスケーリングする。
- 予約インスタンスを検討してください。
- プロビジョニングされたストレージを使用します。
- geo 冗長コストについて理解する。
- ストレージのスケールアップに関する決定を評価します。
- アプリと同じリージョンにデプロイします。
- 高可用性指向のコストの説明。
- データベースとサーバーを統合する
コストに関する推奨事項
Recommendations | メリット |
---|---|
適切なレベルと SKU を選択します。 | ワークロードの特定のニーズをサポートする価格レベルとコンピューティング SKU を選択します。 Azure Advisor では、Azure の全体的な支出を最適化して削減するための推奨事項が提供されます。 推奨事項には、従う必要があるサーバーの適切なサイズ設定が含まれます。 |
高可用性モードについて理解する。 | 高可用性により、スタンバイ サーバーは常に同じゾーンまたはリージョン内で使用できるようになります。 高可用性を有効にすると、コストが 2 倍になります。 |
コンピューティング層とストレージ層を調整します。 | 時間の経過と同時にアプリケーションの要件を満たすように、コンピューティング層とストレージ層を手動で調整する必要があります。 |
開始/停止機能を使用します。 | フレキシブル サーバーには開始/停止機能があり、不要な場合にサーバーの実行を停止するために使用できます。 |
予約インスタンスを検討してください。 | コンピューティングの大幅な割引を受けるために、1 年または 3 年間の予約を検討してください。 これらの予約は、1 年以上一貫したコンピューティング使用量を持つワークロードに使用します。 |
プロビジョニングされたストレージを使用します。 | プロビジョニングされたサーバー ストレージ全体の最大 100% のバックアップ ストレージに対する追加料金は発生しません。 |
冗長性のコストを理解する。 | geo 冗長ストレージ (GRS) は、ローカル冗長ストレージ (LRS) の 2 倍のコストがかかります。 GRS には、LRS の 2 倍のストレージ容量が必要です。 |
ストレージのスケールアップに関する決定を評価します。 | ストレージをスケールアップする前に、現在および将来のストレージのニーズを評価する必要があります。 ストレージをスケールアップした後は、スケールダウンできません。 |
アプリと同じリージョンにデプロイします。 | 転送コストを最小限に抑えるために、アプリケーションと同じリージョンにデプロイします。 仮想ネットワーク統合を使用する場合、別の仮想ネットワーク内のアプリケーションはフレキシブル サーバーに直接アクセスできません。 アクセス権を付与するには、仮想ネットワーク ピアリングを構成する必要があります。 仮想ネットワーク ピアリングには、わずかな受信および送信データ転送コストがあります。 |
高可用性指向のコストの説明。 | HA とコストのトレードオフです。 HA は HA 以外の構成のコストの 2 倍ですが、必要です。 |
データベースとサーバーを統合する | コストを削減するために、複数のデータベースとサーバーを 1 つのサーバーに統合できます。 |
Azure ポリシー定義
Azure Policy定義は、Azure 環境内のリソースに特定の規則と構成を適用するのに役立ちます。 Azure Database for PostgreSQLのコスト最適化を確保するために、カスタム Azure Policy定義を作成して、特定の構成とベスト プラクティスを適用できます。 コストの最適化のために作成できるカスタム Azure Policy定義の例を次に示します。
オペレーショナル エクセレンス
オペレーショナル エクセレンスの原則は、優れた運用プラクティスを実施するのに役立つ一連の考慮事項です。
運用においてより高いコンピテンシーを実現するには、ソフトウェアの開発、展開、運用、保守の方法を検討し、改善します。
オペレーショナル エクセレンス設計チェックリスト
アーキテクチャのコストを最適化するには 、設計原則 を確認する必要があります。
- データの可用性を維持し、コンプライアンス要件を満たすように、自動バックアップと保持ポリシーを設定します。
- PostgreSQL インスタンスをセキュリティで保護し、最新の状態に保つために、自動修正プログラムと更新プログラムを実装します。
- Azure Monitor を使用してデータベースの正常性とパフォーマンスを監視し、重要なメトリックのアラートを設定します。
オペレーショナル エクセレンスに関する推奨事項
推奨 | メリット |
---|---|
データの可用性を維持し、コンプライアンス要件を満たすように、自動バックアップと保持ポリシーを設定します。 | Azure Database for PostgreSQLでは、データベースの自動バックアップとポイントインタイム リストアが提供されます。 バックアップの保持期間は最大 35 日間構成できます。 |
PostgreSQL インスタンスをセキュリティで保護し、最新の状態に保つために、自動修正プログラムと更新プログラムを実装します。 | 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に関連するその他のリソースを検討してください。