Azure Database for PostgreSQL は、PostgreSQL オープンソース リレーショナル データベースに基づく Azure のリレーショナル データベース サービスです。 これは、予測可能なパフォーマンス、セキュリティ、高可用性、動的なスケーラビリティを備えたミッション クリティカルなワークロードをサポートする、フル マネージドのクラウドベースのデータベース ソリューションです。 Azure Database for PostgreSQL は、PostgreSQL データベース エンジンのコミュニティ エディションに基づいて構築されています。 PostgreSQL サーバー コミュニティ エディションと互換性があり、PostGIS や TimescaleDB などの PostgreSQL 拡張機能をサポートしています。
この記事では、アーキテクトとして Azure データ オプション を確認し、ワークロードのデータ ストアとして Azure Database for PostgreSQL を選択していることを前提としています。 この記事のガイダンスでは、Well-Architected Framework の柱の原則にマップされるアーキテクチャに関する推奨事項を示します。
Von Bedeutung
このガイドの使用方法
各セクションには、設計チェックリスト があり、テクノロジ スコープにローカライズされた設計戦略と共に、関心のあるアーキテクチャ領域が示されています。
また、これらの戦略の具体化に役立つテクノロジ機能の推奨事項も含まれています。 推奨事項は、Azure Database for PostgreSQL とその依存関係で使用できるすべての構成の完全な一覧を表すわけではありません。 代わりに、設計パースペクティブにマップされた主要な推奨事項が一覧表示されます。 推奨事項を使用して概念実証を構築するか、既存の環境を最適化します。
主要な推奨事項を示す基本アーキテクチャ:
Java 用の Reliable Web App パターン。
技術の範囲
このレビューでは、次の Azure リソースに関する相互に関連する決定に焦点を当てます。
- Azure Database for PostgreSQL(PostgreSQL用Azureデータベース)
確実
信頼性の柱の目的は、十分な回復性を構築 し、障害から迅速に回復する機能をして継続的な機能を提供することです。
信頼性設計の原則、個々のコンポーネント、システム フロー、およびシステム全体に適用される高度な設計戦略を提供します。
設計チェックリスト
Azure Database for PostgreSQL 製品の信頼性ガイダンスについて理解します。
詳細については、次のリソースを参照してください。Azure Database for PostgreSQL の信頼性と復旧のターゲットをワークロード ターゲットに合わせます。 信頼性と復旧ターゲットをサポートできる適切な Azure Database for PostgreSQL SKU を選択します。
Azure Database for PostgreSQL インスタンスに適した高可用性と冗長性の構成を決定します。 信頼性の要件を満たすためにゾーン冗長構成とゾーン構成のどちらを必要とするかを決定します。
ディザスター リカバリーの計画と演習に、Azure Database for PostgreSQL インスタンスの復旧を組み込みます。 ワークロード全体が復旧ターゲットに従って復旧可能であることを確認します。
Azure Database for PostgreSQL インスタンスを監視プラットフォームに組み込みます。 拡張メトリックを有効にして、インスタンスの正常性を監視します。 監視ソリューションに 高可用性の正常性監視 を含めます。
推奨 事項
勧告 | 特長 |
---|---|
適切な 高可用性構成を選択します。 | 高可用性を構成すると、Azure Database for PostgreSQL サーバーによってスタンバイ レプリカが自動的にプロビジョニングおよび管理されます。 この設定により、サービスは引き続き使用でき、ゾーンの停止中にデータが失われることはありません。 |
geo 冗長バックアップを構成します。 | リージョン間の読み取りレプリカをデプロイして、リージョン レベルの障害からデータベースを保護できます。 geo 冗長バックアップは、選択したリージョンで有効になり、プライマリ サーバー リージョンが使用できない場合のディザスター リカバリーに役立ちます。 Geo 冗長性は、復旧ポイントの長期的なストレージに Azure Backup コンテナーを使用することでも実現できます。 リージョンの障害や障害が発生した場合は、Backup を使用してデータベース サーバーを Azure ペアリージョンに復元し、ダウンタイムを最小限に抑えることができます。 Azure Backup では、Azure Database for PostgreSQL の geo 冗長性も提供されます。 この機能により、効率が向上し、災害や地域的な停止時のダウンタイムが短縮されます。 |
バックアップと復元の戦略を定期的にテストします。 | バックアップと復元の戦略を定期的にテストすることで、障害が発生した場合にデータベースを復旧して操作を維持できます。 |
安全
セキュリティの柱の目的は、ワークロードに対して機密性、整合性、可用性を保証することです。
セキュリティ設計の原則は、Azure Database for PostgreSQL の技術設計にアプローチを適用することで、これらの目標を達成するための高度な設計戦略を提供します。
設計チェックリスト
セキュリティ ベースラインを確認します。 ワークロードのセキュリティ体制を強化するには、 Azure Database for PostgreSQL の Azure セキュリティ ベースラインを確認します。
厳密で条件付きで監査可能な ID とアクセス管理を実装します。 認証と承認には Microsoft Entra ID を使用して、ID 管理を強化します。
ネットワークのセグメント化とセキュリティ制御を適用します。 サーバー レベルの組み込みファイアウォールと仮想ネットワーク ファイアウォール メカニズムを使用して、インスタンスを他のワークロード コンポーネントやパブリック ネットワークから分離します。
ネイティブ セキュリティ機能を使用して、保護のレイヤーを追加します。 行レベルのセキュリティと接続の調整を構成することで、悪意のあるアクティビティを防ぐのに役立ちます。
推奨 事項
勧告 | 特長 |
---|---|
ネットワーク セキュリティ グループとファイアウォールを実装して、データベースへのアクセスを制御します。 | セキュリティのゼロ トラスト モデルの一部として、ネットワーク セグメント化を使用して、アプリケーションサーバーやデータベース サーバーなどのコンポーネント間の通信パスを必要なもののみに制限します。 この機能は、ネットワーク セキュリティ グループとアプリケーション セキュリティ グループを使用して実装できます。 |
Azure Private Link 経由でデータベースに接続します。 | Private Link を使用すると、Azure Database for PostgreSQL のプライベート エンドポイントを作成して、仮想ネットワーク内でサービスを拡張できます。 |
認証と承認には Microsoft Entra ID を 使用して、ID 管理を強化します。 | Microsoft Entra 認証を使用して、Microsoft Entra のマネージド ID を使用して Azure Database for PostgreSQL に接続できます。 |
行レベルのセキュリティを構成します。 | 行レベルのセキュリティは PostgreSQL セキュリティ機能であり、データベース管理者は、1 つ以上のロールに対して、特定のデータ行の表示方法と動作方法を制御するポリシーを定義できます。 行レベルのセキュリティは、PostgreSQL データベース テーブルに適用できる追加のフィルターです。 |
コンプライアンスが必要な場合は、データ暗号化に カスタマー マネージド キー (CMK) を使用 し、キーを Azure Key Vault に格納します。 | CMK を使用すると、企業ポリシーに合わせて、キーのローテーションを含む暗号化キーのライフ サイクルを完全に制御できます。 Key Vault を使用すると、独自の専用 Key Vault インスタンス内での暗号化キーの一元管理と編成が可能になります。 |
サインイン試行が過剰に失敗した IP アドレスの接続調整を有効にします。 |
connection_throttling サーバー パラメーターを enabled に設定すると、同じ IP アドレスからの接続試行を繰り返し制限することで、悪意のあるサインイン試行や分散型サービス拒否 (DDoS) 攻撃からデータベースを保護できます。 |
セキュリティ監査を定期的に実施する。 | セキュリティ監査を定期的に実施すると、潜在的な脆弱性の特定と修復に役立ちます。 |
コストの最適化
コストの最適化では、支出パターンの検出 、重要な領域への投資の優先順位付け、ビジネス要件を満たしながら組織の予算を満たすために他の での最適化に重点を置いています。
コスト最適化の設計原則は、Azure Database for PostgreSQL とその環境に関連する技術設計において、これらの目標を達成し、必要に応じてトレードオフを行う高度な設計戦略を提供します。
設計チェックリスト
初期コストを見積もる。 コスト モデリング演習の一環として、Azure 料金計算ツールを使用して、ワークロード内の Azure Database for PostgreSQL に関連付けられているおおよそのコストを評価します。
ワークロードに適したサービス レベルを選択します。 コンピューティング リソースの Burstable、General Purpose、または Memory Optimized の価格レベルがユース ケースのニーズを満たしているかどうかを判断します。
十分な情報に基づくスケーリング戦略を適用します。 Azure Database for PostgreSQL リソースをスケーリングするタイミングと方法を決定するには、ワークロードの容量と需要を継続的に観察して分析します。
利用可能な割引を利用してください。 1年または3年のコンピューティング予約について検討してください。 予約インスタンスを使用すると、コンピューティング リソースのコストを大幅に削減できます。
プロビジョニングされたストレージを使用します。 プロビジョニングされたサーバー ストレージの合計の最大 100% のバックアップ ストレージには追加料金はかかりません。
冗長性コストについて理解します。 ゾーン冗長またはゾーン構成を使用すると、インスタンスのコストが 2 倍になるため、冗長性設計を慎重に検討してください。
保護されたインスタンスとバックアップ ストレージのコストについて説明します。 Azure Backup を使用して Azure Databse for PostgreSQL をバックアップすると、格納されている合計データと冗長性の種類に基づいて、250 GB ごとに保護されたインスタンス料金とバックアップ ストレージ料金が発生します。
アプリと同じリージョンにデプロイします。 転送コストを最小限に抑えるために、アプリケーションと同じリージョンにデプロイします。
データベースとサーバーを統合します。 実用的な場合、複数のデータベースとサーバーを 1 つのサーバーに統合すると、コストを削減できます。
推奨 事項
推奨 事項 | 利点 |
---|---|
適切な レベルと SKU を選択します。 | 適切なレベルと SKU を選択すると、過剰にプロビジョニングされたリソースの無駄なコストを回避できます。 Azure Advisor には、Azure の全体的な支出を最適化して削減するための推奨事項 (サーバーの権限化に関する提案を含む) が用意されています。 |
ワークロードの需要が変化したときにコンピューティング リソースとストレージ リソースをスケーリングします。 | 必要に応じて、コンピューティング リソースを垂直方向 (上下) および水平方向 (アウトまたはイン) にスケーリングできます。 スケールアップ後にストレージをスケールダウンすることはできません。 |
開始/停止機能を使用します。 | 開始/停止機能を使用して、サーバーが不要になったときにサーバーの実行を停止します。 |
オペレーショナル エクセレンス
オペレーショナル エクセレンスは主に、開発プラクティス、可観測性、リリース管理の手順に重点を置いています。
オペレーショナル エクセレンス設計原則、ワークロードの運用要件に対してこれらの目標を達成するための高度な設計戦略を提供します。
設計チェックリスト
データベースの回復可能性を最適化します。 コンプライアンス要件を満たすバックアップ ポリシーと保持ポリシーを定義します。
運用タスクを自動化します。 自動化タスクを使用して、サーバーの開始と停止、リソースのスケーリングなどのタスクを自動的に実行します。
データベースの正常性とパフォーマンスを監視します。 インスタンスからログとメトリックを収集して分析し、潜在的な問題を事前に検出します。
推奨 事項
勧告 | 利点 |
---|---|
Azure Backup ポリシーを個別に使用するか、ネイティブの自動バックアップと共に使用して、データベースをバックアップします。 | Azure Database for PostgreSQL では、データベースの自動バックアップとポイントインタイム リストアが提供されます。 バックアップのリテンション期間は、最大 35 日間構成できます。 Azure Backup を使用して、バックアップを作成する方法とタイミング、復旧ポイントの保有期間、およびデータ保護と復旧の規則を定義します。 Azure Backup コンテナー内の復旧ポイントは、最大 10 年間保持できます。 Azure Business Continuity Center を使用して、バックアップ操作と復元操作を管理することもできます。 |
サービス更新プログラムを適用するように カスタム メンテナンス期間 をスケジュールします。 | Azure サブスクリプション内の各 Azure Database for PostgreSQL のカスタム スケジュールを定義できます。 カスタム スケジュールでは、1 時間のメンテナンス期間の曜日と開始時刻を選択して、サーバーのメンテナンス期間を指定できます。 |
サーバーを監視して 、正常で期待どおりに動作していることを確認します。 | Azure Database for PostgreSQL には、Azure Database for PostgreSQL インスタンスをサポートするリソースの動作に関する分析情報を提供するさまざまなメトリックがあります。 また、強化されたメトリックを有効にして、データベースの監視とアラートをきめ細かく設定することもできます。 |
パフォーマンス効率
パフォーマンス効率とは、容量の管理により、負荷が増加してもユーザー エクスペリエンスを維持することです。 この戦略には、リソースのスケーリング、潜在的なボトルネックの特定と最適化、ピーク パフォーマンスの最適化が含まれます。
パフォーマンス効率設計の原則、予想される使用に対してこれらの容量目標を達成するための高度な設計戦略を提供します。
設計チェックリスト
クエリを最適化します。 ネイティブ機能を使用して、クエリを最適化する機会を見つけます。
インデックスを最適化します。 インデックスのチューニングなどの機能を使用して、クエリ パターンを自動的に分析し、パフォーマンスを向上させるためにインデックスを作成または削除するための実用的な推奨事項を受け取ります。
読み取り専用操作をオフロードします。 アプリケーションで読み取り専用接続文字列を使用できる場合は、読み取り専用の操作をレプリカにオフロードできます。
推奨 事項
勧告 | 利点 |
---|---|
クエリ ストアを使用して、時間の経過に伴うクエリのパフォーマンスを追跡します。 | クエリ ストアを使用すると、実行時間が最も長く、リソースを集中的に消費するクエリをすばやく検索できるため、パフォーマンスの問題のトラブルシューティングが簡単になります。 |
Query Performance Insight を使用して、ワークロードで消費される上位のリソースと実行時間の長いクエリを特定します。 | Query Performance Insight を使用すると、実行時間の長いクエリとその変化の特定、それらに影響する待機の種類の決定、頻度別の上位データベース クエリの分析、およびその他の利点を得ることができます。 |
クエリ ストアで インデックスのチューニング を使用して、追跡対象のクエリを分析し、推奨事項を提供します。 | インデックスチューニングは、クエリ ストアが追跡するワークロードを分析します。 分析されたワークロードのパフォーマンスを向上させたり、重複または未使用のインデックスを削除したりするためのインデックスの推奨事項が生成されます。 インデックスのチューニングは、有益なインデックス、重複するインデックス、および未使用のインデックスを識別するのに役立ちます。 |
インテリジェント チューニングを使用して、パフォーマンスを自動的に強化し、問題を防ぐことができます。 | インテリジェント チューニングは、Azure Database for PostgreSQL のフレキシブル サーバーの状態を継続的に監視し、データベースをワークロードに合わせて動的に調整します。 |
Azure ポリシー
Azure には、Azure Database for PostgreSQL とその依存関係に関連する広範な組み込みポリシー セットが用意されています。 上記の推奨事項の一部は、Azure Policy を使用して監査できます。 たとえば、次のことを確認できます。
包括的なガバナンスについては、データ ストアのセキュリティに影響する可能性がある Azure Database for PostgreSQL およびその他のポリシーの Azure Policy 組み込み定義 を確認してください。
Azure Advisor の推奨事項
Azure Advisor は、Azure デプロイを最適化するためのベスト プラクティスに従うのに役立つ、パーソナライズされたクラウド コンサルタントです。
詳細については、Azure Advisor に関するページを参照してください。