yamamototis1105’s tech blog

ネットワークを中心とした技術ブログです

AWS Site-to-Site VPNトンネルエンドポイントのライフサイクル制御機能によるメンテナンステスト

はじめに

 昨年度リリースされたSite-to-Site VPNトンネルエンドポイントのライフサイクル制御機能ですが、単なるメンテナンス通知・表示・実行の機能でなく、メンテナンステスト機能としての有効性を伝えるために記事を書きました。
(JAWSUG発表内容と被りますが、検証だけでなく事例も書き加えてます。)

aws.amazon.com

機能概要

 2023/3/30に発表された機能で、Site-to-Site VPN のメンテナンス情報が可視化されて制御できるようになりました。主要な機能は以下1~3です。

  1. メンテナンスの対象VPN接続や日時をユーザにメールで通知
  2. 保留中のメンテナンス有無、自動適用日、最終適用日を表示
  3. ユーザの好きなタイミングでメンテナンスを実行 (VPNトンネル置き換え)

機能詳細

 メンテナンスが計画された状態で、(1)「ルーティングされていないVPNトンネルから置き換え」(2)「ルーティングされているVPNトンネルから置き換え」を実施した結果をまとめてみました。

(1) ルーティングされていないVPNトンネルから置き換え

 メンテナンス済みのトンネル向けのMED値を下げ、メンテナンス済みのトンネルにルーティングするため、通信影響を与えません。

(2) ルーティングされているVPNトンネルから置き換え

 ルーティングされているトンネルを置き換えようとしても、他トンネルにルーティングしてからトンネルを置き換えるため、通信影響を与えません。

注意事項

 VGW(TGW)でIN方向ルーティング制御のためMED値が設定され、CGWでOUT方向ルーティング制御のためWeight値やLocalPreference値を設定した場合、前者より後者の方が優先されます。
 そのため、Weight値やLocalPreference値を設定しない、もしくは同じ値を設定しなければ、メンテナンス時におけるルーティング自動変更が機能せず、通信影響を与えることになります。

 公式サイトのルーティング注記でも、「MED の低いアップトンネルが優先されるようにするには、カスタマーゲートウェイバイスで、両方のトンネルに対して同じ重みおよびローカル優先設定の値が使用されていることを確認します」と記載されています。

docs.aws.amazon.com

ユースケース

 一見、通信影響を与えないようにメンテナンスできるからありがたい!と思われるかもしれません。
 実は、メンテナンスの自動適用日まで放ったらかしでも、本機能と同様の動作で通信影響を与えずに自動的にメンテナンスされるため、敢えてユーザがメンテナンスしたいケースは絞られると思います。

 具体的なユースケースとしては、(1)「ユーザの好きなタイミングでメンテナンスしたいケース」(2)「Site-to-Site VPNの疑似メンテナンステストを事前に実施したいケース」などが考えられます。
 個人的には、(2) の使い方が大変有用だと思っています。

(1) ユーザの好きなタイミングでメンテナンスしたいケース

 前述の通り、メンテナンスが通信影響を与えないため、敢えてユーザがメンテナンスのタイミングを制御したいケースは少ないかと思いますが、以下1~3が挙げられます。

  1. VPNトンネルが単一構成で、メンテナンス時に通信断が発生するため、通信断が許容できるタイミングでメンテナンスしたいケース(公式サイト記載ユースケース
  2. VPNトンネルの状態変化によって、監視アラームが鳴動するなどの影響を受けるため、VPNトンネルの状態変化のタイミングを指定したいケース(公式サイト記載ユースケース
  3. VPNトンネルは冗長構成だが、万が一ルーティング自動変更が失敗する可能性を考慮し、通信断が許容できるタイミングでメンテナンスしたいケース

(2) 「Site-to-Site VPNのメンテナンステストを実施したいケース」

 メンテナンス時におけるルーティング自動変更は、Site-to-Site VPNを作成するだけで動作するわけでなく、CGWのBGPパラメータによっては上手く動作しない可能性があります。
 今まで疑似的にメンテナンスを発生させられず、パラメータの妥当性をテストできませんでしたが、本機能によってテストできるようになりました(本機能はメンテナンス有無問わず実行可)
 障害時に備えたテストは大切ですが、その他の運用中に起こりうる動作・状態を確認する意味では、こうしたメンテナンス時に備えたテストも大切かと思います。

 有効性が確認できた一例として、メンテナンスの通信影響を与えないようにするため、冗長化されたトンネルのWeight値を違う値から同じ値に変更した場合における事例を紹介します。
 Weight値を変更すること自体は難しいことではありませんが、「本当にメンテナンスが生じた場合に通信影響を与えないだろうか?」といった不安の声もありました。
 その際には、以下1~3の流れで進めることでWeight値の変更妥当性を説明することができました。

  1. Weight値が違う状態でトンネルを置き換え、通信影響を与えることを確認する。
  2. Weight値を違う値から同じ値に変更する。
  3. Weightが同じ状態でトンネルを置き換え、通信影響を与えないことを確認する。

利用手順

 詳細な手順は公式サイトをご覧いただければと思います。本記事ではスクリーンショットと合わせて簡易な手順のみ載せていますので雰囲気を感じる程度にご覧ください。

docs.aws.amazon.com

トンネルエンドポイントのライフサイクル制御の有効化

 Site-to-Site VPN画面にて「アクション」から「VPNトンネルオプションを変更」を選択のうえ、 「トンネルエンドポイントのライフサイクル制御」の「有効にする」をチェックしてください。
※有効化・無効化ともトンネル切断が発生するため注意してください。

メンテナンス情報の表示

 Site-to-Site VPN画面にて保留中のメンテナンス有無、自動適用日、最終適用日など確認できます。 保留中のメンテナンスがある場合、「利用可能」と表示されています。

VPNトンネルの置き換え

 Site-to-Site VPN画面にて「アクション」もしくは「利用可能」から「VPNCトンネルを置き換え」を選択のうえ、 「VPNトンネル外部IPアドレス」から対象トンネルを選択してください。
※トンネル置き換え時はトンネル切断が発生するため注意してください。

まとめ

  • Site to Site VPNトンネルエンドポイントのライフサイクル制御機能を有効化することによって、メンテナンスを通知・表示・実行することができます。
  • 注意事項としては、メンテナンスの通信影響を与えないようにするため、CGWでWeight値やLocalPreferencwe値は設定しない、もしくは同じ値にする必要があります。
  • ユースケースとしては、ユーザが好きなタイミングでメンテナンスしたいケースのほか、メンテナンステストを実施したいケースで有効だと考えられます。

おわりに

 Site-to-Site VPNトンネルエンドポイントのライフサイクル制御機能をご利用される方々にとって、本記事の機能・注意事項・ユースケースがご参考になりますと幸いです。