ARMテンプレートを使ってAzureパブリックIPをデプロイ
AzureのパブリックIP作成をAzure PortalとAzure Resource Manager(ARM)テンプレートをPower Shell使ってデプロイする2パターンでやってみました。
AzureのパブリックIPはAzureの各リソース(Azure仮想マシンやApplication Gateway等)がインターネットと通信する為に使用されます。
多くの場合は、インターネットにアクセスするリソース作成時に合わせて作成することも可能ですが、今回はAzureパブリックIPを単体で作成してみました。
パブリックIPに関する詳細はマイクロソフト様のサイトで確認できます。
Azure Resource Manager(ARM)テンプレートを使ってデプロイするにあたっては、以下の3つのファイルを作成しています。
-
- パブリックIPを定義するARMテンプレート(JSONファイル)
- パブリックIPのパラメータを指定するCSV
- ARMテンプレートをデプロイするPower Shell
複数のパブリックIPを纏めてを作れるようにしてみました。
今回作成したものはGitHubにも公開しております。
Azure パブリックIPの正引き、逆引き設定はこちら。
Azure PortalでAzureパブリックIPを新規作成
Azure Portal上のすべてのサービスで、パブリックIPと入力するとパブリックIPのメニューが表示されれます。追加をクリックします。
パブリックIPの作成画面が表示されます。
一般的な使い方で指定するのは、以下の内容になるかと思います。実際に利用するリソースに合わせて設定します。
-
- 名前
- DNS 名ラベル
- リソースグループ
- 場所(リージョン)
IPアドレスの割り当てを動的にすると、関連付けたリソースの再起動等によりIPアドレス変わる可能性があります。
DNS名ラベルを指定しておくと名前解決をしてくれます。
IPアドレスが変更されてもDNS名ラベルで指定した名前で常にアクセスできます。
すべて入力した後に作成をクリックすると、作成されます。(確認画面は表示されません。)
Azure パブリックIPのAzure Resource Manager(ARM)テンプレート
今回は、基本的な設定で確認する為に、以下の条件で設定で作成してみました。
-
-
- IPバージョン、SKU、アイドルタイムアウトは固定値としています
- 固定値はARMテンプレート内のvariablesで定義してみました
- SKU( “sku":"Basic")
- IPバージョン(publicIPAddressVersion":"IPv4″)
- アイドルタイムアウト( “idleTimeoutInMinutes": “4")
- パラメータでDNS 名ラベルを設定する
-
パブリックIPのARMテンプレートはこういう形になりました。
{
“$schema": “https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
“contentVersion": “1.0.0.0",
“parameters": {
“location": {
“type": “string",
“metadata":{}
},
“publicIPAddresses_name": {
“type": “string",
“metadata": {}
},
“domainNameLabel": {
“type": “string",
“metadata": {}
},
“publicIPAllocationMethod": {
“type": “string",
“allowedValues": [
“Dynamic",
“Static"
]
}
},
“variables": {
“sku":“Basic",
“publicIPAddressVersion":"IPv4″,
“idleTimeoutInMinutes": “4"
},
“resources": [
{
“type": “Microsoft.Network/publicIPAddresses",
“apiVersion": “2020-03-01",
“name": “[parameters('publicIPAddresses_name’)]",
“location": “[parameters('location’)]",
“sku": {
“name": “[variables('sku’)]"
},
“properties": {
“publicIPAddressVersion": “[variables('publicIPAddressVersion’)]",
“publicIPAllocationMethod": “[parameters('publicIPAllocationMethod’)]",
“idleTimeoutInMinutes": “[variables('idleTimeoutInMinutes’)]",
“dnsSettings": {
“domainNameLabel": “[parameters('domainNameLabel’)]"
},
“ipTags": []
}
}
]
}
|
固定値は適時変更して作成します。
Azure パブリックIPのパラメータCSVを作成
パブリックIP を作成する為にCSVから読み込むパラメータは以下の通りになります。リソースグループ名はデプロイ先のリソースグループ名になります。
-
-
- リソースグループ名(ResourceGroupName)
- リージョン名(location)
- パブリックIP名(vnetName)
- DNS 名ラベル(subnet_name)
- IP アドレスの割り当て(動的か静的か)
-
実際にパラメータCSVをサンプルで作成以下のようになります。
ResourceGroupName,location,publicIPAddresses_name,domainNameLabel,publicIPAllocationMethod, |
Azure パブリックIPをARMテンプレート+Power Shell使ってデプロイ
ARMテンプレートのパス、CSVのパスを指定してデプロイを実施します。
#Public IP Template Deploy $TemplateFilePath = “テンプレートファイルのパス" # Inclued Configure Entries # Template Deploy New-AzResourceGroupDeployment ` |
デプロイが成功すると、以下の通りにProvisioningState : Succeededと表示されます。(ログは途中省略しています。)
ResourceGroupName : RG1 ===================== ========================= ========== |
CSVで指定した値で作成した値で作成されている事が確認できます。
Terraformを利用したパブリックIPのデプロイはこちら。