Setting Up PostgreSQL on Compute Engine

このチュートリアルでは、Google Cloud Platform 上で PostgreSQL をほんの数分でセットアップする方法を示します。このチュートリアルに従って、Compute Engine 上の Ubuntu 仮想マシン インスタンス上で PostgreSQL を設定します。または、Cloud Launcher を使用して、Compute Engine 上で数クリックだけで PostgreSQL をセットアップすることもできます。

目標

  • Compute Engine インスタンス上で PostgreSQL をインストールする。
  • PostgreSQL をリモート アクセス用に設定する。
  • ポートを開くように Cloud Platform ファイアウォールを設定する。
  • リモート パソコンから PostgreSQL に接続する。

始める前に

Google Cloud Platform Console プロジェクトが必要になります。既存のプロジェクトを使用することも、ボタンをクリックして新しいプロジェクトを作成することもできます。

プロジェクトを作成

費用

このチュートリアルでは、以下を含む、Cloud Platform の課金対象となるコンポーネントを使用しています。

  • Google Compute Engine

料金計算ツールを使用して、予想使用量に基づいて費用の見積もりを作成します。新しい Cloud Platform ユーザーは無料トライアル版をご利用いただけます。

Compute Engine インスタンスの作成

デフォルトのマシンタイプが正常に動作することがこのチュートリアルの目的であるため、デフォルト設定を変更する必要はありません。本稼働環境では、アプリケーションに必要なコンピューティング パワーを特定する必要があります。一般に、データベース システムは、CPU の能力よりも I/O のボトルネックやハードディスクの速度により多く制約される傾向があります。

ほとんどの Linux ディストリビューションには、パッケージ マネージャと統合された PostgreSQL のいくつかのバージョンが含まれています。このチュートリアルでは、Ubuntu Trusty を使用します。これは、以前のバージョンでは使用できないいくつかの便利なツールが付属している PostgreSQL 9.3 が含まれているためです。

  1. GCP Console の [VM インスタンス] ページに移動します。

    [VM インスタンス] ページに移動

  2. [インスタンスを作成] をクリックします。
  3. [名前] をpostgres-tutorialに設定します。
  4. [ブートディスク] の [変更] をクリックし、ブートディスクの構成を開始します。
  5. OS イメージタブでUbuntu 14.04 LTSを選択します。

  6. [ブートディスクの種類] で[標準永続ディスク] を選択します。
  7. [選択] をクリックします。
  8. [ファイアウォール] で、[HTTP トラフィックを許可する] と [HTTPS トラフィックを許可する] を選択します。
  9. [作成] をクリックしてインスタンスを作成します。

新しいインスタンスが作成されるまで少し時間がかかります。

次の手順に備えて、[VM インスタンス] ページにとどまります。

PostgreSQL の設定

PostgreSQL をセットアップするには、それをインストールして、ユーザーをセットアップする必要があります。

PostgreSQL のインストール

次の手順に従って、Compute Engine インスタンス上で PostgreSQL をインストールします。

  1. 仮想マシン インスタンスのリストで、接続するインスタンスの行の SSH をクリックします。
  2. パッケージを更新します。SSH ターミナルで、次のコマンドを入力します。
    sudo apt-get update
  3. PSQL クライアントとサーバー インスツルメンテーションを含む PostgreSQL をインストールします。
    sudo apt-get -y install postgresql postgresql-client postgresql-contrib
    

PSQL を使用したセットアップの完了

