【Azure】Linux VMを複製して別リージョンにデプロイする方法

# 0. はじめに
Azure 特定のリージョンにデプロイした Linux VM をディザスタリカバリ (DR) 目的などで、別リージョンに複製 (コピー) したい思うことがあるのではないでしょうか。
今回、**「Azure Linux VM を複製して別リージョンにデプロイする方法」** についてまとめてみようと思います。

# 目次
[0. はじめに](#0-はじめに)
[1. Azure Linux VM の複製](#1-azure-linux-vm-の複製)
　- [1.1 Azure Linux VM OS スナップショットの作成](#11-azure-linux-vm-os-スナップショットの作成)
　- [1.2 スナップショットからのAzure Linux OS ディスクの作成](#12-スナップショットからの-azure-linux-os-ディスクの作成)
　- [1.3 Azure Linux OS ディスクのリージョン間コピー](#13-azure-linux-os-ディスクのリージョン間コピー)
　- [1.4 別リージョン上にコピーした Azure Linux OS ディスク から Azure Linux VM をデプロイ](#14-別リージョン上にコピーした-azure-linux-os-ディスク-から-azure-linux-vm-をデプロイ)
[2. 参考情報](#2-参考情報)
[3. 最後に](#3-最後に)

# 1. Azure Linux VM の複製
**【前提条件】**
・ Azure Linux VM が既にデプロイされている。
・ Microsoft Azure Storage Explorer がインストールされたVM(OS)より、複製元、複製先の Azure サブスクリプション (Azure Storage アカウント) へアクセスが可能となっている。

**※ 複製元、複製先は別サブスクリプション間、同一サブスクリプション間の何れでも問題なく、また、別リージョン間、同一リージョン間の何れでも問題ありません。**

**今回は、以下の図の流れで Azure Linux VM の複製を実施します。**

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3540203/4a18d0ad-4a6d-d166-2ce8-5838d6c6753d.png)


## 1.1. Azure Linux VM OS スナップショットの作成
1\) Azure 管理ポータルから複製する Azure Linux VM を停止し、状態が「停止済み (割り当て解除)」になっていることを確認します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3540203/a6a6904c-3666-1184-d2a7-cb88a4947360.png)
<br>
2\) 設定 - ディスク を選択後、OS ディスク - 該当のOS ディスク (本例では bje001_OsDisk_1_****」) を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3540203/c85aacb6-2578-729d-c399-04df67c2dac6.png)
<br>
3\) 「+ スナップショットの作成」を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3540203/c754aee5-729a-e5ad-4e2c-03f964ea68d9.png)
<br>
4\) 必要項目を入力後、「確認および作成」ボタンを押下し、スナップショットを作成します。

・ 名前 : 任意のスナップショット名
・ スナップショットの種類 : フル
・ ストレージの種類 : 任意

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3540203/a102f871-a420-a1a1-2e16-9136e7cb0d6b.png)
<br>

## 1.2. スナップショットからの Azure Linux OS ディスクの作成
1\) Azure 管理ポータルから「スナップショット」で検索を実施し、「スナップショット」サービスを選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3540203/86ce1330-aae1-7d5f-fe5f-d4c619041f99.png)
<br>
2\) 新規マネージドディスク(Azure Linux OS ディスク) のベースとなるスナップショットを選択します。
※ 本手順では「ubje001-OsDisk-snap01」を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3540203/eac87021-5ff2-8b23-2a43-a536ca2e2ae3.png)
<br>
3\) 「+ ディスクの作成」を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3540203/f11b4f13-44aa-8843-e3b3-3aa82900fccc.png)
<br>
4\) 必要項目を入力後、「確認および作成」ボタンを押下し、新規マネージドディスク(Azure Linux OS ディスク) を作成します。

・ 名前 : 任意のマネージドディスク名
・ 可用性ゾーン :  任意
<br>
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3540203/fe437220-f247-9b92-13d7-fd98f2e368f2.png)
<br>
5\) 正常に 新規マネージドディスク(Azure Linux OS ディスク) が作成されたことを確認します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3540203/1eecac09-3373-a269-528b-fde010c4460b.png)
<br>

## 1.3. Azure Linux OS ディスクのリージョン間コピー
Azure Linux OS ディスクのリージョン間コピーを実施する方法として、**「Azure CLI」** を利用する方法、**「Microsoft Azure Storage Explorer」** を利用する方法などの複数の方法があります。
今回は最も簡易的にAzure Linux OS ディスクのリージョン間コピーを実施することができる **「Microsoft Azure Storage Explorer」** を利用した手順をまとめてみます。

