Azure仮想ネットワークピアリング実装してみた -Bicep編

はじめに

前回の記事では、仮想ネットワークピアリング概要、Azureポータルで実装方法について記載しました。

blog.jbs.co.jp

本記事ではBicepを利用して仮想ネットワークピアリングの実装をしていきたいと思います。

※本記事は2023年2月時点での内容です。

Bicepとは

Bicep(バイセップ)とは宣言型の構文を使用して Azure リソースをデプロイするドメイン固有言語 (DSL) です。 BicepはARMテンプレートに比べ単純な構文でコードを作成することが可能です。

learn.microsoft.com

前提条件

Bicepを利用して仮想ネットワークピアリング実装の前提条件は以下になります。

前提条件 概要
Bicep実行環境の準備、リソースグループ作成

Bicepを試してみた-リソースグループ作成編- - JBS Tech Blog」を参照してBicep実行環境の準備、リソースグループ作成を行う

RBAC権限の追加 共同作成者、所有者など
ファイルの準備 「peertest01.bicep」というファイルを用意して、Visual Studio Codeで開く
Powershell、Azモジュールのインストール Azure仮想ネットワークピアリング実装してみた -Powershell編 - JBS Tech Blog」を参照してPowershell、Azモジュールのインストールを行う

仮想ネットワークピアリングの実装

では、仮想ネットワークピアリングを実装してみたいと思います。

今回は下記の構成を元に作成していきます。

パラメータの設定

仮想ネットワークの作成、ピアリングの設定に必要なパラメータの設定を行います。

パラメータの設定方法については下記になります。

  コード 概要
パラメータ宣言 param demoParam01 string 文字列
param demoParam02 int 整数
param demoParam03 boolean true,false
パラメータの制限
(デコレーター)
※デコレーターは各パラメータの宣言の上に配置します。
@allowed([ 'one' 'two’]) 使用できる値制限
@minLength(3) 長さ制限(最小長)
@maxLength(24) 長さ制限(最大長)
@description(‘説明の追加') 説明の追加
param demoParam string = ‘規定値’ 既定値の設定

設定値は下記の通りになります。

@maxLength(10)
param location string = 'japaneast'

//仮想ネットワーク1のパラメータ
param vnetName01 string = 'vnet001'
param snetName01 string = 'subnet01'
param vnetPrefix01 string = '10.1.0.0/16'
param snetPrefix01 string = '10.1.0.0/24'

//仮想ネットワーク2のパラメータ
param vnetName02 string = 'vnet002'
param snetName02 string = 'subnet02'
param vnetPrefix02 string = '10.2.0.0/16'
param snetPrefix02 string = '10.2.0.0/24'

//ピアリングのパラメータ
param vnet001Tovnet002 string = 'peer-vnet001Tovnet002'
param vnet002Tovnet001 string = 'peer-vnet002Tovnet001'

仮想ネットワークの作成

仮想ネットワークを作成します。「vnet」と入力して事前に定義されたスニペットから「res-vnet」を選択します。

赤枠部分を上記で設定した変数に変更し、青枠部分の不要なコード(2つ目のサブネット)を削除します。

設定値は下記の通りになります。

resource Vnet001 'Microsoft.Network/virtualNetworks@2019-11-01' = {
  name: vnetName01
  location: location
  properties: {
    addressSpace: {
      addressPrefixes: [
        vnetPrefix01
      ]
    }
    subnets: [
      {
        name: snetName01
        properties: {
          addressPrefix: snetPrefix01
        }
      }
    ]
  }
}

仮想ネットワーク2(vnet002)も同様に作成します。

仮想ネットワークピアリングの実装

仮想ネットワークピアリングを実装します。「peer」と入力して事前に定義されたスニペットから「res-vnet-peering」を選択します。

赤枠部分の変更、parentプロパティの追加をします。

Vnet001からVnet002へのピアリングの設定値

resource peer01 'Microsoft.Network/virtualNetworks/virtualNetworkPeerings@2020-07-01' = {
  name: vnet001Tovnet002
  parent: Vnet001 //親リソースの指定
  properties: {
    allowVirtualNetworkAccess: true
    allowForwardedTraffic: true
    allowGatewayTransit: false
    useRemoteGateways: false
    remoteVirtualNetwork: {
    id: Vnet002.id  //接続先リソースの指定
    }
  }
}

Vnet002からVnet001へのピアリングの設定値

resource peer02 'Microsoft.Network/virtualNetworks/virtualNetworkPeerings@2020-07-01' = {
  name: vnet001Tovnet002
  parent: Vnet002 //親リソースの指定
  properties: {
    allowVirtualNetworkAccess: true
    allowForwardedTraffic: true
    allowGatewayTransit: false
    useRemoteGateways: false
    remoteVirtualNetwork: {
    id: Vnet001.id  //接続先リソースの指定
    }
  }
}
項目 設定値 概要
リモート仮想ネットワークへのトラフィック allowVirtualNetworkAccess
許可:true ,拒否:false
接続先の仮想ネットワーク(vnet002)と通信を許可するか
リモート仮想ネットワークから転送されたトラフィック allowForwardedTraffic
許可:true ,拒否:false
接続先の仮想ネットワーク(vnet002)を経由した転送トラフィックを許可するか
仮想ネットワーク ゲートウェイまたはルート サーバー この仮想ネットワークにあるゲートウェイを使用する場合:
-AllowGatewayTransit
許可:true ,拒否:false
接続先のゲートウェイを利用する場合:
-UseRemoteGateways
許可:true ,拒否:false
この仮想ネットワークにある仮想ネットワークゲートウェイの使用を許可するか、接続先の仮想ネットワークゲートウェイを利用するか

デプロイ

Poweshell でサインインします。

Connect-AzAccount

下記コマンドを実行して、リソースを作成します。

$RGName01 = "peer-testRG01"
$filepath = "実行ファイルのパス"

New-AzResourceGroupDeployment -ResourceGroupName $RGName01 -TemplateFile $filepath

パラメータの値を変更したい場合は下記のように記載します。

New-AzResourceGroupDeployment -ResourceGroupName $RGName01 -TemplateFile $filepath -パラメータ変数値 "値"

まとめ

仮想ネットワークピアリングを様々な方法で実装してみました。要件に合わせてデプロイ方法を変えることで効率よく作業ができると感じました。

執筆担当者プロフィール
和田 剣斗

和田 剣斗(日本ビジネスシステムズ株式会社)

業務では主にAzureに携わっています。趣味はサウナや資産運用です。最近はテントサウナにはまっています。

担当記事一覧