PostgreSQLサーバイメージご利用ガイド

Prev Next

ご使用の前に

Q. PostgreSQLはどのようなサービスでしょうか?

  • ご希望の CentOSバージョンに PostgreSQLをいくつか設定とクリックだけで簡単に作成できる Basic Install機能のみをサポートするサービスです。これに関連して、提供された設置以外に関しては技術サポートしていません。
  • 「PostgreSQL」は拡張機能および標準順守を強調するオープンソースオブジェクト-関係型データベース(ORDBMS)である PostgreSQLを利用します。

Q. DBサーバを作成する前に、あらかじめ準備しておくべきことはありますか?

  • PostgreSQL DBは現在、NAVERクラウドプラットフォームの内部でのみアクセスできるため、DBサーバにアクセスするアプリケーションサーバは、NAVERクラウドプラットフォームの内部にある必要があります。
  • どのサービスで DBを使用するか、使用量はどのくらいかを予測し、どのサーバタイプで作成するかをあらかじめ決定する必要があります。

Q. DBサーバで作成できるサーバタイプには何がありますか?

  • PostgreSQLではお客様の用途に合わせた多様なサーバタイプのうち1つを選択できます。
サーバタイプ 用途
2 vCPU、4GBメモリ 最も小さいサーバタイプで開発、テスト DB、個人ブログなどに適合
4 vCPU、8GBメモリ 小さいサーバタイプで小さいコミュニティまたは個人ショッピングモール構築などに適合
8 vCPU、16GBメモリ 一般的なサーバタイプでスタートアップホームページ、サービス DBで適合
16 vCPU、32GBメモリ 最も大きいサーバタイプでゲーム DB、ショッピングモール DBまたは中型サービス DBで適合

Q. DBサーバの作成手順はどうなりますか? コンソールにアクセスした後、以下の手順を経ると簡単に DBサーバを作成できます。

  • コンソールにアクセス: NAVERクラウドプラットフォームで提供する コンソールにアクセスします。
  • サーバの設定: ストレージタイプ、サーバタイプ、サーバ名などを決めます。
  • 認証キーの設定: 保有している認証キーを活用したり、ない場合新しく認証キーを作成します。
  • ファイアウォールの設定: 保有している ACGを選択するか、新しい ACGを作成してください。
  • 最終確認: サーバタイプなどのサーバ設定情報とユーザーが料金プラン情報などを最終確認し、DBサーバを作成します。

Q. DBサーバが作成される際に、どのような運営体制をインストールし、提供されるディスクの容量はどれくらいですか?

  • 運営体制は Linuxです。
  • PostgreSQLの場合、運営体制のための基本ディスクは50GBが基本的に提供され、DBサーバ料金に含まれています。
  • OSがインストールされる基本ディスクは、容量を変更することができません。

Q. データバースストレージとは何ですか?

  • 最初に DBを作成する際は HDDと SSDの中から選択でき、それに応じて他の料金が適用されます。
  • サービスのための DBの場合、できるだけ高性能の I/Oが提供される SSDタイプをお勧めします。

Q. PostgreSQLのライセンスは何ですか?

  • PostgreSQLは BSDまたは MITライセンスと似た自由なオープンソ―スライセンスである PostgreSQLライセンスへ配布されます。
  • PostgreSQLの GPLライセンスについての詳細は The PostgreSQL Licence (PostgreSQL) | Open Source Initiativeをご確認ください。

PostgreSQLインストール型サービス紹介

NAVERクラウド PostgreSQLインストール型商品の概念と基本構造を説明します。

PostgreSQL紹介

PostgreSQLは全世界で最も安全的で進歩的なオープンソースとして評価されている DBMSです。完璧なトランザクション(ACID)と高い同時実行制御(MVCC)をサポートし、高価的な費用管理が可能です。

NAVERクラウド PostgreSQLインストール型サービス構成

インストール型サービス

NAVERクラウドでサポートする PostgreSQLインストール型サービスの場合、基本的な 9.4, 13.3, 14.3バージョンのインストールをサポートし、PostgreSQL Serverが Startupされた状態で提供します。これに関連して DBインストール以外の部分については技術サポートを提供していません

インストール方法およびパッケージ

PostgreSQLインストールの場合、Source Compile / RPM / Binaryインストール方法があり、NAVERクラウドでは Normal Install方法である RPMインストールイメージを提供します。

