Azureにおける可用性　障害ドメイン・更新ドメイン

AZ-104の学習をしていて、思考を整理するために記事として書き記しています。
ご参考になれば幸いです。

# はじめに
クラウド環境でのシステム運用において、可用性を確保することは非常に重要です。Azureでは、仮想マシン (VM) の冗長化を実現する方法として、「可用性セット」と「可用性ゾーン」という仕組みが用意されています。本記事では、それぞれの特徴や仕組み、使い分けについて次の用語について整理しながら解説します。
```
可用性セット・障害ドメイン・更新ドメイン・可用性ゾーン
```
# 可用性セットとは？
<a href="https://learn.microsoft.com/ja-jp/azure/virtual-machines/availability-set-overview">可用性セット</a>は、同じ**データセンター内**で仮想マシンの冗長化を実現する仕組みです。Azureでは、仮想マシンを可用性セットに配置することで、計画的なメンテナンスや予期しないハードウェア障害によるシステム停止のリスクを低減できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3750668/a930d327-9598-8173-09c0-933dda5e868a.png)
この可用性セットは、「障害ドメイン」「更新ドメイン」の2つの概念に基づいて構成されています。

# 障害ドメイン (Fault Domain)
仮想マシンを配置する物理ハードウェアの単位を指します。電源やネットワーク機器を共有する範囲、つまり**サーバラック単位**で管理されます。
1つの障害ドメインに障害が発生した場合でも、他の障害ドメインに配置された仮想マシンは影響を受けません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3750668/99f0b135-3103-880a-213e-33ce1f0b4381.png)![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3750668/c9d4675c-a24c-ec32-e2ce-f63d42fcb947.png)![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3750668/45ad523f-0c65-627a-2e24-9044db508111.png)

# 更新ドメイン (Update Domain)
計画的なメンテナンス時に同時に更新が行われる仮想マシンのグループを指します。Azureでは、一度にすべての仮想マシンを停止するのではなく、異なる更新ドメインに属する仮想マシンを順番に再起動します。これにより、メンテナンス中もアプリケーションの一部が稼働し続け、影響を最小限に抑えることができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3750668/eff57ec3-1a7d-3f80-594e-bc2d43cf9312.png)

# 障害ドメインと更新ドメインの関係性/
- 障害ドメイン：最大３個まで設定可能
- 更新ドメイン：最大２０個まで設定可能

##### 6台のVMを持つ可用性セットの場合
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3750668/612a94ec-731d-7a0d-912c-16ef5b229314.png)
(<a href="https://learn.microsoft.com/ja-jp/azure/virtual-machines/availability-set-overview#fault-domains">Microsoft公式：障害ドメイン</a>より)
この場合次のような構成になっております。
```
可用性セット
├── 障害ドメイン 0
│   ├── 更新ドメイン 1: VM1
│   └── 更新ドメイン 4: VM4
├── 障害ドメイン 1
│   ├── 更新ドメイン 2: VM2
│   └── 更新ドメイン 5: VM5
└── 障害ドメイン 2
    ├── 更新ドメイン 3: VM3
    └── 更新ドメイン 1: VM6
```




# 可溶性ゾーンとは
<a href="https://learn.microsoft.com/ja-jp/azure/reliability/availability-zones-overview?toc=%2Fazure%2Fvirtual-machines%2Ftoc.json&tabs=azure-cli">可用性ゾーン</a>は、Azureリージョン内で物理的に分離された複数のデータセンターを利用して仮想マシンの冗長化を実現する仕組みです。仮想マシンを異なる可用性ゾーンに配置することで、大規模なデータセンター障害やリージョン内の一部の障害に対してもシステム停止のリスクを大幅に低減できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3750668/cae711de-4a9f-7a6c-140a-78516d2f1e0d.png)

##### 3つの可用性ゾーンを使用するの場合
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3750668/15e26930-96bc-ec62-64c7-27d3095bac02.png)
(<a href="https://learn.microsoft.com/ja-jp/azure/virtual-machines/availability-set-overview#fault-domains">Microsoft公式：障害ドメイン</a>より)
この場合次のような構成になっております。
```
Azure Region 1
├── 可用性ゾーン 1
│   └── VM1
├── 可用性ゾーン 2
│   └── VM2
└── 可用性ゾーン 3
    └── VM3
```
:::note info
ゾーン1・2・3を使用する場合は、VMを少なくとも3台作成する必要があります。それぞれ異なるゾーンに配置することで、システム全体の可用性を確保できます。
:::

# ポイント
:::note info
可用性ゾーン：複数のDCに分散し、高可用性を実現。
可用性セット：単一のDC内で、FD・UDを活用し高可用性を実現。
FD： サーバーラック単位で管理され、電源やネットワークの独立性を確保。
UD：VMを論理的にグループ化し、計画メンテナンス時の同時停止を防止。
:::


# おわりに
今回の記事では、可用性セット・障害ドメイン・更新ドメイン・可用性ゾーンの説明を記載いたしました。
学習が進みましたら、より細かい内容も追記していこうと思います。
最後までお読みいただきありがとうございました。
間違いなどがございましたら、ご指摘いただけますと幸いです。