Azure Database for PostgreSQL でプライベート アクセスを使用するサーバー グループを作成する - Hyperscale (Citus)

適用対象: Azure Database for PostgreSQL - Hyperscale (Citus)

このチュートリアルでは、仮想マシンと Hyperscale (Citus) サーバー グループを作成し、それらの間にプライベート アクセスを確立します。

仮想ネットワークの作成

最初に、リソース グループと仮想ネットワークを設定します。 それにより、サーバー グループと仮想マシンが保持されます。

az group create \
	--name link-demo \
	--location eastus

az network vnet create \
	--resource-group link-demo \
	--name link-demo-net \
	--address-prefix 10.0.0.0/16

az network nsg create \
	--resource-group link-demo \
	--name link-demo-nsg

az network vnet subnet create \
	--resource-group link-demo \
	--vnet-name link-demo-net \
	--name link-demo-subnet \
	--address-prefixes 10.0.1.0/24 \
	--network-security-group link-demo-nsg

仮想マシンの作成

デモンストレーション用に、Debian Linux を実行する仮想マシンと、psql PostgreSQL クライアントを使用します。

# provision the VM

[!INCLUDE[applies-to-postgresql-hyperscale](../includes/applies-to-postgresql-hyperscale.md)]
az vm create \
	--resource-group link-demo \
	--name link-demo-vm \
	--vnet-name link-demo-net \
	--subnet link-demo-subnet \
	--nsg link-demo-nsg \
	--public-ip-address link-demo-net-ip \
	--image debian \
	--admin-username azureuser \
	--generate-ssh-keys

# install psql database client

[!INCLUDE[applies-to-postgresql-hyperscale](../includes/applies-to-postgresql-hyperscale.md)]
az vm run-command invoke \
	--resource-group link-demo \
	--name link-demo-vm \
	--command-id RunShellScript \
	--scripts \
		"sudo touch /home/azureuser/.hushlogin" \
		"sudo DEBIAN_FRONTEND=noninteractive apt-get update" \
		"sudo DEBIAN_FRONTEND=noninteractive apt-get install -q -y postgresql-client"
  1. Azure Portal の左上隅にある [リソースの作成] を選択します。

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

  3. デプロイ オプションについては、 [Hyperscale (Citus) サーバー グループ] の下にある [作成] ボタンを選択します。

  4. 新しいサーバーの詳細フォームには次の情報を入力してください。

    • リソース グループ: link-demo
    • サーバー グループ名: link-demo-sg
    • 場所: East US
    • パスワード: (任意)

    Note

    サーバー グループ名によって DNS エントリが作成されるため、Azure 全体で一意のものにしてください。 link-demo-sg を使用できない場合は、別の名前を選択し、それに応じて以下の手順を調整してください。

  5. [サーバー グループの構成] を選択してから Basic プランを選択し、 [保存] を選択します。

  6. ページの下部にある [Next: Networking](次へ: ネットワーク) を選択します。

  7. [プライベート アクセス] を選択します。

  8. [プライベート エンドポイントの作成] という画面が表示されます。 こちらの値を入力して [OK] を選択します。

    • リソース グループ: link-demo
    • 場所: (US) East US
    • 名前: link-demo-sg-c-pe1
    • 対象サブリソース: coordinator
    • 仮想ネットワーク: link-demo-net
    • サブネット: link-demo-subnet
    • プライベート DNS ゾーンと統合する: はい
  9. プライベート エンドポイントを作成したら、 [確認と作成] を選択して、Hyperscale (Citus) サーバー グループを作成します。

仮想マシンからサーバー グループにプライベートにアクセスする

プライベート リンクを使用すると、仮想マシンからサーバー グループに接続でき、外部ホストがそうするのを防止します。 この手順では、仮想マシン上の psql データベース クライアントがサーバー グループのコーディネーター ノードと通信できることを確認します。

# save db URI

[!INCLUDE[applies-to-postgresql-hyperscale](../includes/applies-to-postgresql-hyperscale.md)]
#
# obtained from Settings -> Connection Strings in the Azure portal

[!INCLUDE[applies-to-postgresql-hyperscale](../includes/applies-to-postgresql-hyperscale.md)]
#
# replace {your_password} in the string with your actual password

[!INCLUDE[applies-to-postgresql-hyperscale](../includes/applies-to-postgresql-hyperscale.md)]
PG_URI='host=c.link-demo-sg.postgres.database.azure.com port=5432 dbname=citus user=citus password={your_password} sslmode=require'

# attempt to connect to server group with psql in the virtual machine

[!INCLUDE[applies-to-postgresql-hyperscale](../includes/applies-to-postgresql-hyperscale.md)]
az vm run-command invoke \
	--resource-group link-demo \
	--name link-demo-vm \
	--command-id RunShellScript \
	--scripts "psql '$PG_URI' -c 'SHOW citus.version;'" \
	--query 'value[0].message' \
	| xargs printf

Citus のバージョン番号が出力に表示されるはずです。 その場合は、psql がコマンドを実行でき、プライベート リンクが機能しました。

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

仮想マシンと Hyperscale (Citus) サーバー グループの間にプライベート リンクを作成する方法について説明しました。 これで、リソースをプロビジョニング解除できます。

リソース グループを削除すると、内部のリソースがプロビジョニング解除されます。

az group delete --resource-group link-demo

# press y to confirm

[!INCLUDE[applies-to-postgresql-hyperscale](../includes/applies-to-postgresql-hyperscale.md)]

次のステップ