RPMインストールは PostgreSQL(postgresql.org)で公式に提供している repoファイルを使用し、Repoで提供する Latest Versionを基本にサーバイメージに含み、提供します。

次は本設定としてインストールされるパッケージリストです。

  • PostgreSQL 9.4

    • postgresql94-server
    • postgresql94
    • postgresql94-libs
  • PostgreSQL 13.3

    • postgresql13-server
    • postgresql13
    • postgresql13-libs
    • postgresql13-contrib
  • PostgreSQL 14.3

    • postgresql14-server
    • postgresql14
    • postgresql14-libs
    • postgresql14-contrib

インストールディレクトリ

項目 位置
DATADIR ($PGDATA) /var/lib/pgsql/9.4/data
/var/lib/pgsql/13/data
/var/lib/pgsql/14/data
LOGFILE $PGDATA/pg_log
postgresql.conf $PGDATA/postgresql.conf
pg_hba.conf $PGDATA/pg_hba.conf
pg_defaultテーブルスペースの物理的位置 $PGDATA/base
pg_globalテーブルスペースの物理的位置 $PGDATA/global

遠隔接続のための環境設定方法(CentOS 6/7 共通)

PostgreSQLは最初のインストール時、localhost(127.0.0.1)でのみアクセスを許可するため遠隔接続ができません。NAVERクラウド内の PostgreSQLインストール型のイメージで遠隔接続を許可するには次のような環境設定ファイルを変更する必要があります。

  • postgresql.conf

    基本的な PostgreSQL DBパラメータ設定ファイルです。PostgreSQLの Listen Address基本設定は Localhost(127.0.0.1)のみ許可されるため外部からのアクセスはできません。従って、この設定を IP *(全体)に変更後、サーバを再スタートする必要があります。基本ポート番号は 5432で、必要な場合変更可能です。

    vi /var/lib/pgsql/9.4/data/postgresql.conf
    * listen_addresses = '*'  # すべての IPに対するリモートアクセスを許可します。
    * port = 5432             # 希望する port番号を設定します。
    
  • pg_hba.conf

    host-based authenticationの略字で、認証関連設定ファイルです。HOST, DATABASE, USER, ADDRESS, METHOD情報で構成されています。

    基本的に下記のような設定が適用されるため、別途に内容を修正する必要はありません。
    アカウントに対するアクセス方式をパスワードに変更し、パスワードを md5に暗号化して送信します。

    vi /var/lib/pgsql/9.4/data/pg_hba.conf
    * host    all             all             0.0.0.0/0                 md5
    

PostgreSQLインストール型サービス管理

PostgreSQLインストール型サービスで関連する管理方法を説明します。

PostgreSQLイメージサーバ作成

PostgreSQLインストール型サービスでイメージサーバを作成すると、PostgreSQL DBインストールおよび daemonが Startupされた状態で提供されます。

サーバの作成

PostgreSQLイメージがインストールされたサーバを作成する方法を説明します。

Step 1. 管理コンソールアクセス

サーバを作成または削除設定のために管理コンソールにアクセスするには、NAVERクラウドプラットフォームから [コンソール] をクリックします。

Step 2. サーバの作成

①コンソール Services > Compute > Serverメニューへ移動します。

[サーバ作成] をクリックします。

Step 3. サーバイメージの選択

① イメージタイプ DBMS、DBMSイメージタイプ PostgreSQLをそれぞれ選択します。

② 使用するサーバイメージの右側 [次へ] をクリックします。

Step 4. サーバ設定

① 必要な情報を設定します。

[次へ] をクリックします。

Step 5. 認証キーの設定

認証キーの設定段階では、新しい認証キーを作成したり、既存の認証キーをそのまま使用します。

① 初めてのユーザーは、新しい認証キーの作成を選択し、認証キーの名前を入力します。

認証キーの作成と保存をクリックし、ダウンロードされた認証キーファイル(.pem)を安全な場所に保存します。

  • このファイルは、今後サーバのパスワードを作成するために使用されます。
  • 同様の pemファイルを使用しても、それぞれのサーバに異なるパスワードが作成されます。

[次へ] をクリックします。

Step 6. ファイアウォールの設定

ファイアウォール設定では、ACG(Access Control Group)を作成するか、保有 ACGを選択します。

①初めて作成する場合は、[ACG作成] をクリックします。

