AzureのVMをコピーしたくて方法を調べました。
情報が少なかったので、試してみた結果をメモ代わりに。
コピーする前に必要なこと
以下の手順ですが、いずれも「コピー元のVM」の構成を覚えておく必要があります。
VM作るときに指定するやつです。サイズとかネットワーク規則設定とか。
方法1:スナップショットから
画面だけで完結するので、1回しかコピーしないのであればこの方法が一番楽。
VM停止しなくてもコピーできましたが、念のためVMは停止してからのほうが良いと思います。
なお、スナップショットから直接VMを作れるという記事を見つけましたが、本記事執筆時点ではできませんでした。
なんか変わったんですかね?今はスナップショット→ディスク→VMじゃないとダメです。
1. OSディスクのスナップショットを取る
-
対象のVM管理画面で、[設定] - [ディスク] から、OSディスクを選択する。
-
[+スナップショットの作成]をクリックする。
-
スナップショットの名前を適当に付ける。
アカウントの種類は、この時点ではPremiumでもStandardでも何でも良い。
設定したら、スナップショットを作成する。
2. スナップショットからマネージドディスクを作る
-
[ホーム] > [ディスク] の画面で、[+追加]をクリックする。
-
こんな感じで入力して、作成する。
ディスク名:適当
ソースの種類:「スナップショット」を選んで、「ソースのスナップショット」に作成したスナップショットを指定。
サイズ:スナップショットのサイズに合わせる。この時、PremiumディスクにするかStandardディスクにするかを指定すること。
(この後作るVMのサイズがPremium非対応なのに、ここでPremiumディスクにするとVMを作成できない)
3. VMを作成する
-
作成したマネージドディスクの管理画面から、[+VMの作成]をクリックする。
-
イメージに、作成したマネージドディスクが設定されているはず。
あとは、コピー元のVMと同じように設定して、VMを作成すれば完成。
方法2:Azure PowerShellから
Microsoft Docsの以下の記事の内容で、複製できることを確認しました。
- Azure CLI と Managed Disks を使用して Linux VM のコピーを作成する
- [https://docs.microsoft.com/ja-jp/azure/virtual-machines/linux/copy-vm] (https://docs.microsoft.com/ja-jp/azure/virtual-machines/linux/copy-vm)
VMを何台もコピーしたい場合は、シェル組んでもよさそうですね。
方法3:キャプチャから
注意:この方法は元のVMが使えなくなります。
「Azure VM 複製」でググると、この方法がいっぱい出てくるんですよね。
複製、たしかにできるっちゃできるんですが、複製元VMが使えなくなります。(起動できない)
本来やりたい「コピー」ではないのですが、ざっくり説明しておきます。
1. VMのキャプチャを作成
「キャプチャ」ボタンを押して、次の画面で指示通り入力していきます。
2. キャプチャからVMを作成
作成したキャプチャから、[+VMの作成]をクリックする。
あとは、普通のVM作成と同じ感じで。
まとめ
- 方法1
- 突発的にVMをコピーしたくなった時
- 方法2
- コピーVMをまとめて何台も作りたい時
- 方法3
- VMのテンプレートみたいなものを用意して、まとめて複数台作る時??
って感じでしょうか。
方法3もPowerShellからできると思うんですが、そうすると2と3の違いがよくわからない・・・。
あと、方法1と方法2は画面かコマンドかの違いだけでほぼ同じことをやっているんですが、方法1は「スナップショット」を作っていて、方法2は「OSDiskをコピー」してます。
(スナップショットはマネージドディスクではないので、そのままVMのOSDiskにできない)
う~ん・・・もうちょっと簡単にならないんですかね・・・
次回(があれば)、自動化するシェルなんて作ってみようかと思います。