※2020/02/11時点の話です。
Azure Database for PostgreSQLでタイトルにあるメッセージに苦しめられた話。
接続元のVMが属するサブネットにサービスエンドポイント"Microsoft.Sql"を設定した上で、事前に構築しておいたPostgreSQLに接続しようとしたところ、
"Server is not configured to allow ipv6 connections."
発生…。
最初はpsqlで接続したときに発生したのですが、ダメもとでjdbc接続を試みても同じメッセージが出て接続不可。
その後いろいろ調べた結果(※1)、Basicインスタンスだから発生していた問題と分かりました。
汎用目的やメモリ最適化のインスタンスであれば、このような問題は起きません。
他の検証目的のために、とりあえず作成していたBasicインスタンスを利用したのが徒となりました。
時間を返せ~。(苦笑)
以下、余談になります。
余談1
※1ですが、サービスエンドポイントがダメならプライベートエンドポイントならどうだろうと試そうとしたのがきっかけ。
Basicインスタンス相手だとプライベートエンドポイントは作成すら不可だったことから、Basicインスタンスだからダメなのかも、という思いに至り始めました。
余談2
インスタンス構築→削除を何度か実施したのですが、ファイアウォールの設定変更を忘れたり、"Azureサービスへのアクセスを許可"を忘れたりで、何度も「接続できない、何故だ!?」と焦りました。
ちなみに、"Azureサービスへのアクセス許可"を忘れていると、接続を試みたときに"Client from Azure Virtual Networks is not allowed to access the server."が出ます。
※2020/02/14追記
サブネット側にMicrosort.Sqlのサービスエンドポイントを設定した場合のPostgreSQL側の設定ですが、"Azureサービスへのアクセス許可"ではなく、"仮想ネットワーク規則"でアクセスを許可したいサービスエンドポイントを含むサブネットを許可する形がよさそうです。
https://docs.microsoft.com/ja-jp/azure/postgresql/concepts-data-access-and-security-vnet
余談3
制限については以下にちゃんと書いてありますね。
https://docs.microsoft.com/ja-jp/azure/postgresql/concepts-limits
発生したメッセージから調べてしまったので、原因の特定に至るまでに時間がかかってしまいました。
公式ドキュメントはちゃんと読まないと!!