Azure Compute Galleryを利用して、東日本リージョンに作ったVMイメージを西日本リージョンで使えるようにする

# はじめに
AzureでVMイメージを使ってVMを作成する際、何も設定していないとVMイメージが存在するリージョンにしかVMを展開できません。
![SnapCrab_No-0000.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/609611/aa565563-174a-65ef-6fcd-4d7258cf1c09.png)

東日本リージョンに作成してあったVMイメージを使って、西日本リージョンにVMを作成したかったので、<br>Azure Compute Galleryを利用してイメージをレプリケートさせました。

Azure Compute Galleryの詳細は[こちら](https://learn.microsoft.com/ja-jp/azure/virtual-machines/shared-image-galleries?tabs=azure-cli)。

# 前提条件
* 事前にVMイメージが作成されていること
　VMイメージ作成時にAzure Compute Galleryに登録することも可能ですが、今回は事前に作成されているVMイメージを使います。

# 手順
### Azure Compute Galleryの作成
1. Azure Portalにログインして、「Azure Compute Gallery」を検索してクリック
![SnapCrab_No-0001.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/609611/55624351-3675-6e0a-720d-dcddbd9d0b64.png)

1. 必要な情報を入力して「次：共有方法」をクリック
　リソース名には、アルファベット/数字/アンダースコア(_)/ピリオド(.)のみで、ハイフン（-)は使えません。
![SnapCrab_No-0002.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/609611/cd0ad365-870a-40f4-f19d-d5c8deff103d.png)

1.  「ロールベースのアクセス制御（RBAC）」を選択して、「次：タグ」をクリック
　Azure Compute Galleryから作成したイメージを外部に共有することも可能ですが、
　今回は他リージョンで使えるようにしたいだけなので、特に追加の設定はせずに先に進みます。
![SnapCrab_No-0005.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/609611/9fe4b1d8-4ff1-60d4-5672-e7f151c0382b.png)

1.  必要に応じてタグを設定して、「次：確認および作成」をクリック
![SnapCrab_No-0006.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/609611/593ab187-3644-4efc-5911-b6c87551e95e.png)

1.  設定した内容が反映されていることを確認して「作成」をクリックし、デプロイが完了するのを待つ
![SnapCrab_No-0007.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/609611/ae793d49-c487-879e-ba2f-086e765397a0.png)

1. デプロイが完了するとリソースが作成されます 
![SnapCrab_No-0009.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/609611/1652d801-ca00-a67c-e50d-4cda29dbebb0.png)

### VMイメージをAzure Compute Galleryに登録する

1. 作成したAzure Compute Galleryの上部の「＋ 追加」-「＋VMイメージ定義」をクリック
![SnapCrab_No-0010.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/609611/0f1bac09-29f0-3ae4-6edf-33a5e8bb1222.png)

1. 必要な情報を入力して「次：バージョン」をクリック
      |設定項目  |設定値  |備考  |
      |---|---|---|
      |サブスクリプション  |（Azure Compute Galleryが存在しているサブスクリプション)|グレーアウトされていて変更不可
      |リソースグループ  |（Azure Compute Galleryが存在しているリソースグループ)|グレーアウトされていて変更不可
      |地域  |（登録するVMイメージが存在しているリージョン)|
      |VMイメージ定義名  |（Azure Compute Galleryに登録する際に付与される定義名）|VMイメージと同名でも違う名前でも問題なし
      |OSの種類  |（登録するVMイメージのOS）|
      |VMの世代  |（登録するVMイメージのVMの世代）|
      |OSの状態  |一般/特殊|一般化（sysprepを実行）して作成したVMイメージであれば「一般」、そうでなければ「特殊」を指定
      |発行元  |一意の名前|
      |オファー  |一意の名前|
      |SKU  |一意の名前|

   ![SnapCrab_No-0011.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/609611/1e366f42-b76c-91f7-65af-1a00df011cb3.png)   
   　　　   ※「発行元」「オファー」「SKU」は、VMイメージを管理する上での情報として記載するだけで、どんな値を設定しても動作影響は無いですが、VMを作成した際の概要ページに設定値が表示されるので、変な名前を付けるとずっと残ります（笑）
   ![SnapCrab_No-0027.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/609611/3158d8c4-6829-73ff-61be-b48f2eb3fa64.png)


1. 登録するVMイメージとレプリケートするリージョンを選択し、「次：発行のオプション」をクリック
      |設定項目  |設定値  |
      |---|---|
      |バージョン名  |1.0.0|
      |リージョン|（登録するVMイメージが存在しているリージョン)|
      |ソースイメージ  |（登録するVMイメージ名)|
      |最初から除外  |◉いいえ|
      |VMイメージバージョンの終了日  |（登録したVMイメージの利用終了日）|
      |既定のレプリカ数  |1|
      |ターゲットリージョン  |（VMイメージを利用したいリージョンを追加）| 
  
    ![SnapCrab_No-0013.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/609611/47bfaf87-19a9-fc01-e6ff-78a8346ba0c0.png)



1. 必要に応じて登録するVMイメージの情報を入力して「次：タグ」をクリック
    今回のようにVMイメージのレプリケーションが目的であれば、特に入力する必要はないです。
![SnapCrab_No-0014.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/609611/9c17dcc1-d23a-5c24-8c68-bfffcba7953a.png)


1. 必要に応じてタグを設定し、「次：確認および作成」をクリック
![SnapCrab_No-0015.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/609611/77813039-995e-0cfa-aa57-b14786478afc.png)

1. 設定した内容が反映されていることを確認し「作成」をクリック
![SnapCrab_No-0016.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/609611/06bdc940-42e7-c9d6-2f09-8ce7d0575dac.png)


1. デプロイが完了すると、Azure Compute Gallery内にイメージが登録されます
![SnapCrab_No-0020.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/609611/59b50430-33a0-bc19-e8ce-1829028f00eb.png)



# VMイメージ登録後
西日本リージョンに、東日本リージョンに作成されたVMイメージを利用してVMを作成することができました。
![SnapCrab_No-0021.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/609611/27a971ed-3600-ef96-a890-a2c7a30ed822.png)

この設定をしておくとAnsibleからでも同様にVMイメージから西日本リージョンにVMを展開できたので、色々便利に使えそうです(*'▽')