AZURE

Azure スナップショットで別のサブスクリプションにVMの複製

AZURE

Azure でスナップショットからVMの複製

今回はサブスクリプションを移動しての複製が必要だった

VM複製の方法はいろいろ

5つほど考えれます(他にもあると思う)

  1. 仮想マシンの「キャプチャ」→ 複製元の一般化(マシン固有の情報を削除 Windows でいえば sysprep.exe Linuxは不明) 複製元のVMが使えなくなるので注意 これを知らずに痛い目にあった 大量のVM作成時には有効
  2. 仮想ディスクの「スナップショット」→ スナップショット取得時VM停止を推奨(データディスクがある場合管理ディスクとの整合性が取れなくなる場合がある)データなし領域も丸ごと取得するのでサイズがデカくなる Azureから取得済みスナップショットをオンプレ等にアウトプットする時パケット課金に注意
  3. Azure Backup → まだ未経験 データなし領域も丸ごとバックアップするのでサイズ大きかったと思う
  4. Virtual Machine Scale Set → 未経験 知識不足
  5. サードパーティーのバックアップエージェントでのバックアップを利用 → Azureからオンプレに複製した経験あり バックアップサイズはデータ領域のみの圧縮なので小さくなっている この逆のオンプレからAzureに複製は未経験

今回は 上記の2「スナップショット」で複製した Azure から別のサブスクリプションのAzureに複製した

今回の複製方法

いろいろ試行錯誤したが最終的に次の手順で成功

  1. 複製元でスナップショットの作成
  2. 複製元で管理ディスクの作成
  3. 管理ディスクのサブスクリプションを複製先に「変更」して移動
  4. 管理ディスクからVMの作成 ローカルIPアドレスは新しい環境に自動で設定されていた

失敗:次の手順では最後の管理ディスクからVM作成時「+ VMの作成」ボタンが有効にならない

  1. 複製元でスナップショットの作成
  2. スナップショットを他のサブスクリプションにAzure CLIにて複製
  3. 複製先スナップショットから管理ディスク(Managed Disks)の作成
  4. 管理ディスクからVMの作成を試みたが「+ VMの作成」ボタンが無効で失敗

複製開始

複製元でスナップショットの作成

「仮想マシン」「 ディスク」 にて対象のディスクを選択

「スナップショットの作成」選択

必要事項入力後「確認および作成」選択

”検証に成功しました” 確認後「作成」クリック

”デプロイが進行中です”

”デプロイが完了しました”

左上の「ポータルメニューの表示、非表示」アイコンから「すべてのリソース」で
「種類」スナップショットに作成されたスナップショットが確認できる

作成されたスナップショットの行をクリックすると詳細が確認できる

複製元で管理ディスクの作成

左側ポータルメニュー トップの「リソースの作成」「Marketplace を検索」ボックスに「managed disks」
候補の中の「Managed Disks」選択

「作成」

「マネージド ディスクの作成」画面に必要事項入力 ソースのスナップショットファイル指定
「確認および作成」クリック

「検証に成功しました」を確認

「デプロイが進行中です」

「デプロイが完了しました」
「リソースに移動」で作成された管理ディスク情報に移動できる

管理ディスクのサブスクリプションを複製先に「変更」して移動

ディスクの詳細画面にて サブスクリプションの「変更」

「移動するリソース」にディスクが表示されている
「リソースの移動先」で移動先サブスクリプションを選択して「OK」

移動処理が開始されると処理状況が表示される

「検証しています…」が非表示になってもサブスクリプション名は変化なし
「最新の情報に更新」クリックしても変化なし

「すべてのリソース」で一覧表示後「更新」クリックにて目的のサブスクリプションに移動が確認できた

管理ディスクからVMの作成

「VMの作成」が有効になったのでクリックして仮想マシンを作成した
ローカルIPアドレスは新しいサブスクリプションの環境に変更されていた
以降の仮想マシンの作成はいつも通りやれば問題ない

まとめ

VMではなく他のリソースだったかもしれないが、サブスクリプション間の移動はもっと面倒だった記憶がある。スナップショット利用で仮想マシンの複製の際、サブスクリプションの移動は意外に簡単だった。ディスクの詳細画面にて サブスクリプションの「変更」だけで移動できた。改善されたのか?ただ、スナップショットを先に移動してしまうと管理ディスク作成後「+ VMの作成」ボタンがグレーアウトには戸惑った。

番外編 必要なかった作業

スナップショットのサブスクリプション間移動

移動先のサブスクリプションでスナップショットからVMを作ろうとしたがソースのスナップショットが表示されない。そこでスナップショットを移動先のサブスクリプションに移動を試みた。Azure PowerShell をインストールしてやったがうまくいかない。Azure CLI のインストールの「使ってみる」のフォーカスモードでやったら成功した模様。

投入コマンド

#Provide the subscription Id of the subscription where snapshot exists
sourceSubscriptionId=1234567890

#Provide the name of your resource group where snapshot exists
sourceResourceGroupName=xxxxx

#Provide the name of the snapshot
snapshotName=yyyyy

#Set the context to the subscription Id where snapshot exists
az account set --subscription $sourceSubscriptionId

#Get the snapshot Id 
snapshotId=$(az snapshot show --name $snapshotName --resource-group $sourceResourceGroupName --query [id] -o tsv)

#If snapshotId is blank then it means that snapshot does not exist.
echo 'source snapshot Id is: ' $snapshotId

#Provide the subscription Id of the subscription where snapshot will be copied to
#If snapshot is copied to the same subscription then you can skip this step
targetSubscriptionId=abcdefghijk

#Name of the resource group where snapshot will be copied to
targetResourceGroupName=zzzzz

#Set the context to the subscription Id where snapshot will be copied to
#If snapshot is copied to the same subscription then you can skip this step
az account set --subscription $targetSubscriptionId

#Copy snapshot to different subscription using the snapshot Id
#We recommend you to store your snapshots in Standard storage to reduce cost. Please use Standard_ZRS in regions where zone redundant storage (ZRS) is available, otherwise use Standard_LRS
#Please check out the availability of ZRS here: https://docs.microsoft.com/en-us/azure/storage/common/storage-redundancy-zrs#support-coverage-and-regional-availability
az snapshot create --resource-group $targetResourceGroupName --name $snapshotName --source $snapshotId --sku Standard_LRS

移動してきたスナップショットから管理ディスクの作成をやったが失敗

管理ディスクはできるのだが「+ VMの作成」ボタンがグレーアウトで実行できない
スナップショット取得元のサブスクリプションで先に管理ディスクの作成が必要らしい

コメント