AWSユーザのためのAzure入門①（基本構成）

# 内容
仮想マシンを作成してバックアップ、監視の設定といった基本的な構成をAzureで作ってみます。
AWSを触ったことがある人がAzureをイメージ出来るようにAWSのサービスと対比して書いていきます。

下記、AWSの構成をAzureで作成します。
![a-azure-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2523652/9c6a6956-cc4a-3571-27f8-2971c2a25079.png)

* 権限関連
IAMユーザを作成して必要な権限を割り当てます。
* ネットワーク関連
VPC、サブネットを作成します。NACLを設定します。
ルートテーブルをInternet Gatewayに関連付けます。

* サーバ関連
EC2を作成してセキュリティグループの設定します。

* バックアップ関連
AWS Backupでスケジュールバックアップを構成します。

* 監視関連
CloudTrailの証跡をS3に保存します。
EC2のメトリクスをCloudWatchで監視してアラートをSNSで通知します。

# 前提
* 細かい設定は全て割愛して基本的な設定のみ行います。
例）VPCだとFlowLogsの設定、DHCPオプションセットなどの設定は行わない。Elastic IPの割り当ては行わないなど。EC2の細かい設定やEBSの暗号化設定など
* テストなので冗長性などは特に考えず一番安い構成で作成します。
* ざっくりとした手順のみ記載します。

# Azure構成

下記の環境を作成します。
![a-azure-01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2523652/9a0f1f3b-f30f-2e33-19f4-2817e52c6ebc.png)

* 権限関連
AzureAD上にユーザを作成します。この手順は割愛します。
（前提にテナントやサブスクリプション作成などがありますので別記事で記載します。）

* ネットワーク関連
最初にリソースグループを作成後、仮想ネットワーク、サブネットを作成します。
ネットワークセキュリティグループ（NSG）を修正してサブネットに関連付けます。
なお、Azureではシステムルートというデフォルトのルートテーブルがあり、デフォルトでインターネットへの経路があります。システムルートは削除出来ないため、カスタムルートで上書きます。

https://docs.microsoft.com/ja-jp/azure/virtual-network/virtual-networks-udr-overview


* サーバ関連
仮想マシンを作成します。NSGは仮想マシンのNICにも関連付けが可能ですが、今回は同一サブネットのセキュリティポリシーは同じと考えサブネットのみに適用します。

* バックアップ関連
仮想マシンのスケジュールバックアップを構成します。

* 監視関連
ストレージアカウントを作成して、アクティビティログの内容をストレージアカウントに保存します。
仮想マシンのメトリクスをAzureモニターで監視して、閾値を超えた場合にEメール通知します。

# 手順

## リソースグループ作成
リソース（仮想ネットワーク、仮想マシン、ストレージアカウントなど）の入れ物となります。
リージョンを選択しますが、リソースグループ自体のリージョンとなり、この中に作成されるリソースのリージョンを表しているわけではありません。リソースのリージョンは各リソース作成時に指定します。

![a-azure-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2523652/c8d468e3-2511-5acf-a543-480f8a008075.png)


## 仮想ネットワーク作成
AWSのVPCの様な感じで仮想ネットワーク（vNet）を作成します。サブネットを2つ作成します。
今回作成しませんが、NATゲートウェイはAWSのNATゲートウェイと用途が同じでプライベートセグメントの仮想マシンがアウトバウンドのインターネット通信をする際に使用します。

![a-azure-2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2523652/628baa6a-a59c-1f24-5f73-abdb727103ae.png)

## 仮想マシン作成
EC2作成の様な感じでOSやサイズ等を選んでいきます。作成後の接続方法もAWSと同じ様に秘密鍵をダウンロードしてSSHで接続する形です。EC2と違い仮想マシン名を簡単に変更出来ないの注意して下さい。
あとEC2と違いで一時ディスク（WinodowsだとDドライブ、Linuxだと/dev/sdb）が割り当てられます。このディスクは仮想マシン停止で初期化されます。

![a-azure-3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2523652/21f1e891-bd90-e0e3-f918-9330fdb5b92a.png)

## NSG設定
AWSのセキュリティグループ同様、NSGはステートフルです。
NSGを作成したサブネットに関連付けます。（NICからの関連付けは外します。）
サブネット、NICの両方にNSGを関連付けた場合、両方が評価されます。

![a-azure-4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2523652/a527359f-dd25-d094-1926-4feb1e791e1c.png)

NSGのインバウンドの構成を修正します。SSHがフルオープンになっているため、ソースを制限します。
AWSのセキュリティグループとの違いは優先度があるので上から評価されます。この点はAWSのNACLに似ています。

![a-azure-5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2523652/342c90f5-f9f3-3aac-b378-c02f2c020eb9.png)


## ストレージアカウント作成
Blob（S3の様なもの）、File（SMBでアクセス出来るストレージ）など色々なストレージがありますが、ストレージを使用する際に必要となります。ログやバックアップの保存先にストレージを使用するため作成します。
冗長性の箇所で指定しているLRSはAZ内の3か所にデータを保存するという一番可用性が低いオプションです。
（AZ障害に対応出来ません。）

![a-azure-6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2523652/f51cb8cd-f9ae-1ae3-b9b2-70e11eb6d0d2.png)


## Azure Monitor設定
CloudWatchの様な統合監視サービスです。メトリクスやログの監視などが出来ます。
今回適当なメトリクスがしきい値を超えた場合、アラートを飛ばす設定をします。
まず「アクショングループ」で「どこに？」を設定します。今回は電子メールを指定します。

![a-azure-7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2523652/36a3d132-d2fc-b9bd-4f59-9f5157364ec4.png)

監視お馴染みのしきい値設定です。アクションで先ほど作成したアクショングループを指定します。

![a-azure-8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2523652/d71076b1-1860-5727-9305-7544452dd1c4.png)

テストでメトリクスの閾値超過させるとアクショングループで指定したメールアドレスに下記のようなメールが送信されます。

![a-azure-9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2523652/699c865a-d0ff-31a4-4389-d9a94ede601b.png)

## アクティビティログ設定
AWSで90日以上前のCloudTrailのログを見るためにS3に証跡を保存するのと同じです。
アクティビティログをストレージアカウントへアーカイブします。

![a-azure-10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2523652/81cc9fb6-80e3-b7f6-1ca9-0b5954299bb6.png)

## Backup設定
Recovery Servicesコンテナー（バックアップデータを保存する入れ物）を最初に作成する必要があります。
AWS BackupでもBackup vaultを作成しますがそんな感じです。

![a-azure-11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2523652/39b642e6-a833-cae1-5b35-99cb763c93a0.png)

仮想マシンのバックアップからスケジュールバックアップを設定します。
デフォルトのポリシーを使用していますが、ポリシーを作成して世代数や取得時間の設定が出来ます。

![a-azure-12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2523652/21bd1054-39dc-32f3-0198-59186dee72ed.png)