【Azure】仮想マシンをV2Vでシンプルに移行する
はじめに
以前のプロジェクトで開発環境の仮想マシンを1台Azureに移行したことがありました。当時は必要にせまられていた為、色々なサイトを参考にさせてもらいつつ力技でやり切った記憶がありますが、改めて手順を整理してみたいと思います。
前提
移行元サーバは少し古いサーバをイメージし、HyperV基盤上のWindowsServer2019を想定します。
スペックは以下で構築しました。
項目 | 設定値 |
---|---|
CPU | 2vCPU |
Memory | 4,096MB |
Disk | 32GB (容量固定) |
ファイル形式 | VHD |
仮想マシン世代 | 第一世代 |
移行イメージ
エージェントインストール
Azure環境に移行後正常に動作させる為に、移行元サーバにAzureVMエージェントのインストールを行います。
以下のサイトよりVMエージェントをダウンロードします。
インストーラーを実行し、移行元サーバにインストールします。
VMエージェントインストール
- インストーラーを実行します。
- [Next]をクリックします。
- 「I accept the terms in the License Agreement」にチェックを入れて、[Next]をクリックします。
- [Finish]をクリックします。
仮想ハードディスクのエクスポート
- 移行元の仮想マシンと分かるようにデスクトップにメモを保存しておきます。
- 仮想マシンを停止し、右クリックより「エクスポート」を選択します。
- エクスポート先を指定し、「エクスポート」をクリックします。
- ファイルがエクスポートされた事を確認します。
移行先リソースの作成
- 移行先のAzureに仮想ネットワークと、ストレージアカウントを作成します。
- コンテナーを作成します。
- 仮想ディスクをコピーする際の一時的なアクセス許可設定を行います。
「コンテナー」より、[設定] - [共有アクセストークン]より、アクセス許可設定※を行い、「SASトークンおよびURLを生成」をクリックします。
※ アクセス許可は、「読み取り」「追加」「作成」「書き込み」「リスト」権限を付与します。
生成されたSAS URLは、この後使用しますのでコピーしておきます。
仮想ハードディスクのコピー
仮想ハードディスクをストレージアカウント(コンテナー)にコピーします。
コピーには、コマンド(azcopy)を使用することもできますが、今回はStorage Explorerを使用します。
- Storage Explorerを起動し、「リソースへのアタッチ」を選択します。
- 「BLOBコンテナーまたはディレクトリ」を選択します。
- 「Shared Access Signature(SAS)」を選択し、「次へ」をクリックします。
- 任意の「表示名」を入力し、SAS URLを張り付けし、「次へ」をクリックします。
- 「接続」をクリックします。
接続できたことを確認します。 - 画面上部の「アップロード」ボタンをクリックし、仮想ハードディスクを選択し、「アップロード」ボタンをクリックします。
- アップロードが正常にされたことを確認します。
管理ディスクの作成
- Azureポータルより、「ディスク」を検索します。
- 「ディスクの作成」をクリックします。
- ソースの種類に「ストレージBLOB」を選択し、ソースBLOBにアップロードした仮想ハードディスクを選択します。
- 他の設定は既定値で設定します。デプロイ完了後は、「リソースに移動」をクリックします。
仮想マシンの作成
- 「VMの作成」をクリックします。
2.仮想マシンを作成します。
仮想マシンの作成
移行元のリソースと同程度に設定し、仮想マシンを作成していきます。
[基本設定]
[ネットワーク]
[確認および作成]
[完了]
「リソースに移動」をクリックします。
接続
1.RDPクライアントを起動し、以下の通り入力し、「接続」ボタンを入力します。
コンピューター:仮想マシンのパブリックIPアドレス
ユーザー名: <仮想マシン名>¥<移行元サーバのユーザー名>
2. パスワードを入力し、「OK」をクリックします。
3. 「はい」をクリックします。
4. 接続できることを確認します。
VMwareの場合
移行元サーバがVMwareの場合は、ファイル形式が異なる為 vmdkファイルからvhdまたはvhdxへの変換を行う必要がありますが、どうやら既に変換ツールがMicrosoftの公式サイトから入手できないようです。
素直に Azure VMware Solutionを利用するのがよさそうです。
最後に
ある程度の規模の本番サーバの移行は、Azure Migrateのようなサービスを利用するのが正攻法かと思いますが、開発環境のサーバをとりあえず1台移行してみたいというような場面では使える手順かと思います。
Discussion