クイック スタート:Azure CLI を使用して 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 Cloud ShellAzure CLI コマンドを使用して、単一の Azure Database for PostgreSQL サーバーを 5 分で作成する方法について説明します。

ヒント

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

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

前提条件

  • Azure Cloud Shell で Bash 環境を使用します。 詳細については、「Azure Cloud Shell の Bash のクイックスタート」を参照してください。

  • CLI リファレンス コマンドをローカルで実行する場合、Azure CLI をインストールします。 Windows または macOS で実行している場合は、Docker コンテナーで Azure CLI を実行することを検討してください。 詳細については、「Docker コンテナーで Azure CLI を実行する方法」を参照してください。

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

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

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

Azure Cloud Shell を起動する

Azure Cloud Shell は無料のインタラクティブ シェルです。この記事の手順は、Azure Cloud Shell を使って実行することができます。 一般的な Azure ツールが事前にインストールされており、アカウントで使用できるように構成されています。

Cloud Shell を開くには、コード ブロックの右上隅にある [使ってみる] を選択します。 https://shell.azure.com に移動して、別のブラウザー タブで Cloud Shell を起動することもできます。

Cloud Shell が開いたら、お使いの環境に対して Bash が選択されていることを確認します。 後続のセッションでは、Bash 環境で Azure CLI を使用します。[コピー] を選択してコードのブロックをコピーし、Cloud Shell に貼り付けます。その後、Enter キーを押してそれを実行します。

Azure へのサインイン

Cloud Shell は、サインインした最初のアカウントで自動的に認証されます。 別のサブスクリプションを使用してサインインするには、次のスクリプトを使用し、<Subscription ID> をご使用の Azure サブスクリプション ID に置き換えます。 Azure サブスクリプションをお持ちでない場合は、開始する前に Azure 無料アカウントを作成してください。

subscription="<subscriptionId>" # add subscription here

az account set -s $subscription # ...or use 'az login'

詳細については、アクティブなサブスクリプションの設定または対話形式のログインに関する記事を参照してください

パラメーターの値を設定する

次の値は、データベースと必要なリソースを作成するために、後続のコマンドで使用されます。 サーバー名は、すべての Azure でグローバルに一意である必要があるため、サーバー名の作成に $RANDOM 関数が使用されます。

場所は、ご使用の環境に合わせて変更してください。 0.0.0.0 を、ご使用の特定の環境に合った IP アドレスの範囲に置き換えます。 ご使用のコンピューターのパブリック IP アドレスを使用して、サーバーへのアクセスをその IP アドレスのみに制限します。

# Variable block
let "randomIdentifier=$RANDOM*$RANDOM"
location="East US"
resourceGroup="msdocs-postgresql-rg-$randomIdentifier"
tag="create-postgresql-server-and-firewall-rule"
server="msdocs-postgresql-server-$randomIdentifier"
sku="GP_Gen5_2"
login="azureuser"
password="Pa$$w0rD-$randomIdentifier"
# Specify appropriate IP address values for your environment
# to limit / allow access to the PostgreSQL server
startIp=0.0.0.0
endIp=0.0.0.0
echo "Using resource group $resourceGroup with login: $login, password: $password..."

リソース グループを作成する

az group create コマンドを使用して、リソース グループを作成します。 Azure リソース グループとは、Azure リソースのデプロイと管理に使用する論理コンテナーです。 次の例では、myResourceGroup という名前のリソース グループを eastus に作成します。

# Create a resource group
echo "Creating $resourceGroup in $location..."
az group create --name $resourceGroup --location "$location" --tags $tag

サーバーの作成

az postgres server create コマンドを使用して、サーバーを作成します。

# Create a PostgreSQL server in the resource group
# Name of a server maps to DNS name and is thus required to be globally unique in Azure.
echo "Creating $server in $location..."
az postgres server create --name $server --resource-group $resourceGroup --location "$location" --admin-user $login --admin-password $password --sku-name $sku

注意

  • サーバー名に含めることができるのは、英小文字、数字、およびハイフン (-) のみであり、 3 から 63 文字にする必要があります。 詳細については、Azure Database for PostgreSQL の名前付け規則に関するページを参照してください。
  • 管理ユーザーのユーザー名を azure_superuseradminadministratorrootguest、または public にすることはできません。
  • パスワードには、英大文字、英小文字、数字、英数字以外の文字のうち、3 つのカテゴリの 8 ~ 128 の文字が含まれている必要があります。
  • SKU について詳しくは、「Azure Database for PostgreSQL の価格」をご覧ください。

重要

サーバーベースのファイアウォール規則を構成する

サーバーに接続するためのアクセス権をローカル環境に付与するには、az postgres server firewall-rule create コマンドを使用して、ファイアウォール規則を作成します。

# Configure a firewall rule for the server 
echo "Configuring a firewall rule for $server for the IP address range of $startIp to $endIp"
az postgres server firewall-rule create --resource-group $resourceGroup --server $server --name AllowIps --start-ip-address $startIp --end-ip-address $endIp

ヒント

対象の IP アドレスがわからない場合は、WhatIsMyIPAddress.com にアクセスして取得します。

注意

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

サーバーベースのファイアウォール規則を一覧表示する

既存のサーバー ファイアウォール規則の一覧を表示するには、az postgres server firewall-rule list コマンドを実行します。

# List firewall rules for the server
echo "List of server-based firewall rules for $server"
az postgres server firewall-rule list --resource-group $resourceGroup --server-name $server
# You may use the switch `--output table` for a more readable table format as the output.

既定では、JSON 形式でファイアウォール規則の一覧が出力されます (規則が存在する場合)。 出力をもっとわかりやすい表形式にする場合は、--output table スイッチを使用することもできます。

接続情報の取得

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

az postgres server show --resource-group $resourceGroup --name $server

administratorLoginfullyQualifiedDomainName の値を書き留めておきます。

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

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

psql --host=<server_name>.postgres.database.azure.com --port=5432 --username=<admin_user>@<server_name> --dbname=postgres

ヒント

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

psql postgresql://<admin_user>%40<server_name>@<server_name>.postgres.database.azure.com:5432/postgres

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

次のように az group delete コマンドを使用して、リソース グループと、それに関連付けられているすべてのリソースを削除します。ただし、これらのリソースが継続的に必要でない場合に限ります。 これらのリソースの一部は、削除や作成に時間がかかる場合があります。

az group delete --name $resourceGroup

次の手順