[Azure Storage Explorer ](https://azure.microsoft.com/ja-jp/products/storage/storage-explorer?wt.mc_id=DP-MVP-5004154)

<br>
1\) Azure 管理ポータルから「スナップショット」で検索を実施し、「スナップショット」サービスを選択します。
2\) コピー元の OS マネージド ディスク が配置された Azure サブスクリプション - Disks - リソース グループ を選択し、コピー元の OS マネージド ディスク (本例では「ubje001-OsDisk-dup」を選択後、「コピー」を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3540203/3b3a1cce-a9dc-4ac2-16b8-56de89bc9b21.png)
<br>
3\) コピー先の Azure サブスクリプション - Disks - リソース グループ を選択し、「貼り付け」を選択します。
**※ 別サブスクリプション間、同一サブスクリプション間の別リソースグループ間、同一サブスクリプションの同一リソースグループ間の何れでもコピーが可能。**

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3540203/fa074544-a384-1ed9-39e2-68952fff83e6.png)
<br>
4\) 必要項目を入力後、「貼り付け」ボタンを選択します。

・ ディスク名 : 任意の名前
・ 場所 : OS マネージド ディスクを配置したいリージョンを指定 (本例では 「西日本」を指定)
・ 可用性ゾーン : 任意の可用性ゾーンを指定
・ アカウントの種類 : 任意のアカウントの種類を指定 

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3540203/80752f1b-0f9a-4ad5-d64d-105d86c08378.png)
<br>
5\) 正常にコピーが完了し、OS マネージド ディスクがコピー先(指定したリージョン)で作成されたことを確認します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3540203/6649bd66-582d-9c37-4868-827b9881ec59.png)
<br>

## 1.4. 別リージョン上にコピーした Azure Linux OS ディスク から Azure Linux VM をデプロイ
1\) Azure 管理ポータル - ディスク より、別リージョンからコピーしてきた Azure 仮想マシン OS ディスクを選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3540203/21428a29-48b6-401e-68ce-45970e5207b0.png)

<br>
2) 概要 -「+ VM の作成」を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3540203/aadc58d7-a6be-a21f-b60a-fc35c3db4626.png)

<br>
3) 必要項目を入力後、「確認および作成」を選択し、Azure Linux 仮想マシンのデプロイ作業を実施します。
・ 仮想マシン名 : 任意のホスト名
**※但し、Azure Linux 仮想マシン OS 上のホスト名は「複製元のホスト名」のままとなるため、ホスト名の変更が必要な場合は、OS 上から変更が必要。** 
・ イメージ : コピーしてきた Azure Linux 仮想マシン OS ディスク
・ 仮想ネットワーク : 該当リージョン上の任意の仮想ネットワーク

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3540203/643e0d0c-3332-4a6a-311a-5204c30f83a6.png)

<br>
4) 複製した Azure Linux 仮想マシンを起動し、接続できることを確認します。(複製元の Azure Linux 仮想マシン接続時に使用していた pem ファイルを利用)
※ 以下の例では、複製元の Azure Linux 仮想マシンにインストールされていた PostgreSQL への接続テストを複製先で実施しています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3540203/9d6327e2-9755-3dc1-e28d-8cdd72b5e49a.png)
**※ 複製の場合、Azure Linux VM をデプロイ時に指定した「仮想マシン名」(本例では ubje001sa) は、 Azure Linux VM OS の hostname には反映されず、複製元の hostname がそのまま引き継がれるため、変更が必要な場合は OS から変更を実施する必要があります。**

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3540203/49c91136-7e60-95f3-1223-aa1b3ef07b98.png)

# 2. 参考情報
[CLI を使用した同じまたは別のサブスクリプションへのマネージド ディスクのコピー](https://learn.microsoft.com/ja-jp/previous-versions/azure/virtual-machines/scripts/virtual-machines-cli-sample-copy-managed-disks-to-same-or-different-subscription?wt.mc_id=DP-MVP-5004154)
[az disk create](https://learn.microsoft.com/ja-jp/cli/azure/disk?wt.mc_id=DP-MVP-5004154&view=azure-cli-latest#az-disk-create)

# 3. 最後に
今回、**「Azure Linux VM を複製して別リージョンにデプロイする方法」** についてまとめてみました。 但し、Azure Linux VM にインストールされた 3rd パーティ製アプリケーション によっては、複製後の動作が保証されない (サポートされていない) 場合があります。
そのため、複製を実施する前に OS 上にインストールされたアプリケーションが複製をサポートしているかをしっかりと確認されると良いかと思います。
また、複製がサポートされていないアプリケーションが存在している場合は、アンインストール／再インストールを実施することを検討されると良いかと思います。

なお、各種クラウドサービスは日々進化していくため、Azure Linux VM を複製する際には、マイクロソフトが公開している最新の公開情報についても確認ください。

**※ 本ブログに記載した内容は個人の見解であり、所属する会社、組織とは全く関係ありません。**