チュートリアル:Azure portal を使用して Azure Database for PostgreSQL - 単一サーバーを設計する

適用対象: Azure Database for PostgreSQL - 単一サーバー

重要

Azure Database for PostgreSQL - シングル サーバーは廃止パスにあります。 Azure Database for PostgreSQL - フレキシブル サーバーにアップグレードすることを強くお勧めします。 Azure Database for PostgreSQL - フレキシブル サーバーへの移行の詳細については、Azure Database for PostgreSQL 単一サーバーの現状に関するページを参照してください。

Azure Database for PostgreSQL は、高可用性 PostgreSQL データベースをクラウドで実行、管理、および拡張することができる、管理されたサービスです。 Azure Portal を使用して、簡単にサーバーを管理し、データベースを設計することができます。

このチュートリアルでは、Azure Portal を使用して次のことを行う方法を説明します。

  • Azure Database for PostgreSQL サーバーの作成
  • サーバーのファイアウォールの構成
  • psql ユーティリティを使用したデータベースの作成
  • サンプル データを読み込む
  • クエリ データ
  • データの更新
  • データの復元

前提条件

Azure サブスクリプションをお持ちでない場合は、開始する前に無料アカウントを作成してください。

Azure Database for PostgreSQL の作成

Azure Database for PostgreSQL サーバーは、定義済みの一連のコンピューティング リソースとストレージ リソースを使って作成されます。 サーバーは、Azure リソース グループ内に作成されます。