PostgreSQL は、インストール中に、「postgres」という名前のデフォルト ユーザーを作成します。このユーザーにはまだパスワードが設定されていないため、それを設定する必要があります。

  1. SSH 端末で、root シェルを実行します。

    sudo -s
    
  2. root ではなく、ユーザー postgres として PSQL を実行し、postgres という名前のデータベースにアクセスします。

    sudo -u postgres psql postgres
    

    postgres=# のような PSQL コマンド プロンプトが表示されるはずです。

  3. 次のコマンドを入力して、パスワードを設定します。

    \password postgres
    
  4. プロンプトが表示されたら、選択したパスワードを入力して確認します。

  5. adminpack 拡張機能をインストールして、前にインストールしたサーバー インスツルメンテーションを有効にします。成功すると、コンソールに CREATE EXTENSION と表示されます。

    CREATE EXTENSION adminpack;
    
  6. \q」と入力して、PSQL を終了します。

  7. exit」と入力して、ルートシェルを終了します。

リモート接続

Postgres データベースに接続するには、Cloud Platform 上で設定ファイルを変更して、ファイアウォールのポートを開く必要があります。

PostgreSQL リモート アクセスの設定

デフォルトで、Postgres はリモート接続を許可しません。この設定を変更するには、pg_hba.conf という名前のファイルを変更します。次の手順に従ってください。

pg_hba.conf の編集

  1. SSH 端末ウィンドウで、pg_hba.conf を編集します。このチュートリアルでは、nano エディタを使用しますが、お好みのエディタに置き換えることができます。PostgreSQL バージョン 9.3 では、次のように入力します。

    sudo nano ../../etc/postgresql/9.3/main/pg_hba.conf
    
  2. ip4.me に移動して、ローカル パソコンの IPv4 アドレスを取得します。

    以降の手順で、この IP アドレスが必要になります。

  3. ファイルの一番下までスクロール ダウンして、次の行を追加します。

    # IPv4 remote connections for the tutorial:
    host    all             all           [YOUR_IPV4_ADDRESS]/32         md5
    
  4. [YOUR_IPV4_ADDRESS] は、ローカル パソコンのアドレスに置き換えてください。CIDR のサフィックス /32 が、このチュートリアルで指定する単一のアドレスに使用されることに注意してください。

  5. ファイルを保存して、エディタを終了します。nano で、Control+x を押してから、Return キーを使用してファイルを保存するためのプロンプトを受け入れます。nano はコンソール画面を正しくクリアしない場合があるため、nano を閉じた後に、コンソール上のテキストが読めない場合は、「clear」と入力して画面をクリアする必要があることに注意してください。

postgresql.conf の編集

  1. postgresql.conf を編集用に開きます。たとえば、次のコマンドを入力します。

    sudo nano ../../etc/postgresql/9.3/main/postgresql.conf
    
  2. #listen_addresses = 'localhost' で始まる行までスクロール ダウンします。

  3. # 記号を削除して、行をコメント解除します。

  4. localhost* に置き換えます。

    listen_addresses = '*'
    

    '*' の設定によって、Postgres はすべての IP アドレスをリッスンできるようになります。これは、一般的に使用される設定です。前の手順で hba.conf に IP アドレスを設定したときに、データベースへのアクセスを使用中のパソコンに制限しました。

  5. ファイルを保存して、エディタを終了します。

  6. データベース サービスを再起動します。SSH ターミナルで、次のように入力します。

    sudo service postgresql restart
    

ネットワーク ポートを開く

PostgreSQL は、ポート 5432 上でリモート接続を受け入れます。次の手順に従って、このポート上のトラフィックを有効にするファイアウォール ルールを追加します。

  1. Cloud Platform Console で、[ファイアウォール ルールの作成] ページに移動します。

    ファイアウォール ルールを作成

  2. [ネットワーク] フィールドで、ネットワークを [デフォルト] のままにします。

  3. [名前] フィールドに、次のように入力します。

    postgres-tutorial
    
  4. [ソース IP 範囲] に、hba.conf で使用した同じ IP アドレスを入力します。これは、ローカル パソコンの IP アドレスです。1.2.3.4/32 のように /32 サフィックスを含めることを忘れないでください。

  5. [許可対象プロトコルとポート] に、次のように入力します。

    tcp:5432
    
  6. [作成] をクリックします。

ファイアウォール ルールの設定