② ACG名を入力します。

③ ACGのルール設定でプロトコル、アクセスソース、許可ポートを入力して作成します。

  • アクセスソース: アクセスをする場所の IPアドレスや IPアドレスの帯域を記入します。たとえば、単一 IPアドレスの場合は10.64.51.205のみ入力し、10.64.51.XXX帯域からのすべてのアクセスが必要な場合は10.64.51.0/24を入力します。内部 Private IPアドレスが NAT方式で外部に出る場合は、Public IPアドレスを入力する必要があります。

  • 許可ポート: ポートを個別にオープンする場合は、必要なポート番号を許可ポート(サービス)に入力します。必要なポートが複数ある場合は、項目を追加して入力します。すべてのポートをオープンする場合は、1-65535を入力してください。(ただし、この場合、サーバはセキュリティが弱まるため、なるべく単一ポート(例: 5432)の入力を推奨します。なお、単一ポートを指定する際には、sshデフォルトポート(22)またはポートフォワーディングポートを必ず追加登録してください)。

④ 右側の [追加] をクリックします。

⑤ 設定を確認します。

[作成] をクリックします。

Step 7. 最終確認

上記のステップまで進んだ後、pemkeyファイルが自身のコンピュータの安全な場所に保管し、ACG設定を覚えておく必要があります。pemキーがないと作成したサーバにアクセスできませんので、特に注意してください。

[サーバ作成] をクリックします。

② サーバが作成されるまで待機します。

サーバ初期設定手続き

サーバを作成してサーバにアクセスするには、グローバル IPアドレスを設定するか、ポートフォワーディングを設定する必要があります。GUI(pgAdmin)Toolを利用するには、必ずグローバル IPアドレスを設定する必要があります。

グローバル IPアドレス設定

上記に生成したサーバに外部からアクセスするためには、グローバル IPアドレスの設定が必要です。

Server>Public IPメニューに移動します。

[グローバル IPアドレスの申し込み] をクリックします。

  • グローバル IPアドレスは、お持ちのサーバ数分申し込むことができます。

③ 作成されたサーバを選択します。

[次へ] をクリックします。

[作成] をクリックします。

⑥ 数分後に IPアドレスが割り当てられます。

  • 正常なグローバル IPアドレスが割り当てられると、ターミナルプログラムを利用して、49.50.172.79:22でそのサーバに直接アクセスできます。

ターミナルのためのポートフォワード設定

ポートフォワーディング情報に案内されたサーバ接続用のグローバル IPアドレスを利用してサーバに接続するためには、ポートフォワーディングを設定する必要があります。

Server > Serverメニューに移動します。

② サーバを選択し、上部の [ポートフォワーディングの設定] をクリックします。

③ 下画面のポートフォワーディング設定で、ssh接続のための外部ポートを登録します。

④ 外部ポートを登録し、[追加] をクリックします。

[適用] をクリックします。

  • 上記のポートフォワーディング設定により、postgresqlサーバ名に49.50.172.79:1234設定情報でアクセスできます。

サーバのパスワードを確認する

① 目的のサーバを選択します。

[サーバ管理および設定変更] メニューから [管理者パスワードの確認] をクリックします。

③ ファイルをインポートまたはクリックして、自身のコンピュータに保存されている pemファイルをアップロードします。

[パスワードの確認] をクリックします。

⑤ 最初の作成時に提供される管理者パスワードが表示されます。

  • 最初の作成時に提供される管理者パスワードを使用して最初にログインした後は、今後の管理のためにサーバからパスワードが変更されることがあります。

ターミナルを利用したアクセス

ターミナルを利用してサーバに NAVERクラウドプラットフォーム PostgreSQLに接続する方法を説明します。

グローバル IPアドレスからのアクセス

database-6-1-122_ko

① サーバの接続情報を入力します。

  • PORT: 基本ポート番号(22)
  • グローバル IPアドレス: 発行済みのグローバル IPアドレス(例: 49.50.172.79)

[開く] をクリックします。

database-6-1-123_ko

[はい] をクリックして接続します。

database-6-1-124_ko

④ アカウント名 rootを入力し、Enterキーを押します。

⑤ 管理者パスワードで確認したパスワードを入力します。

ポートフォワードを介したアクセス

database-6-1-125_ko

