この記事は更新から24ヶ月以上経過しているため、最新の情報を別途確認することを推奨いたします。
初めに
前回、クラシックリソース(以下ASM)からAzure Resource Manager(以下ARM)リソースへの移行について、説明しました。
前回の記事は以下をご参照ください。
https://cloudsteady.jp/post/5653/
しかし、ExpressRouteを用いている仮想ネットワークをARMへ移行する場合は、先にExpressRoute回線をARMへ移行する必要があります。
今回は、このExpressRoute回線をASMからARMへ移行する方法について説明します。
概要
ExpressRoute回線をARMへ移行する場合、前回とは異なり、GUIでの操作ができません。
従って、今回はコマンドベースでの移行となります。大まかな流れとしては以下の通りです。
- ASM用モジュール(Azureモジュール)のインストール、インポート
- ARM用モジュール(Azモジュール)のインストール、インポート
- Azure(ASM)へログイン
- 既存のExpressRoute回線(ASM)から名前とサービスキーを取得
- Azure(ARMへログイン)
- 既存のExpressRoute回線(ASM)をARMへ移行
- ARMへ移行したExpressRoute回線に対して、ASMへのアクセス許可
- ARMへ移行したExpressRoute回線の更新
移行手順
- ASM用モジュール(Azureモジュール)のインストール、インポート
下記コマンドを用いて、PowershellでAzureのASMを操作するために必要なモジュールをインストール、インポートします。
【実行するコマンド】
Install-Module Azure -AllowClobber
Import-Module Azure - ARM用モジュール(Azモジュール)のインストール、インポート
下記コマンドを用いて、PowershellでAzureのARMを操作するために必要なモジュールをインストール、インポートします。
【実行するコマンド】
Install-Module -Name Az -AllowClobber
Import-Module Az - Azure(ASM)へログイン
下記コマンドを用いて、Azureにログインします。
【実行するコマンド】
Add-AzureAccount
(上記コマンド実行後、認証画面が出るので、Azureのアカウント情報を入力します。)
Select-AzureSubscription $subscription
($subscription:操作したいリソースが所属するサブスクリプションの名前) - 既存のExpressRoute回線(ASM)から名前とサービスキーを取得
下記コマンドを用いると、既存のExpressRoute回線(ASM)の情報を取得できます。その中で、「CircuitName 」、「ServiceKey」という項目がありますので、そちらに記載されている値を記録してください。
【実行するコマンド】
Get-AzureDedicatedCircuit - Azure(ARM)へログイン
下記コマンドを用いて、Azureにログインします。
【実行するコマンド】
Connect-AzAccount
(上記コマンド実行後、認証画面が出るので、Azureのアカウント情報を入力します。)
Get-AzSubscription -SubscriptionName $subscription | Select-AzSubscription
($subscription:操作したいリソースが所属するサブスクリプションの名前) - 既存のExpressRoute回線(ASM)をARMリソースへ移行
下記コマンドを用いて、既存のExpressRoute回線(ARM)をARMリソースへ移行します。
【実行するコマンド】
Move-AzExpressRouteCircuit -Name $circuitname -ResourceGroupName $resourcegroupname
-Location $location -ServiceKey $servicekey
($circuitname:「4.」で取得したExpressRoute回線の名前
$resourcegroupname: ExpressRoute回線(ARM)を格納するリソースグループの名前
※ExpressRoute回線(ARM)を格納するリソースグループがない場合は新規で作成する必要があります。
$location:ExpressRoute回線(ARM)のリージョン
$servicekey:「4.」で取得したExpressRoute回線のサービスキー - ARMへ移行したExpressRoute回線に対して、ASMへのアクセス許可
下記コマンドを用いて、ARMへ移行したExpressRoute回線を取得して、クラシックモデルへのアクセスを許可します。
これにより、ARMへ移行したExpressRoute回線がクラシックVnetでも使用することができます。
【実行するコマンド】
$ckt = Get-AzExpressRouteCircuit -Name $newcircuitname -ResourceGroupName $resourcegroupname
($newcircuitname:ARMへ移行したExpressRoute回線の名前
$resourcegroupname: ExpressRoute回線(ARM)を格納しているリソースグループの名前)
$ckt.AllowClassicOperations = $true - ARMへ移行したExpressRoute回線の更新
下記コマンドを用いて、「7.」で設定したものを、ARMへ移行したExpressRoute回線に反映させます。
【実行するコマンド】
Set-AzExpressRouteCircuit -ExpressRouteCircuit $ckt
($ckt:「7.」で取得したExpressRoute回線)
手順は以上となります。
注意点
・今回使用するコマンドではASM用モジュールのコマンドとARM用モジュールのコマンド2種類あります。ASM用モジュール内のコマンドでは、あくまでASMしか取得、作成、変更ができず、ARMのものは取得、作成、変更ができません。ARM用モジュール内のコマンドについても同様です
・ASM用モジュール内のコマンドを用いてAzureにログインしても、あくまで、ASM用モジュールしか使用できず、ARM用モジュールを使用するためには、ARM用モジュール内のコマンドを用いて、別途ログインする必要があります。
・ASMモジュール内のコマンドを使用するためには、下記コマンドでAzureにログインする際に使用するアカウントに
「共同管理者」という権限を持たせる必要があります。詳細は以下をご参照ください。
https://cloudsteady.jp/post/957/
・ExpressRoute回線をASMからARMへの移行する際、切り戻しができないので、切り戻し用のExpressRoute回線を別途用意することにより、より安全に移行することができます。(Microsoftへ問い合わせをし、現状、ExpressRoute回線のASMからARMへの移行で失敗したケースはないと聞いております。)