クイック スタート:Azure CLI を使用して Azure Database for PostgreSQL サーバーを作成する

このクイックスタートでは、Azure Cloud ShellAzure CLI コマンドを使用して、単一の Azure Database for PostgreSQL サーバーを 5 分で作成する方法について説明します。 Azure サブスクリプションをお持ちでない場合は、開始する前に無料アカウントを作成してください。

前提条件

  • Azure Cloud Shell で Bash 環境を使用します。

    新しいウィンドウで Cloud Shell を起動する

  • 必要に応じて、Azure CLI をインストールして、CLI リファレンス コマンドを実行します。

    • ローカル インストールを使用する場合は、az login コマンドを使用して Azure CLI にサインインします。 認証プロセスを完了するには、ターミナルに表示される手順に従います。 その他のサインイン オプションについては、Azure CLI でのサインインに関するページを参照してください。

    • 初回使用時にインストールを求められたら、Azure CLI 拡張機能をインストールします。 拡張機能の詳細については、Azure CLI で拡張機能を使用する方法に関するページを参照してください。

    • az version を実行し、インストールされているバージョンおよび依存ライブラリを検索します。 最新バージョンにアップグレードするには、az upgrade を実行します。

  • この記事では、Azure CLI のバージョン 2.0 以降が必要です。 Azure Cloud Shell を使用している場合は、最新バージョンが既にインストールされています。

    ヒント

    現在プレビュー段階にあるよりシンプルな az postgres up Azure CLI コマンドの使用を検討してください。 こちらのクイック スタート をお試しください。

  • az account set コマンドを使用して、お使いのアカウントの特定のサブスクリプション ID を選択します。

    • az login 出力の id の値をメモしておいて、このコマンドの subscription 引数の値として使用します。

      az account set --subscription <subscription id>
      
    • 複数のサブスクリプションをお持ちの場合は、リソースが課金の対象となる適切なサブスクリプションを選択してください。 お使いのすべてのサブスクリプションを取得するには、az account list を使用します。

Azure Database for PostgreSQL サーバーの作成

az group create コマンドを使用して、Azure リソース グループを作成し、このリソース グループ内に PostgreSQL サーバーを作成します。 一意の名前を指定する必要があります。 次の例では、westus の場所に myresourcegroup という名前のリソース グループを作成します。

az group create --name myresourcegroup --location westus

az postgres server create コマンドを使用して、Azure Database for PostgreSQL サーバーを作成します。 1 つのサーバーに複数のデータベースを含めることができます。

az postgres server create --resource-group myresourcegroup --name mydemoserver  --location westus --admin-user myadmin --admin-password <server_admin_password> --sku-name GP_Gen5_2 

上記の引数の詳細を次に示します。

設定 値の例 説明
name mydemoserver Azure Database for PostgreSQL サーバーを識別する一意の名前。 サーバー名に含めることができるのは、英小文字、数字、およびハイフン (-) のみであり、 3 から 63 文字にする必要があります。 詳細については、Azure Database for PostgreSQL の名前付け規則に関するページを参照してください。
resource-group myresourcegroup Azure リソース グループの名前。
location westus サーバーの Azure の場所。
admin-user myadmin 管理者ログインのユーザー名。 これを azure_superuseradminadministratorrootguestpublic にすることはできません。
admin-password セキュリティで保護されたパスワード 管理者ユーザーのパスワード。 これには、次のうちの 3 つのカテゴリの、8 から 128 文字が含まれている必要があります。英大文字、英小文字、数字、英数字以外の文字のうち、3 つのカテゴリの文字が含まれている必要があります。
sku-name GP_Gen5_2 価格レベルとコンピューティング構成の名前。 省略表現の {価格レベル}" {コンピューティング世代} "{仮想コア} という規則に従います。 詳しくは、「Azure Database for PostgreSQL の価格」をご覧ください。

重要

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

既定では、作成したサーバーにはパブリックにアクセスすることはできません。ファイアウォール規則で保護されています。 サーバーに接続するためのアクセス権をローカル環境に付与するには、az postgres server firewall-rule create コマンドを使用して、サーバーにファイアウォール規則を構成できます。

次の例では、特定の IP アドレス 192.168.0.1 からの接続を許可する、AllowMyIP と呼ばれるファイアウォール規則を作成しています。 実際の接続元の場所に対応する IP アドレスまたは IP アドレスの範囲で置き換えます。 対象の IP アドレスがわからない場合は、WhatIsMyIPAddress.com にアクセスして取得します。

az postgres server firewall-rule create --resource-group myresourcegroup --server mydemoserver --name AllowMyIP --start-ip-address 192.168.0.1 --end-ip-address 192.168.0.1

注意

接続の問題を回避するには、ネットワークのファイアウォールでポート 5432 が許可されていることを確認します。 Azure Database for PostgreSQL サーバーでは、このポートを使用します。

接続情報の取得

対象のサーバーに接続するには、ホスト情報とアクセス資格情報を入力します。

az postgres server show --resource-group myresourcegroup --name mydemoserver

結果は JSON 形式です。 administratorLoginfullyQualifiedDomainName の値を書き留めておきます。

{
  "administratorLogin": "myadmin",
  "earliestRestoreDate": null,
  "fullyQualifiedDomainName": "mydemoserver.postgres.database.azure.com",
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.DBforPostgreSQL/servers/mydemoserver",
  "location": "westus",
  "name": "mydemoserver",
  "resourceGroup": "myresourcegroup",
  "sku": {
    "capacity": 2,
    "family": "Gen5",
    "name": "GP_Gen5_2",
    "size": null,
    "tier": "GeneralPurpose"
  },
  "sslEnforcement": "Enabled",
  "storageProfile": {
    "backupRetentionDays": 7,
    "geoRedundantBackup": "Disabled",
    "storageMb": 5120
  },
  "tags": null,
  "type": "Microsoft.DBforPostgreSQL/servers",
  "userVisibleState": "Ready",
  "version": "9.6"
}

psql を使用して Azure Database for PostgreSQL サーバーに接続する

psql クライアントは、PostgreSQL サーバーに接続するための一般的な選択肢です。 Azure Cloud Shell で psql を使用して、対象のサーバーに接続できます。 また、可能な場合は、ローカル環境で psql を使用することもできます。 空のデータベース postgres は、新しい PostgreSQL サーバーで自動的に作成されます。 次のコードに示すように、そのデータベースを使用して psql に接続できます。

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

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

これらのリソースが別のクイックスタートまたはチュートリアルで不要である場合、次のコマンドを実行して削除することができます。

az group delete --name myresourcegroup

新しく作成したサーバーを 1 つだけ削除する場合は、az postgres server delete コマンドを実行できます。

az postgres server delete --resource-group myresourcegroup --name mydemoserver

次のステップ