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

    Azure VPNについてあれこれ

    こんにちは、三醍醐です。今回は、Azure VPNについてお…

  2. Azure

    AzureMonitorで作成できるアラートの種類と制限

    AzureMonitorのアラートの種類と制限について…

  3. Azure

    Azure Key Vaultでみんなしあわせ(その2)

    はい。Key Vaultを使うとキー情報等の小規模な重要情報の管理が…

  4. Azure

    Azure 資格試験の更新(2020年版の更新)

    新型コロナウイルスが世界中で猛威を振るっている状況ですが、早…

  5. Azure

    Azure 資格試験の更新(2020年版)AZ-203編

    2020年になり、早くも Azure 資格試験の更新がありま…

  6. Azure

    Azure ポイント対サイトの証明書作成

    ポイント対サイト VPN 接続を構成する際の証明書生成につい…

関連記事

  1. 最新情報

    Azureでオートスケールを試してみる
  2. Azure

    AADDSを構築する記事
  3. Azure

    Azure Key Vaultでみんなしあわせ
  4. 未分類

    「Azure Functions」をC#で触ってみました。
  5. 未分類

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