🥩

ExpressRoute Gateway を SKU Migration する流れと通信影響

2024/12/02に公開
3

こちらは Microsoft Azure Tech Advent Calendar 2024 2日目 の記事です。

はじめに - ExpressRoute Gateway の SKU Migration とは

ExpressRoute Gateway の SKU Migration は、新しい ExpressRoute Gateway を自動作成し、既存の ExpressRoute Gateway からコントロールや接続を引き継ぐことで、影響を押さえながら SKU 変更ができる機能です。従来は、削除、再作成するかたちで移行する必要があり、影響も大きかったのですが、少ない影響で移行ができるようになっています。

今回、ExpressRoute Gateway の SKU Migration を実施し、流れや、移行中通信がどのくらい途切れるのか影響を確認してみます。

移行の流れ

なぜ移行するのか

移行したい主な理由は、以下のようなケースが考えられます。

サポートされる移行シナリオ

以下の移行シナリオがサポートされています。Az 対応ゲートウェイ SKU から Az 非対応ゲートウェイ SKU への、ダウングレード シナリオはサポートされていません。

  • Basic IP の Az 非対応 SKU から Standard IP の Az 非対応 SKU。
  • Basic IP の Az 非対応 SKU から Standard IP の Az 対応 SKU。
  • Standard IP の Az 非対応 SKU から Standard IP の Az 対応 SKU。

可用性ゾーンが有効な ExpressRoute 仮想ネットワーク ゲートウェイへの移行について - サポートされる移行シナリオ

移行手順 と 影響

検証環境

それでは移行手順と影響を確認して行きます。
今回は以下のような、オンプレミス と Azure を ExpressRoute で接続している環境で、常時双方向 Ping を行いながら、ExpressRoute Gateway の SKU を、ゾーン非対応 Standard からゾーン冗長 ErGW1AZ へと移行してみます。

移行作業中の注意点 : ブラウザを閉じたりしない

1.Azure Portal -> ER GW -> SKU Migration を開き、移行前のチェックを行う

まずは Azure Portal から、対象となる ExpressRoute Gateway を選択し、SKU Migration を開きます。
SKU Migration を開くと、移行できる状況であるか、check が行われます。

例えば、Gateway Subnet は、ExpressRoute をデプロイするだけであれば 最小 /28 のサイズで構成することもできますが、SKU Migration する場合は、/27 以上のサイズが必要であるため、このあたりが引っかかるポイントとなる可能性があります。そのような場合は、サブネットのサイズを変更することで対処します。

2.新しい ExpressRoute Gateway を作成し、移行を開始する


準備に問題が無ければ、新たな ExpressRoute Gateway の作成に必要な各種パラメータを入力します。設定するのは、 新しい Gateway Name、SKU、Public IP Address、Connection Name あたりです。


入力した内容で新しい ExpressRoute Gateway を作成して良ければ、 "準備" を押します。押すと、新しい ExpressRoute Gateway の作成が開始されます。作成には 20分 ~ 1時間程度かかります。
なお、この段階では既存の通信には影響はありません。


新しい ExpressRoute Gateway などが作成されました。

3.トラフィック や コントロール を移行する


新しい ExpressRoute Gateway の作成が完了すると、メトリック等が確認できるようになります。特段異常が無さそうであれば、新しく作成した ExpressRoute Gateway を ☑ してから、トラフィックの移行 ボタンを押します。


今回の検証では、ExpressRoute 経由での、毎秒の双方向 Ping が 2つ 落ちるくらいの影響( 1秒程度 x 2回 の通信断 )でした。

4. 移行を コミット して、旧 ER-GW などのリソースを削除する

さて、新しい ExpressRoute Gateway へ移行されました。このまま、 コミット をすると、旧 Gateway などの不要リソースが削除されます。
削除する前に、通信に支障が無いかなどを確認してから、問題ないようであれば、コミットをして削除します。


不要なリソースが削除されました。
以上で、ExpressRoute Gateway の SKU Migration が完了しました!

