Azure Virtual Desktopから、Azure Database for PostgreSQLに接続する-クラウド内完結サービスを目指す

Azure Virtual Desktopで仮想ホスト作成

Azureクラウド上で、クライアントもデータベースも完結できるシステムを目指して構築中です。

今回は、Azure上のVMホストからPostgreSQLに接続してみます。仮想ネットワークの作成方法に設定の肝があります。

仮想ネットワークを作成する

KasoNet11という仮想ネットワークを作成します。仮想ホストと、PostgreSQLデータベースをネットワーク上で接続できるようにするためには、まずは仮想ネットワークから作成しておく事をお勧めします。

Azure Virtual Desktop用のサブネット

ネットワークアドレス空間は: 10.1.0.0/16で作成

Azure Virtual Desktop用には 10.1.0.0/24でサブネットを作成します。

仮想ネットワークはこんな感じで作成しました。

AzureforPostgres用にサブネットを作成

ここが設定の要です。

上の手順で仮想ネットワークを作成し、デプロイが終わった後に、サブネットを追加します。ここでないとサブネットの委任が出てきません。

サブネットをサービスに委任が重要

Microsoft.DBforPostgreSQL/flexibleServers にサブネットを委任すること。 この委任は、Azure Database for PostgreSQL フレキシブル サーバーのみがそのサブネットを使用できることを意味します。 委任されたサブネットに他の Azure リソースの種類を含めることはできません。

Azure portal を使用した Azure Database for PostgreSQL – フレキシブル サーバーの仮想ネットワークの作成と管理

この委任設定をしたサブネットを作成しないと、Azure Virtual Desktopと同じネットワーク内にPostgreSQLサーバを配置する事ができません。

同じネットワーク内ではあるものの、サブネットを別ける必要があります。

Azure Virtual Desktopを作成

ホストプールを作成

同じリソースグループの中にホストプールを作成します。

仮想マシンの作成

ホストプールと一緒に仮想マシンを作成します。

サブネットは、仮想ネットワーク作成時にAzure Virtual Desktop用に準備した SubVMにしました。

また、参加するディレクトリは、 Azure Active Directory を選択します。

アプリケーショングループに権限の割り当て

同じAD内のユーザに、Azure Virtual Desktopへの接続権限を割り当てます

Azure Database for PostgreSQLを作成する

フレキシブルサーバを作成していきます。

開発用で作成します。開発用で作成すると、価格が安く作成可能です。

ネットワーク設定

プライベートアクセスを設定すると、自動的に委任されたサブネットまで表示されます。

全体的な設定はこんな感じです。

Azure Virtual Desktopにアクセス

専用のリモートデスクトップアプリにて、

URLで登録します。

https://rdweb.wvd.microsoft.com/api/arm/feeddiscovery

詳しくはこちらで

同じAD内のユーザでアクセスすると、接続できるAzure Virtual Desktopが表示されます。

以下の操作はAzure Virtual Desktop上で行います。

リモート接続できたら、Windows Power Shellを起動し、Postgresのサーバ名

※Azure Portal の Azure Database for PostgreSQLに記載があります。

に Pingをうって疎通確認を行います。

ping post11.postgres.database.azure.com

疎通が確認できたら、pgAdmin4をダウンロードインストールします。

pgAdmin4 上に Azure Database for PostgreSQLを登録します。

これで Azure Virtual Desktop から、Azure Database for PostgreSQLに接続できました。

余談 pgAdmin4のせいで接続できない!? ver6.5

最新バージョンの、 pgAdmin4 6.5を利用しよとしたのですが、

Crypt key is missing.

と表示されてしまい、接続できませんでした。

pgAdmin4 5.7を利用したところ問題なく接続できました。pgAdmin4の最新バージョンには何か設定が必要なのか?それともまだバグがあるのか分かりません。