kt.log

The number of Azure Database for PostgreSQL Flexible Servers in a smallest address space subnet with VNet Integration

最小のアドレス空間を持つ VNet 統合サブネットにデプロイできる Azure Database for PostgreSQL フレキシブルサーバーの数

Azure Database for PostgreSQL フレキシブルサーバー は、リソースをデプロイする際に [ネットワーク] > [ネットワーク接続] > [接続方法]プライベート アクセス (VNET 統合) を選ぶことができます。

プライベート アクセス (VNet 統合) を利用すると、フレキシブルサーバーはパブリックなエンドポイントを持たず、プライベートな仮想ネットワーク内に接続を限定することができ、データベースのネットワークをよりセキュアにすることができます。

このとき、サブネットは Microsoft.DBforPostgreSQL/flexibleServers に委任されることとなり、Azure Database for PostgreSQL フレキシブルサーバーのみがそのサブネットを使用できるよう管理されます。

ここで、委任されたサブネットについて、ネットワークの概要 - Azure Database for PostgreSQL - フレキシブル サーバー | Microsoft Docs > 仮想ネットワークの概念 には以下の様な説明があります。

サブネットに指定できる最小 CIDR 範囲は /28 で 14 個の IP アドレスが得られますが、ネットワークまたはサブネット内の最初と最後のアドレスは、個々のホストに割り当てることができません。 5 つの IP は、Azure ネットワークで内部的に利用するために予約されています。ホストに割り当てることのできない前述の 2 つの IP もそこに含まれます。 その結果、/28 の CIDR 範囲で使用可能な IP アドレスは 11 個残りますが、高可用性機能を備えた 1 つのフレキシブル サーバーでは 4 つのアドレスが使用されます。

すなわち、 VNet 統合 において、サブネットの CIDR 範囲が最小の /28 である場合、フレキシブルサーバーが使用できる IP アドレスは 11 個であり、ゾーン冗長構成のフレキシブルサーバー 1台が使用する IP アドレスは 4つであるということです。
単純計算で、この場合にサブネット内にデプロイできるゾーン冗長構成のフレキシブルサーバーの数は 2 ということになりますが、実際に検証して確認を行いました。

結論

3 (本記事執筆時点において)

検証環境構築

操作方法ガイド に従い、プライベート アクセス (VNet 統合) を構築します。
構築した VNet に対して、新規の委任サブネットを /28 で作成します。

検証

作成した委任サブネットに、ゾーン冗長構成のフレキシブルサーバーを新規デプロイしていきます。

4台目をデプロイ中に、エラーが発生しました。

プロビジョニングに失敗しています。

1
2
3
4
5
6
7
{
"status": "Failed",
"error": {
"code": "ServerGroupDropping",
"message": "Operations on a server group in dropping state are not allowed."
}
}

したがって、/28 の委任サブネットにデプロイできる Azure Database for PostgreSQL フレキシブルサーバーは、 3台ということになります。
時間が経ったらいずれかのサーバーに問題が発生する(委任サブネットとの紐付けが解除される等)というのも想定していたのですが、6時間以上経っても、午前0時(但しJST)をまたいでも、問題は起きていません。

まとめ

  • 最小のアドレス空間を持つ VNet 統合サブネットにデプロイできる Azure Database for PostgreSQL フレキシブルサーバーの数は 3 であることがわかりました。
  • 公式ドキュメントの説明からすると 3台目でデプロイ失敗することが予想されましたが、3台目のデプロイは成功し、4台目で失敗しました。
  • 3台デプロイできるものの、やはり公式ドキュメントの説明からすると委任サブネット内の IP アドレスが足りていないはずですので、おすすめはできません。
  • あるいは「高可用性機能を備えた 1 つのフレキシブル サーバーでは 4 つのアドレスが使用されます」という公式の説明が正しくない可能性も考えられますが、真相は不明です。
  • 公式ドキュメントの説明に反して 3台デプロイされる場合は、自己責任でお願いします。

See also