① サーバの接続情報を入力します。

  • PORT: ポートフォワーディングで設定したポート番号(例: 1234)
  • グローバル IPアドレス: ポートフォワーディング画面に案内されたサーバ接続用のグローバル IPアドレス(例: 49.50.172.79)

[開く] をクリックします。

database-6-1-126_ko

[はい] をクリックして接続します。

database-6-1-127_ko

④ アカウント名 rootを入力し、Enterキーを押します。

⑤ 管理者パスワードで確認したパスワードを入力します。

サーバイメージの作成後

  1. サーバ作成後すぐに使用しない場合は、セキュリティリスクを予防するために PostgreSQL Daemon ShutDownを推奨します。

  2. 作成された PostgreSQLの場合、パスワードが設定されていないため、必ずパスワードを設定します。

PostgreSQL起動/停止方法

PostgreSQL DB起動および停止は、以下のコマンドで実行します(rootアカウントで実行)。

-- CentOS 6
shell> service postgresql-9.4 start
shell> service postgresql-9.4 stop

-- CentOS 7
shell> systemctl start postgresql-9.4
shell> systemctl stop postgresql-9.4

-- CentOS 7
shell> systemctl start postgresql-13 
shell> systemctl stop postgresql-13

-- CentOS 7
shell> systemctl start postgresql-14 
shell> systemctl stop postgresql-14

DB駆動状態および Listenポートの確認方法

DB駆動状態は以下のようなコマンドで確認します(rootアカウントで実行)。コマンドの実行結果、CentOS 6/7共通で runningという単語が表示されなければなりません。

-- CentOS 6
Shell> service postgresql-9.4 status
-- CentOS 7
Shell> systemctl status postgresql-9.4
-- PostgreSQL 13.3 
Shell> systemctl status postgresql-13 
-- PostgreSQL 14.3 
Shell> systemctl status postgresql-14

Listenポートは以下のようなコマンドで確認します。コマンドの実行結果、5432ポートが listen状態である必要があります。

Shell> netstat -tunlp | grep post

PostgreSQLパスワードの変更方法

PostgreSQL Passwordポリシーによって初期パスワードは指定されません。最初の接続時に必ずパスワードを変更する必要があります。パスワードを変更するコマンドは以下のとおりです。

Shell> sudo su - postgres
Shell> psql
postgres=> alter user postgres with password '패스워드';

PostgreSQL DB portの変更方法

PostgreSQLアクセス時に使用されるポート番号5432は、ユーザーによく知られているポート番号であるため、セキュリティが不安な可能性があります。したがって、独自のポート番号を設定して使用することを推奨します。(例: 15432). さらに ACG(Access Control Group)の許容ポート番号(例: 15432)も同じように設定することを推奨します。

ポート番号は、以下のコマンドを使用して変更します。

  1. conf設定の変更
-- PostgreSQL 9.4 
vi /var/lib/pgsql/9.4/data/postgresql.conf port = 15432  #ポート番号変更  

-- PostgreSQL 13.3 
vi /var/lib/pgsql/13/data/postgresql.conf port = 15432  #ポート番号変更  

-- PostgreSQL 14.3 
vi /var/lib/pgsql/14/data/postgresql.conf port = 15432  #ポート番号変更 
  1. PostgreSQL再スタート

    # rootアカウント
    -- CentOS 6
    -- PostgreSQL 9.4 
    shell> service postgresql-9.4 restart
    
    -- CentOS 7
    -- PostgreSQL 9.4 
    shell> systemctl restart postgresql-9.4 
    -- PostgreSQL 13.3 
    shell> systemctl restart postgresql-13 
    -- PostgreSQL 14.3 
    shell> systemctl restart postgresql-14  
    
  2. 変更された Listenポート番号を確認

    shell> netstat -tunlp | grep post
    

ローカルから PostgreSQL DBアクセス方法

Shell> sudo su - postgres
Shell> psql
postgres=# \h  >> ヘルプを見る
postgres=# \q  >> 出る

ポート番号を変更した場合は、以下のように接続できます。

Shell> psql -p 15432
または
Shell> export PGPORT=15432
Shell> psql

遠隔サーバ(Webサーバまたは他の DB)からの PostgreSQLアクセス方法

Shell> sudo su - postgres
Shell> psql -h IPアドレス -p 5432 -U ユーザー名 -d DB名
       Password for user : パスワード入力
