101: PostgreSQLを最小構成で作成し、データベースに接続する
Oracle Cloud Infrastructureでは、PostgreSQL互換のフルマネージド・データベース・サービスであるOCI Database with PostgreSQLを利用できます。
このチュートリアルでは、OCIコンソールからOCI Database with PostgreSQLのDBシステムを最小構成で作成し、前提条件で作成済みのコンピュート・インスタンスからPostgreSQLクライアントを使って接続する手順を説明します。
所要時間 : 約40分 (DBシステム作成の待ち時間を含む)
前提条件 :
- Oracle Cloud Infrastructure の環境(無料トライアルでも可) と、管理権限を持つユーザーアカウントがあること
- OCIコンソールにアクセスして基本を理解する - Oracle Cloud Infrastructureを使ってみよう(その1) を完了していること
- クラウドに仮想ネットワーク(VCN)を作る - Oracle Cloud Infrastructureを使ってみよう(その2) を完了していること
- インスタンスを作成する - Oracle Cloud Infrastructureを使ってみよう(その3) を完了していること
注意 : チュートリアル内の画面ショットについては Oracle Cloud Infrastructure の現在のコンソール画面と異なっている場合があります。
目次:
- 1. OCI Database with PostgreSQLとは?
- 2. OCI Database with PostgreSQLのDBシステムの作成
- 3. セキュリティリストの修正(イングレス・ルールの追加)
- 4. PostgreSQLクライアントのインストール
- 5. 作成したDBシステムへの接続確認
- 6. 作成したリソースの削除
OCI Database with PostgreSQLは、OCIでPostgreSQL互換のデータベースを利用できるフルマネージド・サービスです。DBシステム、バックアップ、メンテナンス、メトリック、ログなどをOCIコンソールやAPIから管理できます。サービスの詳細は、OCI Database with PostgreSQLのドキュメントを参照してください。
OCI Database with PostgreSQLのDBシステム・エンドポイントはプライベートIPアドレスを使用し、インターネットから直接アクセスできません。そのため、このチュートリアルでは、前提条件で作成済みのコンピュート・インスタンスからプライベート・ネットワーク経由でDBシステムへ接続します。
OCI Database with PostgreSQLのDBシステムを作成します。このチュートリアルでは、学習用途として1ノードの最小構成を作成します。
-
コンソールメニューから データベース → PostgreSQL → DBシステム を選択します。
-
PostgreSQLデータベース・システムの作成 ボタンを押します。この際、左下の リスト範囲 でリソースを作成したいコンパートメントを選択していることを確認してください。ここでは、前提条件で利用しているコンパートメントを使用します。

-
作成タイプの選択 で 新規データベース・システムの作成 を選択し、次へ をクリックします。

-
データベース構成 で、以下の項目を入力します。
- データベース・システム名 - 任意の名前を入力します。ここでは
TestPostgreSQLと入力しています。 - 説明 - このDBシステムの説明を入力します。ここでは
ハンズオン用と入力しています。(入力は任意です) - コンパートメント - リソースを作成するコンパートメントを選択します。
- PostgreSQLメジャー・バージョン - 表示されているバージョンから選択します。ここではデフォルトで選択されているバージョンを使用します。

- データベース・システム名 - 任意の名前を入力します。ここでは
-
データベース・システム で、以下の項目を入力します。
- ノード数 -
1を指定します。 - パフォーマンス層 - デフォルトの値を使用します。
- データ配置 - 学習用途ではデフォルトの値を使用します。
- 可用性ドメイン - 表示される可用性ドメインを選択します。
※ ノード数を2以上にすると読取りレプリカ・ノードを含む構成を作成できます。このチュートリアルでは最小構成を確認するため、1ノードで作成します。
- ノード数 -
-
ハードウェア構成 で、以下の項目を入力します。
- プロセッサ - デフォルトの値を使用します。
- シェイプの選択 - 表示される最小のシェイプ、または学習環境で利用可能なシェイプを選択します。
利用できるシェイプや最小構成はリージョン、テナンシ、サービスの更新状況によって異なる場合があります。表示されている候補から、学習用途に適した小さいシェイプを選択してください。

