Azure CLI を使用して Azure Database for PostgreSQL - フレキシブル サーバーの仮想ネットワーク (VNET 統合) を作成して管理する
適用対象: Azure Database for PostgreSQL - フレキシブル サーバー
Azure Database for PostgreSQL フレキシブル サーバーによって、ご利用のフレキシブル サーバーに接続するために、2 種類の相互に排他的なネットワーク接続方法がサポートされています。 次の 2 つのオプションがあります。
- パブリック アクセス (許可された IP アドレス)。 このメソッドは、プレビュー段階の Azure Database for PostgreSQL フレキシブル サーバーを使用した Private Link ベースのネットワークを使うと、さらなるセキュリティ強化が可能です。
- プライベート アクセス (VNET 統合)
この記事では、Azure CLI を使用してプライベート アクセス (VNet 統合) で Azure Database for PostgreSQL フレキシブル サーバー インスタンスを作成することに重点を置きます。 プライベート アクセス (VNET 統合) を使用すると、Azure Database for PostgreSQL フレキシブル サーバー インスタンスを独自の Azure Virtual Network にデプロイできます。 Azure Virtual Network では、非公開で、セキュリティで保護されたネットワーク通信が提供されます。 プライベート アクセスでは、Azure Database for PostgreSQL フレキシブル サーバー インスタンスへの接続は、仮想ネットワーク内のみに制限されます。 詳細については、「プライベート アクセス (VNet 統合)」を参照してください。
Azure Database for PostgreSQL フレキシブル サーバーでは、サーバーの作成時にのみ、サーバーを仮想ネットワークとサブネットにデプロイできます。 Azure Database for PostgreSQL フレキシブル サーバー インスタンスを仮想ネットワークとサブネットにデプロイした後は、別の仮想ネットワーク、サブネット、または パブリック アクセス (許可された IP アドレス) に移動することはできません。
Azure Cloud Shell を起動する
Azure Cloud Shell は無料のインタラクティブ シェルです。この記事の手順は、Azure Cloud Shell を使って実行することができます。 一般的な Azure ツールが事前にインストールされており、アカウントで使用できるように構成されています。
Cloud Shell を開くには、コード ブロックの右上隅にある [使ってみる] を選択します。 https://shell.azure.com/bash に移動して、別のブラウザー タブで Cloud Shell を開くこともできます。 [コピー] を選択してコードのブロックをコピーし、Cloud Shell に貼り付けてから、 [入力] を選択して実行します。
CLI をローカルにインストールして使用する場合、このクイックスタートでは、Azure CLI バージョン 2.0 以降が必要です。 バージョンを確認するには、az --version
を実行します。 インストールまたはアップグレードする必要がある場合は、Azure CLI のインストールに関するページを参照してください。
前提条件
az login コマンドを使用してアカウントにサインインする必要があります。 ID プロパティに注意してください。これは、お使いの Azure アカウントのサブスクリプション ID のことです。
az login
az account set コマンドを使用して、アカウントの特定のサブスクリプションを選択します。 az login 出力の ID の値をメモしておいて、このコマンドの subscription 引数の値として使用します。 複数のサブスクリプションをお持ちの場合は、リソースが課金の対象となる適切なサブスクリプションを選択してください。 すべてのサブスクリプションを取得するには、az account list を使用します。
az account set --subscription <subscription id>
Azure CLI を使って Azure Database for PostgreSQL フレキシブル サーバー インスタンスを作成する
az postgres flexible-server
コマンドを使用して、プライベート アクセス (VNet 統合) を使用して Azure Database for PostgreSQL フレキシブル サーバー インスタンスを作成できます。 このコマンドでは、既定の接続方法としてプライベート アクセス (VNet 統合) を使用します。 何も指定しない場合は、仮想ネットワークとサブネットが自動的に作成されます。 サブネット ID を使用して、既に存在する仮想ネットワークとサブネットを指定することもできます。 以下の例に示すように、CLI を使用して Azure Database for PostgreSQL フレキシブル サーバー インスタンスを作成するには、さまざまなオプションがあります。
重要
このコマンドを使用すると、サブネットが Microsoft.DBforPostgreSQL/flexibleServers に委任されます。 この委任は、Azure Database for PostgreSQL フレキシブル サーバー インスタンスのみがそのサブネットを使用できることを意味します。 委任されたサブネットに他の Azure リソースの種類を含めることはできません。
Azure CLI のリファレンス ドキュメント で、構成可能な CLI パラメーターの完全な一覧を参照してください。 たとえば、次のコマンドでは、必要に応じてリソース グループを指定できます。
既定の仮想ネットワーク、既定のアドレス プレフィックスを持つサブネットを使用して Azure Database for PostgreSQL フレキシブル サーバー インスタンスを作成する
az postgres flexible-server create
既存の仮想ネットワークとサブネットを使用して、Azure Database for PostgreSQL フレキシブル サーバー インスタンスを作成します。 指定された仮想ネットワークとサブネットが存在しない場合、既定のアドレス プレフィックスを持つ仮想ネットワークとサブネットが作成されます。
az postgres flexible-server create --vnet myVnet --subnet mySubnet
既存の仮想ネットワーク、サブネット ID を使用し、サブネット ID を使用して、Azure Database for PostgreSQL フレキシブル サーバー インスタンスを作成します。 指定するサブネット内に他のリソースがデプロイされていてはならず、このサブネットは、まだ委任されていない場合は Microsoft.DBforPostgreSQL/flexibleServers に委任されます。
az postgres flexible-server create --subnet /subscriptions/{SubID}/resourceGroups/{ResourceGroup}/providers/Microsoft.Network/virtualNetworks/{VNetName}/subnets/{SubnetName}
Note
- 仮想ネットワークとサブネットは、ご利用の Azure Database for PostgreSQL フレキシブル サーバー インスタンスと同じリージョンおよびサブスクリプション内に存在する必要があります。
- 仮想ネットワークには、VNET レベルまたはサブネット レベルで設定されているリソース ロックが存在してはいけません。 仮想ネットワークにサーバーを作成する前に、VNET とすべてのサブネットから、ロックに対して、必ず [削除] または[読み取り] を実行してください。サーバーを作成したら、設定を元に戻します。
重要
AzureFirewallSubnet
、AzureFirewallManagementSubnet
、AzureBastionSubnet
、GatewaySubnet
を含む名前は、Azure 内で予約済みの名前です。 これらをサブネット名として使用しないでください。既定以外のアドレス プレフィックスを持つ新しい仮想ネットワークとサブネットを使用して、Azure Database for PostgreSQL フレキシブル サーバー インスタンスを作成します。
az postgres flexible-server create --vnet myVnet --address-prefixes 10.0.0.0/24 --subnet mySubnet --subnet-prefixes 10.0.0.0/24
Azure CLI のリファレンス ドキュメントで、構成可能な CLI パラメーターの完全な一覧を参照してください。
重要
The parameter PrivateDnsZoneArguments is required, and must be provided by customer
というエラーが発生した場合は、古いバージョンの Azure CLI が実行されている可能性があります。 Azure CLI をアップグレードしてから、操作をやり直してください。