Azure Cosmos DB for PostgreSQL のプライベート アクセスを使用してクラスターに接続する
適用対象: Azure Cosmos DB for PostgreSQL (PostgreSQL の Citus データベース拡張機能を利用)
このチュートリアルでは、仮想マシン (VM) と Azure Cosmos DB for PostgreSQL クラスターを作成し、それらの間にプライベート アクセスを確立します。
前提条件
- アクティブなサブスクリプションが含まれる Azure アカウント。 お持ちでない場合は、無料のアカウントを作成してください。
- Azure CLI がインストールされていること (コードをローカルで実行したい場合)。 コードは Azure Cloud Shell 内で実行することもできます。
仮想ネットワークの作成
最初に、クラスターと VM を保持するリソース グループと仮想ネットワークを設定します。
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 を実行する VM と、psql
PostgreSQL クライアントを作成します。
# provision the VM
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 Debian11 \
--admin-username azureuser \
--generate-ssh-keys
# install psql database client
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"
プライベート リンクを使用してクラスターを作成する
Azure Portal で Azure Cosmos DB for PostgreSQL クラスターを作成します。
ポータルの左上隅にある [リソースの作成] を選択します。
[リソースの作成] ページで、[データベース] を選択してから、[Azure Cosmos DB] を選択します。
[API オプションの選択] ページの [PostgreSQL] タイルで、[作成] を選択します。
[Azure Cosmos DB for PostgreSQL クラスターの作成] ページで、次の情報を入力します。
[リソース グループ]: [新規] を選択してから、「link-demo」と入力します。
[クラスター名]: 「link-demo-sg」と入力します。
Note
クラスター名によって DNS エントリが作成されるため、クラスター名は Azure 全体で一意のものにしてください。
link-demo-sg
を使用できない場合は、別の名前を入力し、それに応じて以下の手順を調整してください。[場所]: [米国東部] を選択します。
[パスワード]: パスワードを入力して確認します。
[次へ: ネットワーク] を選択します。
[ネットワーク] タブの [接続方法] で、[プライベート アクセス] を選択します。
[プライベート エンドポイントの作成] 画面で、次の値を入力または選択します。
- リソース グループ:
link-demo
- 場所:
(US) East US
- 名前:
link-demo-sg-c-pe1
- 対象サブリソース:
coordinator
- 仮想ネットワーク:
link-demo-net
- サブネット:
link-demo-subnet
- プライベート DNS ゾーンと統合する: はい
- リソース グループ:
[OK] を選択します。
プライベート エンドポイントを作成したら、[確認と作成] を選択し、[作成] を選択してクラスターを作成します。
VM からクラスターにプライベートにアクセスする
プライベート リンクを使用すると、VM からクラスターに接続でき、外部ホストがそうするのを防止します。 この手順では、VM 上の psql データベース クライアントがクラスターのコーディネーター ノードと通信できることを確認します。
PG_URI='host=c-link-demo-sg.12345678901234.postgres.cosmos.azure.com port=5432 dbname=citus user=citus password={your_password} sslmode=require'
# Attempt to connect to cluster with psql in the VM
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
Note
接続文字列で、{your_password}
をクラスター パスワードまたは Microsoft Entra ID トークンに置き換えます。 詳細については、認証オプションに関する記事を参照してください。
Citus のバージョン番号が出力に表示されるはずです。 その場合は、psql がコマンドを実行でき、プライベート リンクが機能しました。
リソースをクリーンアップする
VM とクラスターの間にプライベート リンクを作成する方法を確認しました。 これで、リソースをプロビジョニング解除できるようになりました。
リソース グループを削除すると、内部のリソースがプロビジョニング解除されます。
az group delete --resource-group link-demo
# press y to confirm
次のステップ
- プライベート アクセスの詳細を学習する
- プライベート エンドポイントについて学習する
- 仮想ネットワークについて学習する
- プライベート DNS ゾーンについて学習する