-
構成および拡張 はデフォルトのままにします。
-
ネットワーク構成 で、以下の項目を入力します。
- コンパートメント - VCNおよびサブネットを含むコンパートメントを選択します。
- Virtual Cloud Network - 前提条件で作成したVCNを選択します。ここでは
TutorialVCNを使用します。 - サブネット - 前提条件で作成したプライベート・サブネットを選択します。ここでは
プライベート・サブネット-TutorialVCNを使用します。 - プライベートIPアドレス - 空欄のままにします。
- リーダー・エンドポイントの有効化 - このチュートリアルでは無効のままにします。
- ネットワーク・セキュリティ・グループを使用したトラフィックの制御 - このチュートリアルでは使用しません。

-
データベース・システム管理者資格証明 で、以下の項目を入力します。
- パスワードの入力 - 選択します。
- パスワード - 管理者パスワードを入力します。
- パスワードの確認 - 管理者パスワードを再入力します。
※ OCI Database with PostgreSQLの管理ユーザーは、一般的なPostgreSQLのスーパーユーザーではありません。ユーザーやロールの作成など、マネージド・サービスで許可された管理操作を行うためのユーザーです。

-
次へ をクリックします。
-
管理ポリシー で、以下の項目を確認します。
- 自動バックアップ - 学習用途では有効のままにします。
- バックアップ頻度 - デフォルトの値を使用します。
- バックアップ保持期間(日数) - デフォルトの値を使用します。
- バックアップ・コピーの有効化 - このチュートリアルでは無効のままにします。
- メンテナンス・タイプ - デフォルトの値を使用します。

-
次へ をクリックします。
-
確認および作成 で設定内容を確認し、問題がなければ 作成 をクリックします。

-
DBシステムが 作成中 になるのでしばらく待ちます。作成が完了すると、ステータスが アクティブ に変わります。


-
作成したDBシステムの詳細画面で、接続の詳細 に表示される FQDN を確認しておきます。後続の接続確認で使用します。
-
同じく 接続の詳細 からCA証明書をダウンロードします。ダウンロードした証明書は、後続の接続確認で使用します。

このチュートリアルで作成したDBシステムへコンピュート・インスタンスから接続するため、PostgreSQLの通信に使用するTCP 5432ポートへの通信を許可します。
-
コンソールメニューから ネットワーキング → 仮想クラウド・ネットワーク を選択し、前提条件で作成したVCNを選択します。ここでは
TutorialVCNを使用します。 -
プライベート・サブネット-TutorialVCN をクリックします。
-
プライベート・サブネット-TutorialVCNのセキュリティ・リスト をクリックします。

-
イングレス・ルールの追加 をクリックします。
-
立ち上がった イングレス・ルールの追加 ウィンドウで、以下の項目を入力し イングレス・ルールの追加 ボタンを押します。
- ソースCIDR -
10.0.0.0/16と入力します。 - IPプロトコル -
TCPを選択します。 - ソース・ポート範囲 -
すべてのままにします。 - 宛先ポート範囲 -
5432と入力します。 - 説明 -
PostgreSQLと入力します。(入力は任意です)
- ソースCIDR -
-
TCP 5432ポートに対するイングレス・ルールが追加されたことを確認します。

