Azure

Azure Virtual Machineのリージョン間複製

こんにちは。新人クラウドエンジニアの三醍醐です。

今回は、管理ディスクのVirtual Machineを別リージョンに複製する方法について書いていきたいと思います。

VMのリージョン間複製方法について

Azure Virtual Machine(以下VM)のリージョン間での複製方法は大きく分けて以下の2つです。

  1. ディスクコピー
  2. Azure Site Recovery

このうち、ディスクコピーは”通常の方法”では非管理ディスクのみの対応となり、Azure Site Recovery(以下ASR)は同一地理クラスター内のASR対応リージョンにのみの対応となります。(リージョンのサポート:https://docs.microsoft.com/ja-jp/azure/site-recovery/azure-to-azure-support-matrix#region-support)

しかし、PowershellもしくはAzure CLIを利用することで、管理ディスクでもリージョン間でディスクコピーを行うことが可能となります。

Powershellを利用したVHDコピー

今回のシナリオ:東日本リージョンで稼働しているサーバーを停止させずに、米国リージョンに複製。

.bashrcとホームディレクトリに変更があります

1.稼働しているVMのスナップショットを取得します。

2.取得したスナップショットをエクスポートします。出力されたURLは必ず控えておいて下さい。

URL保持秒数は余裕をもって設定して下さい。
URLはメモ帳などにコピーしておきましょう。

3.エクスポートしたVHDファイルを、複製先のBLOBストレージへ出力します。
以下のPowerShellコマンドを実行します。
※追記 Azure Storage Explorerを使うことで、もっと簡単にコピー&ペーストできました。

$subscriptionId = (Get-AzSubscription -SubscriptionName "サブスクリプション名").Id #サブスクリプションID取得
Set-AzContext -SubscriptionId $subscriptionId #サブスクリプションID指定
$targetRSG = "US-RSG" #ターゲットリソースグループ
$targetStorage = "ustgtstorage" #ターゲットストレージアカウント
$targetContainer = "vhds" #ターゲットコンテナー
$targetLocation = "westus" #ターゲットリージョン
New-AzResourceGroup -Name $targetRSG -Location $targetLocation #ターゲットリソースグループ作成
New-AzStorageAccount -ResourceGroupName $targetRSG -AccountName $targetStorage -Location $targetLocation -SkuName Standard_LRS #ターゲットストレージアカウント作成
$storageKey = Get-AzStorageAccountKey -ResourceGroupName $targetRSG -Name $targetStorage #ストレージアカウントキー取得
$storageCtx = New-AzStorageContext -StorageAccountName $targetStorage -StorageAccountKey $storageKey[0].Value #ストレージアカウントコンテクスト取得
New-AzStorageContainer -Name $targetContainer -Context $storageCtx #コンテナー作成
$destDisk = "TESTVMdisk.vhd" #複製先ディスク名
$sourceSASurl = "https://md-1234567890.blob.core.windows.net/..." #複製元VHDファイルのURL
Start-AzStorageBlobCopy -AbsoluteUri $sourceSASurl -DestBlob $destDisk -DestContainer $targetContainer -DestContext $storageCtx #BLOBへコピー
Get-AzStorageBlobCopyState -Container $targetContainer -Blob $destDisk -Context $storageCtx -WaitForComplete #コピー状況取得
リソースグループおよびストレージアカウントが作成されます。

データディスクも同様の方法で出力します。

4.管理ディスクの作成を行います。「すべてのサービス」から「ディスク」を選択して、追加を行います。

5.移行先リージョンを選択した後、「ソースの種類」から「ストレージBLOB」を選び、「ソースBLOB」からVHDファイルを指定します。

適正なOSの種類を設定して下さい。
データディスクはなし(データディスク)を選択。

6.作成されたディスクから「VMの作成」を行えば、VMの複製完了です。データディスクはVMの設定から追加して下さい。

丸コピなので、ホスト名などもそのままです。

まとめ

今回のリージョン間でのVMの複製について、エンドユーザー様からお問い合わせを受けたため纏めていた情報を記事にしました。

リージョンを跨いだ複製に関しての情報が意外と少なく、またAzureRMからAzへ移行した後の情報もまだなかった為、ちょうどよい機会でした。

この記事を参考にVMのクローンを世界中に作ろーんとしていただければ嬉しいです。

この記事を書いている人
プロフィール画像

三醍醐

PCゲーム、サバゲ、TRPGを趣味にする典型的サブカルオタクです。PCパーツ代と装備品代で毎月末苦しんでおります。

記事について・製品についてのお問い合わせは下記フォームよりお願いいたします。

Runbookで管理タスクを自動化する。前のページ

Azure Bastion の紹介次のページ

関連記事

  1. Azure

    WindowsVirtualDesktopがGAされているので(その1)

    GAされてもう2か月たってますが…WindowsVirt…

  2. Azure

    AADDSを構築する記事

    ---5/13追記(追記事項は末尾記載)---皆様、こんにちは。在宅…

  3. Azure

    Azure料金に関する豆知識①

    こんにちは。新人クラウドエンジニアの三醍醐です。今回は、Az…

  4. Azure

    Runbookで管理タスクを自動化する。

    1.はじめに初めまして、Cloud Engineerの曽我で…

  5. Azure

    Loganalyticsを利用してログを分析する

    取得したログを分析、必要なログを確認する Loga…

  6. Azure

    Azureの無料枠ためしてみた。

    目次1はじめに2Azureの無料枠試してみた2-1前…

関連記事

  1. Azure

    Azure FilesをLinuxからマウントする記事
  2. Azure

    祝日判定を使った自動起動について:Azure Automation
  3. 未分類

    「Azure Functions」をC#で触ってみました。#4
  4. Azure

    Azure Migrateを使ったIaaS移行
  5. 未分類

    「Azure Functions」をC#で触ってみました。#2
PAGE TOP