クイック スタート:ARM テンプレートを使用して、Azure Database for PostgreSQL - Single Server を作成する
適用対象: Azure Database for PostgreSQL - 単一サーバー
重要
Azure Database for PostgreSQL - シングル サーバーは廃止パスにあります。 Azure Database for PostgreSQL - フレキシブル サーバーにアップグレードすることを強くお勧めします。 Azure Database for PostgreSQL - フレキシブル サーバーへの移行の詳細については、Azure Database for PostgreSQL 単一サーバーの現状に関するページを参照してください。
Azure Database for PostgreSQL は、高可用性の PostgreSQL データベースをクラウドで実行、管理、スケールできるマネージド サービスです。 このクイックスタートでは、Azure Resource Manager テンプレート (ARM テンプレート) を使用して、Azure portal、PowerShell、または Azure CLI で Azure Database for PostgreSQL - Single Server を作成します。
Azure Resource Manager テンプレートは JavaScript Object Notation (JSON) ファイルであり、プロジェクトのインフラストラクチャと構成が定義されています。 このテンプレートでは、宣言型の構文が使用されています。 デプロイしようとしているものを、デプロイを作成する一連のプログラミング コマンドを記述しなくても記述できます。
環境が前提条件を満たしていて、ARM テンプレートの使用に慣れている場合は、 [Azure へのデプロイ] ボタンを選択します。 Azure portal でテンプレートが開きます。
前提条件
適用対象: Azure Database for PostgreSQL - 単一サーバー
重要
Azure Database for PostgreSQL - シングル サーバーは廃止パスにあります。 Azure Database for PostgreSQL - フレキシブル サーバーにアップグレードすることを強くお勧めします。 Azure Database for PostgreSQL - フレキシブル サーバーへの移行の詳細については、Azure Database for PostgreSQL 単一サーバーの現状に関するページを参照してください。
アクティブなサブスクリプションが含まれる Azure アカウント。 無料で作成できます。
テンプレートを確認する
Azure Database for PostgreSQL サーバーは、構成済みの一連のコンピューティング リソースとストレージ リソースを使って作成されます。 詳細については、「Azure Database for PostgreSQL - Single Server の価格レベル」を参照してください。 サーバーは、Azure リソース グループ内に作成します。
このクイックスタートで使用されるテンプレートは Azure クイックスタート テンプレートからのものです。
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.26.54.24096",
"templateHash": "16694921643873529380"
}
},
"parameters": {
"serverName": {
"type": "string",
"metadata": {
"description": "Server Name for Azure Database for PostgreSQL"
}
},
"administratorLogin": {
"type": "string",
"minLength": 1,
"metadata": {
"description": "Database administrator login name"
}
},
"administratorLoginPassword": {
"type": "securestring",
"minLength": 8,
"metadata": {
"description": "Database administrator password"
}
},
"skuCapacity": {
"type": "int",
"defaultValue": 2,
"metadata": {
"description": "Azure Database for PostgreSQL compute capacity in vCores (2,4,8,16,32)"
}
},
"skuName": {
"type": "string",
"defaultValue": "GP_Gen5_2",
"metadata": {
"description": "Azure Database for PostgreSQL sku name "
}
},
"skuSizeMB": {
"type": "int",
"defaultValue": 51200,
"metadata": {
"description": "Azure Database for PostgreSQL Sku Size "
}
},
"skuTier": {
"type": "string",
"defaultValue": "GeneralPurpose",
"allowedValues": [
"Basic",
"GeneralPurpose",
"MemoryOptimized"
],
"metadata": {
"description": "Azure Database for PostgreSQL pricing tier"
}
},
"skuFamily": {
"type": "string",
"defaultValue": "Gen5",
"metadata": {
"description": "Azure Database for PostgreSQL sku family"
}
},
"postgresqlVersion": {
"type": "string",
"defaultValue": "11",
"allowedValues": [
"9.5",
"9.6",
"10",
"10.0",
"10.2",
"11"
],
"metadata": {
"description": "PostgreSQL version"
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "Location for all resources."
}
},
"backupRetentionDays": {
"type": "int",
"defaultValue": 7,
"metadata": {
"description": "PostgreSQL Server backup retention days"
}
},
"geoRedundantBackup": {
"type": "string",
"defaultValue": "Disabled",
"metadata": {
"description": "Geo-Redundant Backup setting"
}
},
"virtualNetworkName": {
"type": "string",
"defaultValue": "azure_postgresql_vnet",
"metadata": {
"description": "Virtual Network Name"
}
},
"subnetName": {
"type": "string",
"defaultValue": "azure_postgresql_subnet",
"metadata": {
"description": "Subnet Name"
}
},
"virtualNetworkRuleName": {
"type": "string",
"defaultValue": "AllowSubnet",
"metadata": {
"description": "Virtual Network RuleName"
}
},
"vnetAddressPrefix": {
"type": "string",
"defaultValue": "10.0.0.0/16",
"metadata": {
"description": "Virtual Network Address Prefix"
}
},
"subnetPrefix": {
"type": "string",
"defaultValue": "10.0.0.0/16",
"metadata": {
"description": "Subnet Address Prefix"
}
}
},
"variables": {
"firewallrules": [
{
"Name": "rule1",
"StartIpAddress": "0.0.0.0",
"EndIpAddress": "255.255.255.255"
},
{
"Name": "rule2",
"StartIpAddress": "0.0.0.0",
"EndIpAddress": "255.255.255.255"
}
]
},
"resources": [
{
"type": "Microsoft.DBforPostgreSQL/servers/virtualNetworkRules",
"apiVersion": "2017-12-01",
"name": "[format('{0}/{1}', parameters('serverName'), parameters('virtualNetworkRuleName'))]",
"properties": {
"virtualNetworkSubnetId": "[resourceId('Microsoft.Network/virtualNetworks/subnets', parameters('virtualNetworkName'), parameters('subnetName'))]",
"ignoreMissingVnetServiceEndpoint": true
},
"dependsOn": [
"[resourceId('Microsoft.DBforPostgreSQL/servers', parameters('serverName'))]",
"[resourceId('Microsoft.Network/virtualNetworks/subnets', parameters('virtualNetworkName'), parameters('subnetName'))]"
]
},
{
"type": "Microsoft.Network/virtualNetworks",
"apiVersion": "2023-09-01",
"name": "[parameters('virtualNetworkName')]",
"location": "[parameters('location')]",
"properties": {
"addressSpace": {
"addressPrefixes": [
"[parameters('vnetAddressPrefix')]"
]
}
}
},
{
"type": "Microsoft.Network/virtualNetworks/subnets",
"apiVersion": "2023-09-01",
"name": "[format('{0}/{1}', parameters('virtualNetworkName'), parameters('subnetName'))]",
"properties": {
"addressPrefix": "[parameters('subnetPrefix')]"
},
"dependsOn": [
"[resourceId('Microsoft.Network/virtualNetworks', parameters('virtualNetworkName'))]"
]
},
{
"type": "Microsoft.DBforPostgreSQL/servers",
"apiVersion": "2017-12-01",
"name": "[parameters('serverName')]",
"location": "[parameters('location')]",
"sku": {
"name": "[parameters('skuName')]",
"tier": "[parameters('skuTier')]",
"capacity": "[parameters('skuCapacity')]",
"size": "[format('{0}', parameters('skuSizeMB'))]",
"family": "[parameters('skuFamily')]"
},
"properties": {
"createMode": "Default",
"version": "[parameters('postgresqlVersion')]",
"administratorLogin": "[parameters('administratorLogin')]",
"administratorLoginPassword": "[parameters('administratorLoginPassword')]",
"storageProfile": {
"storageMB": "[parameters('skuSizeMB')]",
"backupRetentionDays": "[parameters('backupRetentionDays')]",
"geoRedundantBackup": "[parameters('geoRedundantBackup')]"
},
"sslEnforcement": "Enabled",
"minimalTlsVersion": "TLS1_2"
}
},
{
"copy": {
"name": "firewallRules",
"count": "[length(variables('firewallrules'))]",
"mode": "serial",
"batchSize": 1
},
"type": "Microsoft.DBforPostgreSQL/servers/firewallRules",
"apiVersion": "2017-12-01",
"name": "[format('{0}/{1}', parameters('serverName'), variables('firewallrules')[copyIndex()].Name)]",
"properties": {
"startIpAddress": "[variables('firewallrules')[copyIndex()].StartIpAddress]",
"endIpAddress": "[variables('firewallrules')[copyIndex()].EndIpAddress]"
},
"dependsOn": [
"[resourceId('Microsoft.DBforPostgreSQL/servers', parameters('serverName'))]"
]
}
],
"outputs": {
"name": {
"type": "string",
"value": "[parameters('serverName')]"
},
"resourceId": {
"type": "string",
"value": "[resourceId('Microsoft.DBforPostgreSQL/servers', parameters('serverName'))]"
},
"resourceGroupName": {
"type": "string",
"value": "[resourceGroup().name]"
},
"location": {
"type": "string",
"value": "[parameters('location')]"
}
}
}
このテンプレートには、次の 5 つの Azure リソースが定義されています。
- Microsoft.Network/virtualNetworks
- Microsoft.Network/virtualNetworks/subnets
- Microsoft.DBforPostgreSQL/servers
- Microsoft.DBforPostgreSQL/servers/virtualNetworkRules
- Microsoft.DBforPostgreSQL/servers/firewallRules
その他の Azure Database for PostgreSQL テンプレートのサンプルは、Azure クイックスタート テンプレートから入手できます。
テンプレートのデプロイ
適用対象: Azure Database for PostgreSQL - 単一サーバー
重要
Azure Database for PostgreSQL - シングル サーバーは廃止パスにあります。 Azure Database for PostgreSQL - フレキシブル サーバーにアップグレードすることを強くお勧めします。 Azure Database for PostgreSQL - フレキシブル サーバーへの移行の詳細については、Azure Database for PostgreSQL 単一サーバーの現状に関するページを参照してください。
Azure portal で Azure Database for PostgreSQL サーバーのテンプレートをデプロイするには、次のリンクを選択します。
[Deploy Azure Database for PostgreSQL with VNet](VNet を使用して Azure Database for PostgreSQL をデプロイする) ページで、次の作業を行います。
[リソース グループ] の [新規作成] を選択し、新しいリソース グループの名前を入力し、 [OK] を選択します。
新しいリソース グループを作成した場合は、リソース グループと新しいサーバーの場所を選択します。
サーバー名、管理者のログイン、管理者のログイン パスワードを入力します。
必要に応じて、他の既定の設定を変更します。
- [サブスクリプション] : サーバーに使用する Azure サブスクリプション。
- [SKU 容量] : 仮想コア容量。2 (既定)、4、8、16、32、64 のいずれかを指定できます。
- [SKU 名] : SKU レベル プレフィックス、SKU ファミリー、SKU 容量をアンダースコアで結合したもの (例: B_Gen5_1、GP_Gen5_2 (既定)、MO_Gen5_32)。
- [SKU サイズ (MB)] : Azure Database for PostgreSQL サーバーのメガバイト単位のストレージ サイズ (既定値: 51,200)。
- [SKU レベル] : デプロイ レベル (例: Basic、GeneralPurpose (既定)、MemoryOptimized)。
- [SKU ファミリ] : Gen4 または Gen5 (既定)。サーバーのデプロイに使用するハードウェアの世代を指定します。
- [PostgreSQL バージョン]: デプロイする PostgreSQL サーバーのバージョン (例: 9.5、9.6、10、11 (既定))。
- [Backup Retention Days](バックアップ保持期間の日数) : geo 冗長バックアップの保持期間の日数を指定します (既定値: 7)。
- [Geo Redundant Backup](geo 冗長バックアップ) : geo ディザスター リカバリー (Geo-DR) の要件に応じて "有効" または "無効" (既定) を選択します。
- [仮想ネットワーク名] : 仮想ネットワークの名前 (既定値: azure_postgresql_vnet)。
- [サブネット名] : サブネットの名前 (既定値: azure_postgresql_subnet)。
- [Virtual Network Rule Name](仮想ネットワーク規則名) : サブネットを許可する仮想ネットワーク規則の名前 (既定値: AllowSubnet)。
- [Vnet Address Prefix](VNet のアドレス プレフィックス) : 仮想ネットワークのアドレス プレフィックス (既定値: 10.0.0.0/16)。
- [Subnet Prefix](サブネット プレフィックス) : サブネットのアドレス プレフィックス (既定値: 10.0.0.0/16)。
使用条件を読み、 [上記の使用条件に同意する] をオンにします。
[購入] を選択します。
デプロイされているリソースを確認する
適用対象: Azure Database for PostgreSQL - 単一サーバー
重要
Azure Database for PostgreSQL - シングル サーバーは廃止パスにあります。 Azure Database for PostgreSQL - フレキシブル サーバーにアップグレードすることを強くお勧めします。 Azure Database for PostgreSQL - フレキシブル サーバーへの移行の詳細については、Azure Database for PostgreSQL 単一サーバーの現状に関するページを参照してください。
新しい Azure Database for PostgreSQL サーバーの概要を確認するには、次の手順に従います。
Azure portal で、 [Azure Database for PostgreSQL サーバー] を選択します。
データベース一覧から新しいサーバーを選択します。 新しい Azure Database for PostgreSQL サーバーの [概要] ページが表示されます。
ポータルから ARM テンプレートをエクスポートする
Azure portal から ARM テンプレートをエクスポートできます。 テンプレートをエクスポートするには、次の 2 とおりの方法があります。
- リソース グループまたはリソースからのエクスポート。 このオプションでは、既存のリソースから新しいテンプレートを生成します。 エクスポートされたテンプレートは、リソース グループの現在の状態の "スナップショット" です。 リソース グループ全体、またはそのリソース グループ内の特定のリソースをエクスポートできます。
- デプロイ前または履歴からのエクスポート。 このオプションでは、デプロイに使用されたテンプレートのそのままのコピーを取得します。
テンプレートをエクスポートすると、PostgreSQL サーバー リソースの "properties":{ }
セクションに、セキュリティ上の理由から administratorLogin
と administratorLoginPassword
が含まれていないことがわかります。 テンプレートをデプロイする前に、これらのパラメーターをテンプレートに追加する必要があります。そうしないと、テンプレートは失敗します。
"resources": [
{
"type": "Microsoft.DBforPostgreSQL/servers",
"apiVersion": "2017-12-01",
"name": "[parameters('servers_name')]",
"location": "southcentralus",
"sku": {
"name": "B_Gen5_1",
"tier": "Basic",
"family": "Gen5",
"capacity": 1
},
"properties": {
"administratorLogin": "[parameters('administratorLogin')]",
"administratorLoginPassword": "[parameters('administratorLoginPassword')]",
リソースをクリーンアップする
不要になったら、リソース グループを削除してください。リソース グループを削除すれば、リソース グループ内のリソースが削除されます。
適用対象: Azure Database for PostgreSQL - 単一サーバー
重要
Azure Database for PostgreSQL - シングル サーバーは廃止パスにあります。 Azure Database for PostgreSQL - フレキシブル サーバーにアップグレードすることを強くお勧めします。 Azure Database for PostgreSQL - フレキシブル サーバーへの移行の詳細については、Azure Database for PostgreSQL 単一サーバーの現状に関するページを参照してください。
Azure portal で、 [リソース グループ] を検索して選択します。
リソース グループの一覧で、リソース グループの名前を選択します。
リソース グループの [概要] ページで、 [リソース グループの削除] を選択します。
確認のダイアログ ボックスでリソース グループの名前を入力し、 [削除] を選択します。
次のステップ
テンプレートの作成手順について説明したチュートリアルについては、次のページを参照してください。
初めての ARM テンプレートを作成してデプロイする[