Azure Site Recovery (A2A) の通信要件と閉域化について

こんにちは、アーキテクトのやまぱんです。
補足コメントや質問、<font color="red">**いいね、拡散**</font>、是非お願いします🥺！
間違ってたら<font color="red">**優しく**</font>教えてください！

今回は自分のメモ用に Azure Site Recovery の A2A (Azure) シナリオにおける閉域化について書いてみます。

# 前提
## Azure Site Recovery とは
Azure の DR ソリューションです。常にデータをレプリケーションし最新の状態に同期しておくことで災害時の素早い立ち上げを可能にしています。

プライマリリージョンとセカンダリリージョンで DR を構成し、プライマリが被災した場合にセカンダリで VM を立ち上げて、サービスを再開するといったような構成をとります。

+ 公式ドキュメント　MS Learn

 https://learn.microsoft.com/ja-jp/azure/site-recovery/site-recovery-overview


## A2A とは
**A2A / Azure to Azure** のシナリオ、 Azure 環境同士で DR を組むことです。

似たようなソリューションとして Azure VM Backup の Cross Region Restore という機能がありますが、Azure Backup の番号は RTO に関する SLA がありません。
一方 Azure Site Recovery の場合は 2 時間以内の RTO を SLA として謳っています。

その他、Azure Backup と Azure Site Recovery の違いについては下記の公式サポートブログが参考になります。

https://jpabrs-scem.github.io/blog/AzureBackupGeneral/DR_ASR_or_VMBackup/

+ その他の DR シナリオ
その他のシナリオは A2A も入れて以下のようにあります。

|略語|どこからどこ？|DR環境|
|:-|:-|:-|
|A2A|Azure to Azure|Azure 環境同士の DR 構成|
|V2A|VMware to Azure|VMware 環境 と Azure 環境の DR 構成|
|H2A|Hyper-V to Azure |Hyper-V 環境 と Azure 環境の DR構成|
|P2A|Physical to Azure|物理環境と Azure 環境の DR構成|



## 閉域化とは
ここで言う 閉域化 とは Public IP （インターネット経由） ではなく、なるべくセキュアなネットワーク経路、つまりサービスエンドポイント や Private IP（プライベートネットワーク経由）で通信させることとします。

:::note
+ プライベート エンドポイント と サービスエンドポイント の違いについては下記をご覧ください
https://jpaztech.github.io/blog/network/pe-difference-se/
:::

# Azure Site Recovery  A2A シナリオにおける閉域化構成
## 通信要件
まず大前提として下記の宛先に対する 疎通が必要です。

サービス|	URL|	サービス タグ
|:-|:-|:-|
Storage Account |*.blob.core.windows.net	|Storage.<ソースリージョン>
Key Vault	|*.vault.azure.net|	AzureKeyVault
Site Recovery|	*.hypervrecoverymanager.windowsazure.com	|AzureSiteRecovery
Azure Active Directory(Microsoft Entra ID)	|login.microsoftonline.com|	AzureActiveDirectory
Event Hub	|*.servicebus.windows.net|	EventHub.<ターゲットリージョン>
Automation	|*.automation.ext.azure.com	|GuestAndHybridManagement


*Key Vault は ADE (Azure Disk Encryption) 化された VM 、いわゆる暗号化 VM の場合のみ必要。

参考：URL に対する送信接続 / Azure VM ディザスター リカバリーのネットワークについて - MS Learn

https://learn.microsoft.com/ja-jp/azure/site-recovery/azure-to-azure-about-networking#outbound-connectivity-for-urls

## プライベート エンドポイント 対応してる宛先
必要な宛先のうちプライベート エンドポイントに対応している宛先は以下です。
つまりこれら以外は 送受信ともに Private IP を用いた通信はできません。

+ Storage Account 
+ Key Vault
+ Site Recovery 


## サービスエンドポイント 対応してる宛先
サービスエンドポイント に対応している宛先は以下です。
プライベート エンドポイントに対応しているものに加えて、Microsoft Entra ID (Microsoft Entra ID) と Event Hub が追加された形になります。
+ Storage Account 
+ Key Vault
+ Site Recovery 
+ Azure Active Directory(Microsoft Entra ID)	
+ Event Hub

## プライベート エンドポイントにもサービスエンドポイントにも対応してない宛先
皆さんおわかり、**オートメーションに対する宛先はプライベート エンドポイントもサービスエンドポイントにも対応していないので Public IP を用いた経路が必要になります。**

+ Automation

# そもそも Automation の宛先って役割なんだっけ
MS Learn によれば下記です。
> レプリケートされる項目に対してモビリティ エージェントの自動アップグレードをポータルを介して有効にすることを許可します

参考：URL に対する送信接続 / Azure VM ディザスター リカバリーのネットワークについて - MS Learn

https://learn.microsoft.com/ja-jp/azure/site-recovery/azure-to-azure-about-networking#outbound-connectivity-for-urls

なので、**Automation の宛先に対して疎通がとれなくても、Azure Portal を介した手動更新 / および自動アッグレードができないだけで Azure Site Recovery を用いた DR 構成を組むことは可能です。**
その場合には以下の MS Learn に記載されているリンクから手動でアップデートをする必要があります。

* Site Recovery コンポーネントでは、N-4 バージョン (N は最新リリース バージョン) がサポートされているため、塩漬け状態にしておくことはできません、 Not Suppot となります。
月に一度程度確認してあたらしいものが出てればアップデートする運用などでカバー可能かと思います。

・サポートされる更新プログラム - Site Recovery の最新情報 - MS Learn

https://learn.microsoft.com/ja-jp/azure/site-recovery/site-recovery-whats-new#supported-updates

## まとめ

各宛先のプライベート エンドポイント、サービスエンドポイントの対応状況は以下の通り。

サービス|	URL|	プライベート エンドポイント |サービスエンドポイント
|:-|:-|:-|:-|
Storage Account |*.blob.core.windows.net	|〇 |〇
Key Vault	|*.vault.azure.net|	〇|〇
Site Recovery|	*.hypervrecoverymanager.windowsazure.com	|〇|〇
Azure Active Directory(Microsoft Entra ID)	|login.microsoftonline.com|	× |〇
Event Hub	|*.servicebus.windows.net|	× |〇
Automation	|*.automation.ext.azure.com	|×|×

:::note info
+ Azure Site Recovery (A2A)  では プライベート エンドポイント のみを用いたいわゆる完全閉域は構成できない
* Key Vault は 暗号化 VM でない時は不要
* Automation は 手動 Update する運用が可能であればなくても可能
:::

## Azure Firewall でのネットワークルールでの設定例
+ 2024/07/23(火) 追記
それぞれにサービスタグがあるので、サービスタグで設定することが可能です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2982508/1ca63cc8-185c-87f0-f939-222b11711df4.png)



# 参考

https://zenn.dev/microsoft/articles/asr-with-serviceendpoint

https://qiita.com/aktsmm/items/df1a117f049954b2ffa4