補足 : 診断設定は移行されないので、再設定が必要


診断設定は移行されないため、移行後再設定する必要があります。

まとめ : 1-2秒 の通信影響で切り替えることができた

ExpressRoute Gateway の SKU Migration を使うことで、影響を押さえながら SKU を変更することができました。
今回は、1-2秒 の通信影響で切り替えることができ、従来の再作成するしかなかったころに比べると、圧倒的に影響を少なく移行ができました。
しかし、ドキュメント上は 30秒程度の影響可能性があるとされていますので、念には念を入れ、しっかりと移行影響の少ないタイミングで実施頂くことをお勧めします。

制限事項など

公式ドキュメント抜粋ですが、以下の制限事項があります。

  • Az 対応ゲートウェイ SKU から Az 非対応ゲートウェイ SKU へのダウングレード シナリオはサポートされていない
  • 移行するには、GatewaySubnet に /27 以上のプレフィックスが必要
  • ExpressRoute 経由で プライベートエンドポイント を利用している場合、プライベートエンド接続は ステートフル(同一 ERGW インスタンス経由の通信である必要がある)為、移行に伴う接続断が生じる可能性がある。 TCP アイドルタイムアウト値を 15秒 から 30秒 に設定することが推奨。

移行に伴う追加アドレス空間が不要に (GA - 11/13/2024: Single Prefix enhancement to seamless gateway migration)

以前は、ExpressRoute Gateway の SKU Migration を実施する前に、対象となる Gateway Subnet に追加のアドレス空間を追加しておく必要がありました。しかし、2024 年 11 月 13 日以降、追加のアドレス空間が不要となるようになっています。

Azure Updates: Generally Available: Single prefix enhancement to seamless gateway migration

参考URL

https://learn.microsoft.com/ja-jp/azure/expressroute/gateway-migration

https://learn.microsoft.com/ja-jp/azure/expressroute/expressroute-about-virtual-network-gateways#private-endpoint-connectivity-and-planned-maintenance-events

https://zenn.dev/microsoft/articles/ipv4-ipv6-expressroute

Microsoft (有志)

Discussion

hiroyuki.nakamurahiroyuki.nakamura

貴重な情報のご共有いただき、ありがとうございます。
このツールの実行のための検証環境はどのように準備されたのでしょうか。
すべてAzureの環境でご準備されたのでしょうか。ExpressRoute回線とオンプレミス部分の接続環境をどのようにご準備されたのか、差し障りがなければご教示いただけませんでしょうか。

Masato UedaMasato Ueda

コメントありがとうございます。

ExpressRoute の環境を用意するのはやはり大変です(個人で検証するなどだと特に)。大変な中、それでも比較的実現可能な方法としては、 OCI - Azure 間であれば、実際の物理環境がなくとも ExpressRoute で接続した環境を構成することができるかなと思います。
こちらも参考にもなるかと。
https://zenn.dev/microsoft/articles/expressroute-lab-environment

今回の検証環境自体は、すべて Azure 上で構成をしています。
しかし、ExpressRoute は、Azure 上で ExpressRoute Circuit リソースを作成するだけでは動作しません。動作させるには、以下 Step 4 まで進め、プロビジョニングを完了する必要があります。
https://zenn.dev/microsoft/articles/expressroute-getstart#azure-expressroute-導入の流れを確認してみる

今回 Azure のみで検証構成できたのは、すでにプロビジョニング済みにした ExpressRoute Cicuit があったためであり、そちらを利用して、ExpressRoute 経由の仮想ネットワーク間接続(本番では非推奨です)した構成で検証をしています。
https://learn.microsoft.com/ja-jp/azure/expressroute/virtual-network-connectivity-guidance

hiroyuki.nakamurahiroyuki.nakamura

ご返信をいただき、ありがとうございます。
やはり、検証環境の準備は大変なのですね。いただきました各リンクを確認させていただき、
対応できるところでやってみようと思います。

お忙しいなかご返信いただき、ありがとうございました。