前提条件で作成したコンピュート・インスタンスに接続し、PostgreSQLクライアントをインストールします。
-
インスタンスを作成する - Oracle Cloud Infrastructureを使ってみよう(その3)で作成したコンピュート・インスタンスにSSHで接続します。
-
以下のコマンドを実行し、PostgreSQLクライアントをインストールします。
実行コマンド例(コピー&ペースト用)
sudo dnf install -y postgresql※ 使用しているOSイメージによっては、
dnfのかわりにyumを使用します。 -
以下のコマンドで
psqlコマンドが使用できることを確認します。psql --version -
OCIコンソールからダウンロードしたCA証明書を、コンピュート・インスタンスに配置します。ここでは、ホーム・ディレクトリに
dbsystem.pubというファイル名で保存したものとして説明します。ローカルPCにダウンロードした証明書をSSHで転送する場合の実行例は以下の通りです。
<秘密鍵ファイル>、<コンピュートのパブリックIPアドレス>、<ダウンロードした証明書ファイル>は環境にあわせて置き換えてください。scp -i <秘密鍵ファイル> <ダウンロードした証明書ファイル> opc@<コンピュートのパブリックIPアドレス>:~/dbsystem.pubコンピュート・インスタンス上で以下のコマンドを実行し、証明書ファイルが配置されていることを確認します。
ls -l ~/dbsystem.pub
PostgreSQLクライアントを使用して、作成したDBシステムへ接続します。
-
以下のコマンドを実行して、DBシステムに接続します。
<DBシステムのFQDN>は、DBシステム詳細画面の 接続の詳細 で確認したFQDNに置き換えてください。実行コマンド例(コピー&ペースト用)
psql "sslmode=verify-full sslrootcert=$HOME/dbsystem.pub host=<DBシステムのFQDN> dbname=postgres user=postgres"※ 要塞ポート転送セッションを利用してローカルPCから接続する場合は、OCI公式ドキュメントのOCI Database with PostgreSQLでのデータベースへの接続も参照してください。
パスワードを求められたら、DBシステム作成時に設定した管理者パスワードを入力します。
接続できない場合は、以下を確認してください。
- コンピュート・インスタンスとDBシステムが同じVCN内、または到達可能なネットワーク内にあること
- DBシステムがプライベート・サブネットに作成されていること
- プライベート・サブネットのセキュリティ・リストでTCP 5432が許可されていること
- 接続文字列のFQDN、証明書パス、ユーザー名に誤りがないこと
-
接続後、以下のSQLを実行します。
SELECT version();SELECT current_database();SELECT current_user; -
チュートリアル用のデータベースを作成します。
CREATE DATABASE tutorialdb; -
psqlを終了します。\q -
作成した
tutorialdbに接続します。psql "sslmode=verify-full sslrootcert=$HOME/dbsystem.pub host=<DBシステムのFQDN> dbname=tutorialdb user=postgres" -
テーブルを作成し、データを登録します。
CREATE TABLE products ( id integer PRIMARY KEY, name text NOT NULL, price integer NOT NULL );INSERT INTO products (id, name, price) VALUES (1, 'keyboard', 12000), (2, 'mouse', 3000), (3, 'display', 28000); -
登録したデータを確認します。
SELECT * FROM products ORDER BY id;実行例
id | name | price ----+----------+------- 1 | keyboard | 12000 2 | mouse | 3000 3 | display | 28000 (3 rows)
-
psqlを終了します。\q
これで、この章の作業は終了です。
この章では、OCI Database with PostgreSQLのDBシステムを1つ作成し、コンピュート・インスタンスからPostgreSQLクライアントで接続確認をしました。
このチュートリアルで作成したDBシステムを今後使用しない場合は、課金を避けるため削除します。
-
コンソールメニューから データベース → PostgreSQL → DBシステム を選択します。
-
作成したDBシステムをクリックします。ここでは
TestPostgreSQLを選択します。 -
他のアクション → 削除 をクリックします。
-
確認ダイアログの内容を確認し、必要な操作を行って削除します。
-
DBシステムのステータスが削除中になったことを確認します。
※ 削除時のバックアップ保持や最終バックアップの扱いは、コンソールの表示内容を確認して選択してください。学習用途でバックアップを残す必要がない場合は、不要なバックアップが残らないように注意してください。