PostgreSQLデータベースのデプロイ

PostgreSQLは、オープン・ソースのオブジェクト・リレーショナル・データベース管理システムです。拡張性と拡張性に優れ、多くの機能を備えています。PostgreSQLは、複数のデータ・センターにわたるデータ・レプリケーションをサポートしています。

ノート:

Oracle Cloud Infrastructure(OCI)は、OCIでフルマネージドのPostgreSQLサービスを提供します。詳細は、OCI Database with PostgreSQLでPostgreSQLを最大限に活用してください。

アーキテクチャ

このリファレンス・アーキテクチャは、Oracle Cloud Infrastructure ComputeインスタンスでのPostgreSQLクラスタの典型的な3ノードのデプロイメントを示しています。このアーキテクチャでは、サーバーはマスター構成およびスタンバイ構成で構成され、ファイルベースのログ出荷でストリーミング・レプリケーションを使用します。

次の図は、この参照アーキテクチャを示しています。

postgre-oci.pngの説明が続きます
図postgre-oci.pngの説明

postgre-oci-oracle.zip

アーキテクチャには、次のコンポーネントがあります。

  • リージョン

    Oracle Cloud Infrastructureリージョンは、可用性ドメインと呼ばれる1つ以上のデータ・センターを含む、ローカライズされた地理的領域です。地域は他の地域から独立しており、広く離れた距離(国間または大陸間)にすることもできます。

  • 可用性ドメイン

    可用性ドメインは、リージョン内のスタンドアロンの独立したデータ・センターです。各可用性ドメインの物理リソースは、フォルト・トレランスを提供する他の可用性ドメインのリソースから分離されます。アベイラビリティ・ドメインは、電源や冷却などのインフラストラクチャや内部アベイラビリティ・ドメイン・ネットワークを共有しません。したがって、ある可用性ドメインで障害が発生しても、リージョン内の他の可用性ドメインには影響しません。

  • フォルト・ドメイン

    フォルト・ドメインは、可用性ドメイン内のハードウェアおよびインフラストラクチャのグループです。各可用性ドメインには、独立した電源とハードウェアを持つ3つのフォルト・ドメインがあります。リソースを複数のフォルト・ドメインに分散する場合、アプリケーションでは、フォルト・ドメイン内の物理サーバー障害、システム・メンテナンスおよび電源障害を許容できます。

  • 仮想クラウド・ネットワーク(VCN)およびサブネット

    VCNは、Oracle Cloud Infrastructureリージョンで設定するカスタマイズ可能なソフトウェア定義ネットワークです。従来のデータ・センター・ネットワークと同様に、VCNではネットワーク環境を完全に制御できます。VCNには、VCNの作成後に変更できる複数の重複しないCIDRブロックを含めることができます。VCNは、リージョンまたは可用性ドメインにスコープ指定できるサブネットにセグメント化できます。各サブネットは、VCN内の他のサブネットと重複しない連続したアドレス範囲で構成されます。作成後にサブネットのサイズを変更できます。サブネットはパブリックまたはプライベートにできます。

    このアーキテクチャでは、あるパブリック・サブネットを使用して、PostgreSQLを実行している3つのコンピュート・インスタンスをホストします。アーキテクチャでプライベート・サブネットが必要な場合は、プライベート・サブネットを使用できます。

  • サイト間VPN

    Site-to-Site VPNは、オンプレミス・ネットワークとOracle Cloud InfrastructureのVCNとの間にIPSec VPN接続を提供します。IPSecプロトコル・スイートは、パケットがソースから宛先に転送される前にIPトラフィックを暗号化し、到着時にトラフィックを復号します。

  • FastConnect

    Oracle Cloud Infrastructure FastConnectは、データ・センターとOracle Cloud Infrastructureとの専用のプライベート接続を簡単に作成する方法を提供します。FastConnectは、インターネットベースの接続と比較して、高帯域幅オプションとより信頼性の高いネットワーキング体験を提供します。

  • 動的ルーティング・ゲートウェイ(DRG)

    DRGは、同じリージョン内のVCN間、VCNとリージョン外のネットワーク(別のOracle Cloud Infrastructureリージョン内のVCN、オンプレミス・ネットワーク、別のクラウド・プロバイダのネットワークなど)間のプライベート・ネットワーク・トラフィックのパスを提供する仮想ルーターです。

    このアーキテクチャは、プライベート・サブネットのオプションの動的ルーティング・ゲートウェイ(DRG)を示します。

  • インターネット・ゲートウェイ

    インターネット・ゲートウェイを使用すると、VCN内のパブリック・サブネットとパブリック・インターネット間のトラフィックが許可されます。

  • ネットワーク・アドレス変換(NAT)ゲートウェイ

    NATゲートウェイを使用すると、VCN内のプライベート・リソースは、着信インターネット接続にそれらのリソースを公開せずに、インターネット上のホストにアクセスできます。

  • Bastionサービス

    Oracle Cloud Infrastructure Bastionは、パブリック・エンドポイントがなく、ベア・メタルおよび仮想マシン、Oracle MySQL Database ServiceAutonomous Transaction Processing (ATP)、Oracle Container Engine for Kubernetes (OKE)、およびSecure Shell Protocol (SSH)アクセスを許可するその他のリソースも必要とする、リソースに対して制限されたセキュアなアクセスを提供します。Oracle Cloud Infrastructure Bastionサービスでは、ジャンプ・ホストをデプロイおよび保守せずに、プライベート・ホストへのアクセスを有効にできます。さらに、アイデンティティ・ベースの権限、および集中管理、監査および時間制限のあるSSHセッションにより、セキュリティ状況を改善できます。Oracle Cloud Infrastructure Bastionは、バスティング・アクセス用のパブリックIPが不要になり、リモート・アクセスを提供するときに攻撃対象領域が減少します。

  • ルート表

    仮想ルート表には、サブネットからVCN外部の宛先(通常はゲートウェイを介して)にトラフィックをルーティングするルールが含まれます。

  • セキュリティ・リスト

    サブネットごとに、サブネット内外で許可する必要があるトラフィックのソース、宛先およびタイプを指定するセキュリティ・ルールを作成できます。

    このアーキテクチャでは、TCPポート5432のイングレス・ルールを追加します。PostgreSQLサーバーは、TCPポート5432でリスニングします。

  • ブロック・ボリューム

    ブロック・ストレージ・ボリュームを使用すると、ストレージ・ボリュームを作成、アタッチ、接続および移動したり、ボリューム・パフォーマンスを変更して、ストレージ、パフォーマンスおよびアプリケーションの要件を満たすことができます。インスタンスにボリュームをアタッチおよび接続した後は、そのボリュームを通常のハード・ドライブのように使用できます。また、データを失わずに、ボリュームを切断して別のインスタンスにアタッチすることもできます。

  • PostgreSQL

    PostgreSQLは、拡張性と拡張性が高いオープン・ソースのリレーショナル・データベース管理システム(RDBMS)です。SQL (リレーショナル)およびJSON (非リレーショナル)の問合せをサポートします。

