※Public Preview として公開された機能 (2020/07/07 時点) を取り扱ったブログ エントリとなります。一般公開 (GA) した際、機能の挙動や制限に差異、変更がある可能性があります。予めご理解ください。
Microsoft Build 2020 のタイミングでアナウンスされた Azure Storage アカウントにおける優先ルーティング設定について、アナウンス時点 (2020/05/19) では、フランス南部、米国中北部、米国中西部のみ利用可能でしたが、いつの間にか東日本リージョン、西日本リージョンも利用可能になっていたので、纏められる範囲でまとめてみました。
Azure Storage アカウントにおける優先ルーティング設定について
優先ルーティング設定は、オンプレミス上にあるクライアント PC、サーバーなどからインターネット経由で Azure Storage アカウントへアクセスする際のルーティング方法を指定、設定することが可能になる機能です。
アクセス元から Azure Storage アカウントのエンドポイントにアクセスする際、既定では「Microsoft ネットワーク ルーティング」と呼ばれるルーティング方式で ISP → ISP に一番近い Azure リージョンのエッジ ルーター → Microsoft のグローバル ネットワークを経由していました。
今回のアナウンスより、「Microsoft ネットワーク ルーティング」方式以外で優先ルーティングとして設定することができる「インターネット ルーティング」方式では、 ISP → Azure Storage アカウントがある Azure リージョンのエッジ ルーターを経由してアクセスすることが可能となります。
なるほど、わからん (
別リージョンにある Azure Storageへのアクセスを図にすると分かりやすいので、表現すると以下のような感じになります。
詳細は、以下の Microsoft 社の公開ドキュメントに記載があるのでご確認ください。
インターネット ルーティングにした際のメリットとデメリット
Azure Storage アカウントの優先ルーティングをインターネット ルーティングにした際のメリットとデメリットをざっくりまとめると、こんな感じです。コスト メリットを取るか、ネットワークのスループットを取るかどうかを使用する環境で判断する形ですね。
メリット
- (Microsoft ネットワーク ルーティングと比較して、) Azure Storage アカウントからの送信データ (Egress Traffic) が安価
ダウンロードするデータ量が膨大になる場合には大きなコスト メリットが得られます。- Egress source region が Zone1 の場合
Routing Method 0-5 GB/月 5GB-10 TB/月 10-50 TB/月 50-150 TB/月 150-500 TB/月 Microsoft Network Free $0.087/GB $0.083/GB $0.07/GB $0.05/GB Internet Free $0.085/GB $0.065/GB $0.06/GB $0.04/GB - Egress source region が Zone2 (東日本、西日本リージョンなど) の場合
Routing Method 0-5 GB/月 5GB-10 TB/月 10-50 TB/月 50-150 TB/月 150-500 TB/月 Microsoft Network Free $0.12/GB $0.085/GB $0.082/GB $0.08/GB Internet Free $0.11/GB $0.075/GB $0.07/GB $0.06/GB
- Egress source region が Zone1 の場合
デメリット
- (Microsoft ネットワーク ルーティングと比較して、) Storage アカウントまでのアクセス経路でインターネットの通信網を多く通過するため、遅延、パケットロスといった影響を受けやすい。
優先ルーティングの設定
Storage アカウントの優先ルーティングの設定は「Storage アカウントの作成時」、もしくは「Storage アカウントの管理ブレードにある [ファイアウォールと仮想ネットワーク]」から実施することが可能となっています。
Storage アカウントの作成時
[ネットワーク] タブ – [ネットワーク ルーティング] から選択、設定可能です。
どちらを選択しても、エンドポイントの URL には変更はありませんが、Azure サービスとしてのエンドポイントおよびパブリック IP アドレスは異なることを nslookup コマンドから確認することができます。
Storage アカウントの管理ブレードにある [ファイアウォールと仮想ネットワーク]
Storage アカウントの管理ブレードにある [設定] – [ファイアウォールと仮想ネットワーク] から選択、設定可能です。
[ネットワーク ルーティング] 以外にも [ルート固有のエンドポイントの公開] という設定項目がありますが、これをオンにすることで Storage アカウントのエンドポイントとは別のエンドポイントがそれぞれ有効化、利用可能となります。
有効化したエンドポイントは、[設定] – [プロパティ] から確認することができます。
- Microsoft ネットワーク ルーティング
- <Storage アカウント名>-microsoftrouting.<ストレージの種類>.core.windows.net
- Internet ルーティング
- <Storage アカウント名>-internetrouting.<ストレージの種類>.core.windows.net
優先ルーティングの挙動について
pathping コマンドの実行結果を示したものとなります。なお、各 Azure リージョンのエッジ ルーターの FQDN、IP アドレスは確認する限り公開されていないため、どこからどこまでが Microsoft グローバル ネットワークがどうかは正確ではないため、ご注意願います (MSFT 所有のネットワークのFQDN、IP アドレスかどうかは確認済み)。
あー、設定によってルーティング パスが異なるんだねー、レベルで見てもらえると幸いです。
// 間違っていたら、どこからか指摘、修正依頼入ると思うのでw
Microsoft ネットワーク ルーティング
インターネット ルーティング
ダウンロード/アップロード時間の違いについて
AzCopy コマンド (v1.4.3) を用いて 10 GB のファイルをダウンロード/アップロードした際の結果を示します。
どちらの場合も Microsoft ネットワーク ルーティングのほうが完了時間が速いですね。
Storage アカウントからのダウンロード
Storage アカウントへのアップロード
おまけ (Shared Access Signature の設定について)
Storage アカウントの管理ブレードにある [ファイアウォールと仮想ネットワーク] の設定項目 [ルート固有のエンドポイントの公開] にて、両方とも有効にする必要がありますが、SAS を作成する際、優先ルーティング方式を指定できるようです。
// 挙動については、今回は確認していないので、興味がある方は是非検証して、こっそり教えてくださいw