ファイアウォール ルールはグローバル リソースのため、すべてのインスタンスに対してこのルールを作成するのは一度だけであることに注意してください。

pgAdmin を使用した接続

これで、パソコンから PostgreSQL データベースに接続することができます。このチュートリアルでは、Postgres データベースを操作するための一般的なクライアント アプリケーションである pgAdmin を使用します。手順は次のとおりです。

  1. ローカル パソコン上で pgAdmin をインストールします。

  2. pgAdmin を実行します。

  3. サーバーを追加します。pgAdmin3 では、ツールバーの左側にある最初のアイコンをクリックすることができます。または、[ファイル] > [サーバの追加] をクリックします。

  4. [新しいサーバ登録] ウィンドウの [名前] フィールドに、次のように入力します。

    Postgres tutorial
    
  5. [VM インスタンス] ページに移動して、[外部 IP] 列で Compute Engine インスタンスの外部 IP アドレスを探します。

    VM インスタンスを開く

  6. [ホスト] フィールドに、Compute Engine インスタンスの外部 IP アドレスを入力します。

  7. [ポート] フィールドに、次のように入力します。

    5432
    
  8. [パスワード] フィールドに、postgres という名前のユーザーのために以前設定したパスワードを入力します。

  9. [OK] をクリックしてウィンドウを閉じます。

これで、Compute Engine インスタンス上でホストされている PostgreSQL データベースに接続されるはずです。pgAdmin を使用して、データベースとその他の設定を参照して変更することができます。pgAdmin には、データベースをリモートで管理するための PSQL コンソールも含まれています。

成功事例

このチュートリアルでは、PostgreSQL の単一マシン単一ディスク インストールの概要を示しました。本稼働環境では、高可用性、スケーラビリティ、アーカイブ、バックアップ、ロード バランシング、および災害復旧のための対策を検討することをおすすめします。災害復旧計画の詳細については、障害復旧計画の設計方法を参照してください。

パフォーマンスとデータの安全性を向上させるために、このチュートリアルで示したように、ブートディスク上でデータベース エンジンをインストールしてから、別々の永続ディスク上でデータ ストレージをセットアップします。データベース用のディスクの追加方法については、フォローアップ チュートリアルの PostgreSQL データ用の新しい永続ディスクのセットアップ方法を参照してください。

インターネット接続を備えているマシンの場合は、強力なパスワードのみを使用し、アクセスを信頼できる IP アドレスに制限します。

クリーンアップ

PostgreSQL チュートリアルが終了したら、Google Cloud Platform で作成したリソースについて今後料金が発生しないようにクリーンアップすることができます。以下のセクションで、このようなリソースを削除または無効にする方法を説明します。

プロジェクトの削除

課金を停止する最も簡単な方法は、チュートリアル用に作成したプロジェクトを削除することです。

プロジェクトを削除する手順は次のとおりです。

  1. GCP Console で [プロジェクト] ページに移動します。

    プロジェクト ページに移動

  2. プロジェクト リストで、削除するプロジェクトを選択し、[削除] をクリックします。
  3. ダイアログでプロジェクト ID を入力し、[シャットダウン] をクリックしてプロジェクトを削除します。

インスタンスの削除

Compute Engine インスタンスを削除する手順は次のとおりです。

  1. GCP Console の [VM インスタンス] ページに移動します。

    [VM インスタンス] ページに移動

  2. postgres-tutorialインスタンスの隣のチェックボックスをオンにします。
  3. ページの上部にある、[削除] ボタンをクリックし、インスタンスを削除します。

デフォルトのネットワークのファイアウォール ルールの削除

ファイアウォール ルールを削除するには:

  1. GCP Console で、[ファイアウォール ルール] ページに移動します。

    [ファイアウォール ルール] ページに移動

  2. 削除するファイアウォール ルールの横にあるチェックボックスをクリックします。
  3. ページの上部にある、[削除] ボタンをクリックし、ファイアウォール ルールを削除します。

次のステップ

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...