postgres=# \h  >> ヘルプを見る
postgres=# \q  >> 出る
参考

基本的に、リモート接続のための環境が設定されている必要があります。よい詳しい内容は、本文書の postgresql.confファイルの編集方法をご参照ください。

GUI(pgAdmin) Toolを利用した PostgreSQLアクセス方法

本人の PCの Windows環境で PostgreSQLサーバに接続する必要があるため、追加で PostgreSQLサーバにグローバル IPアドレスを割り当てる必要があります。Public IPメニューからグローバル IPアドレス申請を選択し、適用サーバ選択から該当サーバを選択します。

pgAdmin Toolに関する詳細については、以下のアドレスからご確認いただけます。

参考

基本的に、リモート接続のための環境が設定されている必要があります。よい詳しい内容は、本文書の postgresql.confファイルの編集方法をご参照ください。

基本 Data Directoty変更方法

  1. postgres daemon stop

    -- cent 6
    service postgresql-9.4 stop
    
    -- cent 7
    -- PostgreSQL 9.4 
    systemctl stop postgresql-9.4 
    
    -- PostgreSQL 13.3 
    shell> systemctl stop postgresql-13 
    
    -- PostgreSQL 14.3 
    shell> systemctl stop postgresql-14
    
  2. 新規ディレクトリ作成

    mkdir -p /var/lib/pgsql/NEW_PGDATA
    
  3. ディレクトリオーナーおよび権限変更(700必須)

    chown -R postgres:postgres /var/lib/pgsql/NEW_PGDATA
    chmod 700 -R /var/lib/pgsql/NEW_PGDATA
    
  4. postgresユーザーの.bash_profile環境変数の変更

    vi /var/lib/pgsql/.bash_profile
    変更前 : PGDATA=/var/lib/pgsql/9.4/data
    変更後 : PGDATA=/var/lib/pgsql/NEW_PGDATA
    
  5. pstgres service設定変更

  • インストールした versionに合わせて、以下の内容のうち ${version}部分を9.4、13、14のいずれかに置き換えます。

    -- cent 6
    # rootユーザーで実行
    vi /etc/init.d/postgresql-${version}
    >> PGDATAと PGLOGディレクトリパスを変更します。
    変更前 : PGDATA=/var/lib/pgsql/{version}/data
    変更後 : PGDATA=/var/lib/pgsql/NEW_PGDATA/data
    
    変更前 : PGLOG=/var/lib/pgsql/{version}/pgstartup.log
    変更前 : PGLOG=/var/lib/pgsql/NEW_PGDATA/pgstartup.log
    
    -- cent 7
    # rootユーザーで実行
    vi /usr/lib/systemd/system/postgresql-${version}.service
    変更前 : Environment=PGDATA=/var/lib/pgsql/${version}/data/
    変更後 : Environment=PGDATA=/var/lib/pgsql/NEW_PGDATA/data
    
  1. 新しい Postgres datadirへデータ移転
  • インストールした versionに合わせて、以下の内容のうち ${version}部分を9.4、13、14のいずれかに置き換えます。

    # postgresユーザーで実行
    mv /var/lib/pgsql/${version}/data /var/lib/pgsql/NEW_PGDATA/
    
  1. postmaster.optsファイルを削除

    rm /var/lib/pgsql/NEW_PGDATA/data/postmaster.opts
    
  2. postgres daemon reload & start

  • インストールした versionに合わせて、以下の内容のうち ${version}部分を9.4、13、14のいずれかに置き換えます。

    -- cent 6
    service postgresql-${version} reload
    service postgresql-${version} start
    -- cent 7
    systemctl daemon-reload
    systemctl start postgresql-${version}
    

PostgreSQLイメージサーバ返却

NAVERクラウドで PostgreSQLが生成されたサーバを返却する際、以下の手順以降に返却することを推奨します。

  1. PostgreSQLで保存したデータをバックアップし、ダウンロード後に別途保管

    Shell> sudo su - postgres
    Shell> pg_dumpall > '保存される dump file名'
    
  2. PostgreSQLサーバ停止

  3. PostgreSQLが保存されたデータディレクトリを削除

    • 例: rm -rf /var/lib/pgsql
  4. NAVERクラウドコンソールで停止->返却順に返却進行。

関連情報に移動する

以下の公式マニュアルで関連情報を確認できます。