はじめに
Azure Resource Mover で大量のリソースを移動する場合、どれくらいかかるのか試してみました。
実環境に則した様々な種類のリソース群ではないし、正直やってみないとわからない、というのが実際のところだと思うので、参考値にすらなるのかわかりませんが試した結果まとめ
目次
移動元の環境
1 つのリソース グループに、以下のリソースを展開
- VNet * 2
- NSG * 6
- VM * 200
- NIC * 200
- DIsk *200
コア数の上限の関係で 1 つのリージョン (VNet) に 100 台を配置して、2 リージョン分展開
全部で 608 リソース、これを Resource Mover で別のリソース グループに移動します。
デプロイ用 Bicep
200 台のデプロイはこの Bicep ファイル (DeployVms_Repeat.bicep) を 2 回使って 100 台ずつデプロイしました。
たまに更新してたりするので、テスト時に使ったものを貼っておくとこんな感じです。
module も別の階層に置いてあります。
param location string = resourceGroup().location param adminUserName string @secure() param adminUserPassword string param numberOfWindows int param numberOfUbuntu int resource vnet 'Microsoft.Network/virtualNetworks@2022-01-01' = { name: 'vnet' location: location properties: { addressSpace: { addressPrefixes: [ '172.16.0.0/16' ] } subnets: [ { name: 'Subnet-1' properties: { addressPrefix: '172.16.0.0/24' networkSecurityGroup: { id: NSG1.id } } } { name: 'Subnet-2' properties: { addressPrefix: '172.16.1.0/24' networkSecurityGroup: { id: NSG2.id } } } { name: 'Subnet-3' properties: { addressPrefix: '172.16.3.0/24' networkSecurityGroup: { id: NSG3.id } } } ] } resource Subnet1 'subnets' existing = { name: 'Subnet-1' } resource Subnet2 'subnets' existing = { name: 'Subnet-2' } resource Subnet3 'subnets' existing = { name: 'Subnet-3' } } resource NSG1 'Microsoft.Network/networkSecurityGroups@2022-01-01' = { name: 'NSG-1' location: location properties: { securityRules: [ ] } } resource NSG2 'Microsoft.Network/networkSecurityGroups@2022-01-01' = { name: 'NSG-2' location: location properties: { securityRules: [ ] } } resource NSG3 'Microsoft.Network/networkSecurityGroups@2022-01-01' = { name: 'NSG-3' location: location properties: { securityRules: [ ] } } module WinVmModule '../module/deploy-windows.bicep' = [for i in range(0, numberOfWindows): { name: 'winVmDeploy${padLeft(i+1, 3, '0')}' params: { adminPassword: adminUserPassword adminUserName: adminUserName location: location vmName: 'WinVM${padLeft(i+1, 3, '0')}' subnetId: vnet::Subnet1.id vmSize: 'Standard_B2ms' } }] module UbuVmModule '../module/deploy-ubuntu.bicep' = [for i in range(0, numberOfUbuntu): { name: 'ubuVmDeploy${padLeft(i+1, 3, '0')}' params: { adminPassword: adminUserPassword adminUserName: adminUserName location: location vmName: 'UbuVM${padLeft(i+1, 3, '0')}' subnetId: vnet::Subnet2.id vmSize: 'Standard_B1ms' } }]
リソースの移動
Azure Resource Mover からリソース グループの移動を選択
ソースとターゲットのリソース グループを選択
608 個のリソースを全選択
まずは対象リソースの検証が動きます。
依存関係のあるリソースが含まれているか、とかがチェックされている様子
608 リソースありましたが、チェックは 3 分ほどで終わりました。
準備ができたら移動開始
移動開始後、3 分ほどでソース リソース グループ内のリソースが減り始める
減り始めたら、あっという間にソース側は 0 個に
ポータル上の通知が完了になるには、開始から 7 分かかりました。
ターゲットのリソース グループに、608 個のリソースが移動しています。
これで移動は完了です。
終わりに
今回はリソース グループ間のリソース移動を試しました。
最大 4 時間かかる可能性があり、どのくらいかかるか気になっていたのですが、思ったよりも全然時間がかかりませんでした。
しかし最初にも書いたとおり、実際の利用環境に則した状況を再現しているわけではありません。
LB や AppGW、SQL DB、Recovery Services コンテナーなどは一切なくシングル VM のみでテストしており、この 7 分という結果がどのくらい参考になるのか…というところではあるので、やってみたらこんな結果だった、くらいの感じで見ていただければと。
実際の環境でも、とりあえず移行前のチェックが完了するまででどのくらい時間がかかるか、を試してみるのはアリかと思います。