Azure Database for PostgreSQL サーバーを作成するには、次の手順に従います。

  1. Azure Portal の左上隅にある [リソースの作成] を選択します。

  2. [新規] ページで [データベース] を選択し、 [データベース] ページで [Azure Database for PostgreSQL] を選択します。 Azure Database for PostgreSQL - データベースの作成

  3. [単一サーバー] デプロイ オプションを選択します。

    Azure Database for PostgreSQL の [単一サーバー] デプロイ オプションを選択します

  4. [基本] フォームに以下の情報を入力します。

    サーバーの作成

    設定 推奨値 説明
    サブスクリプション お使いのサブスクリプション名 サーバーに使用する Azure サブスクリプション。 複数のサブスクリプションをお持ちの場合は、リソースの課金対象となるサブスクリプションを選択してください。
    Resource group myresourcegroup 新しいリソース グループ名、またはサブスクリプションの既存のリソース グループ名。
    サーバー名 mydemoserver Azure Database for PostgreSQL サーバーを識別する一意の名前。 指定したサーバー名にドメイン名 postgres.database.azure.com が追加されます。 サーバー名に含めることができるのは、英小文字、数字、ハイフン (-) のみです。 3 文字以上 63 文字以内にする必要があります。
    データ ソース なし [なし] を選択し、最初から新しいサーバーを作成します (既存の Azure Database for PostgreSQL サーバーの geo バックアップからサーバーを作成している場合は、 [Backup] を選択します)。
    管理者ユーザー名 myadmin サーバーに接続するときに使用する独自のログイン アカウント。 管理者のログイン名に azure_superuserazure_pg_adminadminadministratorrootguest、または public は使用できません。 pg_ で始めることはできません。
    Password お使いのパスワード サーバー管理者アカウントの新しいパスワード。 8 ~ 128 文字にする必要があります。 パスワードには、英大文字、英小文字、数字 (0 から 9)、英数字以外の文字 (!、$、#、% など) のうち、3 つのカテゴリの文字が含まれている必要があります。
    場所 ユーザーに最も近いリージョン ユーザーに最も近い場所。
    Version 最新のメジャー バージョン 他の特定の要件がない場合は、最新の PostgreSQL メジャー バージョン。
    コンピューティングとストレージ 汎用Gen 52 仮想コア5 GB7 日地理冗長 新しいサーバーのコンピューティング、ストレージ、およびバックアップ構成。 [サーバーの構成] を選択します。 次に、 [汎用] タブを選択します。Gen 5、"4 仮想コア"、100 GB、および "7 日" は、それぞれ [コンピューティング世代][仮想コア][ストレージ] 、および [バックアップの保有期間] の既定値です。 これらのスライダーはそのままにすることも、調整することもできます。 サーバー バックアップを geo 冗長ストレージで有効にするには、 [バックアップ冗長オプション] から [地理冗長] を選択します。 この価格レベルの選択を保存するには、 [OK] を選択します。 次のスクリーンショットは、これらの選択を示しています。

    注意

    低負荷なコンピューティングと I/O がワークロードに適している場合は、Basic 価格レベルの使用を検討してください。 Basic 価格レベルで作成されたサーバーは後で General Purpose またはメモリ最適化にスケーリングできないことに注意してください。 詳細については、価格に関するページを参照してください。

    [価格レベル] ペイン

    ヒント

    自動拡張が有効になっている場合、サーバーは、割り当てられた制限に近づくとワークロードに影響を与えずにストレージを増大させます。

  5. [確認および作成] を選択して、選択内容を確認します。 [作成] を選択して、サーバーをプロビジョニングします。 この操作には数分かかることがあります。

  6. ツール バーの [通知] アイコン (ベル) を選択して、デプロイ プロセスを監視します。 デプロイが完了したら、 [ダッシュボードにピン留めする] を選択できます。これにより、このサーバーのタイルが、サーバーの [概要] ページへのショートカットとして、Azure Portal ダッシュボードに作成されます。 [リソースに移動] を選択すると、サーバーの [概要] ページが開きます。

    [通知] ペイン

    既定では、postgres データベースがサーバーに作成されます。 postgres は既定のデータベースで、ユーザー、ユーティリティ、サード パーティ製のアプリケーションが使用するためのものです。 (その他の既定のデータベースは azure_maintenance です。その機能は、管理されたサービス プロセスをユーザーのアクションから分離することです。このデータベースにはアクセスできません)

サーバーレベルのファイアウォール規則の構成

Azure Database for PostgreSQL サービスは、サーバーレベルでファイアウォールを使用します。 既定では、このファイアウォールにより、外部のすべてのアプリケーションやツールから、サーバーまたはサーバー上のすべてのデータベースへの接続が禁止されます。接続を許可するためには、特定の IP アドレス範囲に対して、ファイアウォールを開放するファイアウォール規則を作成する必要があります。

  1. デプロイが完了したら、左側のメニューの [すべてのリソース] を選択し、サーバー名「mydemoserver」を入力して、ご利用の新しく作成したサーバーを検索します。 検索結果に示されたサーバー名を選択します。 サーバーの [概要] ページが開き、さらに多くの構成オプションが表示されます。

    Azure Database for PostgreSQL - サーバーの検索

  2. サーバーのページで、 [接続のセキュリティ] を選択します。

  3. [規則名] の下のテキスト ボックス内を選択し、接続を許可する IP の範囲を指定する新しいファイアウォール規則を追加します。 IP 範囲を入力します。 [保存] を選択します。

    Azure Database for PostgreSQL - ファイアウォール規則の作成

  4. [保存] を選択してから [X] を選択して、[接続のセキュリティ] ページを閉じます。

    注意

    Azure PostgreSQL サーバーはポート 5432 を介して通信します。 企業ネットワーク内から接続しようとしても、ポート 5432 での送信トラフィックがネットワークのファイアウォールで禁止されている場合があります。 その場合、会社の IT 部門によってポート 5432 が開放されない限り、Azure SQL Database サーバーに接続することはできません。

接続情報の取得

Azure Database for PostgreSQL サーバーを作成したときに、既定の postgres データベースも作成されています。 データベース サーバーに接続するには、ホスト情報とアクセス資格情報を提供する必要があります。

  1. Azure portal の左側のメニューにある [すべてのリソース] を選択し、作成したばかりのサーバーを検索します。

    Azure Database for PostgreSQL - サーバーの検索

  2. サーバー名 [mydemoserver] を選択します。

  3. サーバーの [概要] ページを選択します。 [サーバー名][サーバー管理者ログイン名] の値を書き留めておきます。

    Azure Database for PostgreSQL - サーバー管理者ログイン

psql を使用した PostgreSQL データベースへの接続

クライアント コンピューターに PostgreSQL がインストールされている場合は、psql のローカル インスタンスまたは Azure Cloud Console を使用して Azure PostgreSQL サーバーに接続できます。 ここでは psql コマンド ライン ユーティリティを使用して、Azure Database for PostgreSQL サーバーに接続しましょう。

  1. 次の psql コマンドを実行して Azure Database for PostgreSQL データベースに接続します。

    psql --host=<servername> --port=<port> --username=<user@servername> --dbname=<dbname>
    

    たとえば次のコマンドは、アクセス資格情報を使用して、PostgreSQL サーバー mydemoserver.postgres.database.azure.com にある既定のデータベース postgres に接続します。 パスワードの入力を求められたら、選択した <server_admin_password> を入力します。

    psql --host=mydemoserver.postgres.database.azure.com --port=5432 --username=myadmin@mydemoserver --dbname=postgres
    

    ヒント

    Postgres への接続に URL パスを使用する場合は、%40 を使用してユーザー名の @ 記号を URL エンコードします。 たとえば、psql の接続文字列は次のようになります。

    psql postgresql://myadmin%40mydemoserver@mydemoserver.postgres.database.azure.com:5432/postgres
    
  2. サーバーに接続したら、プロンプトで空のデータベースを作成します。

    CREATE DATABASE mypgsqldb;
    
  3. プロンプトで次のコマンドを実行し、新しく作成したデータベース mypgsqldb に接続を切り替えます。

    \c mypgsqldb
    

データベースのテーブルを作成する

Azure Database for PostgreSQL に接続する方法を説明したので、次はいくつかの基本的なタスクを実行します。

最初に、テーブルを作成してデータを読み込みます。 次の SQL コードを使用して、インベントリ情報を追跡するテーブルを作成しましょう。

CREATE TABLE inventory (
	id serial PRIMARY KEY, 
	name VARCHAR(50), 
	quantity INTEGER
);

次のように入力すると、新しく作成されたテーブルが一覧に表示されます。

\dt

テーブルにデータを読み込む

テーブルを作成したので、次はデータを挿入します。 開いているコマンド プロンプト ウィンドウで、次のクエリを実行してデータ行を挿入します。

INSERT INTO inventory (id, name, quantity) VALUES (1, 'banana', 150); 
INSERT INTO inventory (id, name, quantity) VALUES (2, 'orange', 154);

これで、先ほど作成したインベントリ テーブルにサンプル データが 2 行挿入されました。

クエリを実行し、テーブル内のデータを更新する

次のクエリを実行して、インベントリ データベース テーブルから情報を取得します。

SELECT * FROM inventory;

さらに、テーブル内のデータを更新することもできます。

UPDATE inventory SET quantity = 200 WHERE name = 'banana';

データを取得すると、更新された値を見ることができます。

SELECT * FROM inventory;

以前の特定の時点にデータを復元する

テーブルを誤って削除した場合を想定してください。 データの復元は容易なことではありません。 Azure Database for PostgreSQL では、サーバーのバックアップがある任意の時点 (設定したバックアップ リテンション期間によって決まります) に遡って、新しいデータベースに過去のデータを復元できます。 この新しいサーバーを使用して、削除されたデータを復元することができます。 次の手順を実行して、インベントリ テーブルを追加する前の状態に mydemoserver サーバーを復元します。

  1. サーバーの Azure Database for PostgreSQL の [概要] ページで、ツール バーの [復元] を選択します。 [復元] ページが開きます。

    サーバーの Azure Database for PostgreSQL の **[概要]** ページのスクリーンショット。[復元] ボタンが強調表示されている。

  2. [復元] フォームに必要な情報を入力します。

    Azure portal - [復元] フォームのオプション

    • 復元ポイント:サーバーが変更される前の日時を選択します。
    • 対象サーバー:復元先の新しいサーバー名を指定します。
    • [場所] :リージョンを選択することはできません。既定では、ソース サーバーと同じ場所になります。
    • 価格レベル:サーバーを復元するときは、この値を変更することはできません。 ソース サーバーと同じレベルになります。
  3. [OK] を選択して、テーブルが削除される前の状態にサーバーを復元します。 異なる時点にサーバーを復元すると、価格レベルのリテンション期間内であれば、指定した時点の元サーバーと同じサーバー内に、新しいサーバーが複製されます。

リソースをクリーンアップする

前の手順では、サーバー グループ内に Azure リソースを作成しました。 これらのリソースが将来不要であると思われる場合は、サーバー グループを削除します。 サーバー グループの [概要] ページで、 [削除] ボタンを押します。 ポップアップ ページでメッセージが表示されたら、サーバー グループの名前を確認し、最後の [削除] ボタンを選択します。

次のステップ

このチュートリアルでは、Azure Portal とその他のユーティリティを使用して、次のことを行う方法を説明しました。

  • Azure Database for PostgreSQL サーバーの作成
  • サーバーのファイアウォールの構成
  • psql ユーティリティを使用したデータベースの作成
  • サンプル データを読み込む
  • クエリ データ
  • データの更新
  • データの復元