【AZ-900】「Azure アーキテクチャコンポーネントの理解」についての整理

## 本記事の目的
* 本稿はAZ-900を受験するにあたり参考とした教材「合格対策 Microsoft認定 AZ-900:Microsoft Azure Fundamentalsテキスト&問題集」について学習した内容を、自身の備忘録としてまとめたものです。
    * 参考(amazon url)：[合格対策 Microsoft認定 AZ-900:Microsoft Azure Fundamentalsテキスト&問題集](https://www.amazon.co.jp/dp/4865942319/) 
* AZ-900は2020年11月9日に試験内容が変更されており(詳しくは[公式サイト参照](https://docs.microsoft.com/ja-jp/learn/certifications/exams/az-900))、上記本は2020年3月8日時点での内容のため、章の構成が最新状況と異なります。
* しかし、求められているスキルを確認すると、**求められる内容自体に大きな変化はない** ため、こちらの参考書は未だ有効であると判断しました。
    * 試験内容を日本語訳した記事もQiitaで作成しました。→ [【AZ-900】試験範囲の変更内容の翻訳【2020年11月9日更新内容】](https://qiita.com/picato0511/items/114693650c9eb062c0f5)
* この記事を参考にされる方は、上記背景をよくご理解の上、ご活用ください。

## Azure アーキテクチャコンポーネント

Azureで作業するために理解しておくべき概念や用語

* Azureにおける各サービスの立ち位置や階層構造は以下
    * ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/462467/06f0cd2a-8c07-3695-5bce-0fd90bc09ffd.png)
    * 画像引用：[Azureサブスクリプション、管理グループ、リソース、リージョンの概要](https://docs.microsoft.com/ja-jp/learn/modules/azure-architecture-fundamentals/overview)
* 管理グループ
    * 複数のサブスクリプションを管理する
* サブスクリプション
    * ユーザーアカウントと、ユーザーの作成したリソースを管理する
    * サブスクリプションごとに使用できるリソースや機能に制限がある
* リソースグループ
    * 作成したリソースをまとめて管理する
* リソース
    * 最小単位であり、仮想マシン、ストレージ、SQLデータベースなどは全てリソースと呼ばれる

### 【補足】リソースグループ

* リソースグループとは
    * リソースの管理と整理を補助するために、論理的にグルーピングされたリソース群
    * **リソースは必ずこのリソースグループのいずれかに含まれる**
    * **リソースを複数のリソースグループに含めることはできない**
    * リソースグループには、複数のリージョンのリソースを含めることができる
    * リソースグループには、複数の種類のリソースを含めることができる

## Azure Resource Manager

* ARMと略される
* Azure内で、リソースの作成や更新、アクセス制御やロック、タグ付けなどの管理を司る
* リソースグループの管理もARMで管理
* 「ARMテンプレート」というリソースの作成を自動化できるテンプレートを作成できる

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/462467/f1d47af9-8470-e07e-1f26-e18bae7247bd.png)
画像引用：[AzureリソースとAzure Resource Manager](https://docs.microsoft.com/ja-jp/learn/modules/azure-architecture-fundamentals/resources-resource-manager)

## リージョン

* 地理的に近い、複数のデータセンターをまとめた呼び方
* リソースの作成時に、そのリソースを実行する場所を指定する必要がある
* 日本国内では、東日本と西日本の2リージョンが存在する
    * 例えば東日本リージョンを選択した場合、「東日本に存在するデータセンターのどこか」が選択されている

### 【補足】特殊なリージョン

* Azure Government
    * 米国の政府機関とそのパートナーのみが利用できるリージョン
* Azure Germany
    * データをドイツ国内に保存する必要があるユーザーや企業のみが利用できるリージョン
    * ドイツのフランクフルトとマクデブルクに存在するデータセンターを利用
* Azure China
    * 中国の現地法人のみが利用できるリージョン
    * 中国のインターネットサービスプロバイダである21Vianetが管理・運用

## 可用性セット

* 仮想マシンがデータセンターのハードウェア障害や、メンテナンスなどによって停止してしまうことを極力回避するための設定の一つ
* 「障害ドメイン」と「更新ドメイン」の2つの設定を変更できる
* 障害ドメインで保証される事象：
    * 必ず別のサーバーラックに仮想マシンが配置される
* 更新ドメインで保証される事象：
    * 必ず別のホストサーバーに仮想マシンが配置される
* 可用性セットで対応できない事象：
    * データセンターは分けられる保証がないため、データセンター自体に障害が起きた場合、全てに障害が発生する

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/462467/d4ab39f7-4654-ac5c-f69d-8930b3fc27c9.png)

この例では、障害ドメイン：2、更新ドメイン：5で設定されている。
つまり、「2台のサーバーラックに仮想マシンが構築され、5つのホストサーバー上に仮想マシンが配置されること」が保証される。

## 可用性ゾーン

* 仮想マシンがデータセンターのハードウェア障害や、メンテナンスなどによって停止してしまうことを極力回避するための設定の一つ
* 可用性セットよりも高い可用性
* 可用性ゾーンで保証される事象：
    * 必ず別のデータセンターに仮想マシンが配置される
    * データセンター自体に障害が起きた場合でも、別の仮想マシンに障害は発生しない
* 可用性ゾーンで対応できない事象：
    * 仮に大きな地震などで、リージョンに存在するデータセンター全てに被害が生じた場合、全てのリソースに障害が発生する

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/462467/d402fd1b-6116-ee0e-ab48-d4f84e8fdfaf.png)

この例では、可用性ゾーン：2で設定されている。つまり、「2つのデータセンターに配置されること」が保証される。