推奨事項

実際の要件は、ここで説明するアーキテクチャとは異なる場合があります。次の推奨事項を開始ポイントとして使用します。

  • コンピュート・シェイプ

    このアーキテクチャでは、VM.Standard.E4を含むOracle Linux 9 OSイメージを使用します。Flexシェイプ。アプリケーションのリソース・ニーズが異なる場合は、別のシェイプを選択できます。

  • VCN

    VCNを作成する場合、VCNのサブネットにアタッチする予定のリソースの数に基づいて、必要なCIDRブロックの数と各ブロックのサイズを決定します。標準のプライベートIPアドレス空間内にあるCIDRブロックを使用します。

    オンプレミス・ネットワークと重複しないアドレス範囲を選択して、必要に応じてVCNとオンプレミス・ネットワーク間の接続を設定できるようにします。

    VCNを作成した後、CIDRブロックを変更、追加および削除できます。

    サブネットを設計する際には、機能およびセキュリティ要件を考慮してください。同じ層またはロール内のすべてのコンピュート・インスタンスを同じサブネットにアタッチします。

    リージョナル・サブネットを使用します。

注意事項

  • 拡張性

    このアーキテクチャでは、一方のフォルト・ドメインにPostgreSQLマスター・ノードを、もう一方のフォルト・ドメインにスタンバイ・ノードをデプロイします。

    各コンピュート・ノードのVMシェイプを変更することで、PostgreSQLクラスタを垂直方向にスケーリングできます。コア数が多いシェイプを使用すると、コンピュート・インスタンスおよびネットワーク帯域幅に割り当てられるメモリーも増加します。

  • アプリケーションの可用性

    フォルト・ドメインは、単一の可用性ドメイン内で最善のリジリエンスを提供します。このアーキテクチャでは、高可用性のために別のアプローチを使用します。つまり、複数のフォルト・ドメイン間で同じタスクを実行するコンピュート・インスタンスをデプロイします。この設計では、冗長性を導入することで単一点障害を解消します。

    アーキテクチャのデプロイ後、PuTTYやGit BashなどのSSHツールを使用して、PostgreSQLノードのパブリックIPアドレスに接続できます。psqlは、PostgreSQLデータベースでのDDLおよびDML操作に使用できます。pgAdminツールを使用して、管理操作を実行できます。

  • コスト

    データベースに必要なコア、メモリーおよびネットワーク帯域幅に基づいて仮想マシン(VM)シェイプを選択します。1つのコア・シェイプから始めることができ、データベース・ノードのパフォーマンス、メモリーまたはネットワーク帯域幅を増やす必要がある場合は、後でVMシェイプを変更できます。

変更ログ

このログには、次の重要な変更がリストされます。

謝辞

  • Author: Lukasz Feldman
  • Contributor: Wei Han