最初に
以前オンプレの機器からインターネット接続するためのAWSプロキシサーバにて、
NW帯域を拡張する目的で、DirectConncetと接続していたVitual private gatewayをAWS Transit Gatewayへ切り替える作業を実施しました。
その際に発生したAWS内の非対称ルーティングによる通信断とその時の移行設計のノウハウを纏めました。
Before(Vitual private gateway経由で通信)
After(AWS Transit Gateway)への切り替え
非対称ルーティングとは?
まず、非対称ルーティングについて説明します。
非対称ルーティングとは、ネットワーク通信において、データパケットの送信元から宛先への経路(往路)と、宛先から送信元への経路(復路)が異なる状態を指します。
非対称ルーティングでは往復の経路が異なるため、ステートの整合性が取れなくなり、
通信が正常にできなくなることがあります。
具体例として、下記の構成図のようにオンプレからインターネットに接続する経路について
ルートテーブルが下記のように設定されている状態だと、非対称ルーティングが発生し通信できなくなります。
行き:DirectConect Gateway⇒Virtual Private Gateway⇒Network Load Balancer
帰り:下記の2つのルートが存在
DirectConect Gateway⇐AWS Transit Gateway⇐Network Load Balancer
DirectConect Gateway⇐Virtual Private Gateway⇐Network Load Balancer
複雑なネットワーク構成のシステム構築時や、既存のネットワーク切り替え作業等の時は、
非対称ルーティング発生による業務継続できない時間帯があることを念頭に移行設計を進めていく必要があります。
業務影響の確認と移行設計
移行の要件として、システムの停止を許容する時間が12:00~13:00のお昼休み時間のタイミングという例の場合の当日のタイムチャートを作成します。
事前に検証を行って、非対称ルーティングが発生する作業を特定しました。これをもとにネットワーク切り替え時の移行設計を計画していきました。業務影響が出る作業を12:00~13:00に収まるようにプロットしていきます。
その後、前後の作業をプロットしていきます。
No | 作業名 | 作業開始時刻 | 作業終了時刻 |
---|---|---|---|
① | AWS Transit Gatewayを利用した新規経路の構築 | 9:00 | 12:00 |
非対称ルーティング発生による業務継続不可開始 | 12:00~ | ||
② | AWS Transit Gatewayのルーティング設定 | 12:00 | 12:20 |
③ | Network Load Balancer用のサブネットのルーティング設定 | 12:00 | 12:30 |
④ | Vitual private gateway経路の無効化X | 12:40 | 13:00 |
非対称ルーティング発生による業務継続不可終了 | ~13:00 | ||
⑤ | 旧経路のAWSリソース(Vitual private gateway等)の削除 | 13:00 | 17:00 |
※補足
今回は例をわかりやすくするために正常系のみのタイムチャートになりますが、
実際の作業だと何か起こった場合の時に対処する時間や、設定の切り戻しも含めてシステム停止許容時間帯に収める移行設計を作成する必要があります。
また、今回はAWS関連の作業についてのみ書いてますが、実際には業務停止時間帯の業務規制や定期実行処理の停止等の作業を入れる必要があります。
切り替え作業の流れ
Vitual private gatewayをAWS Transit Gatewayへ切り替えた時の作業の流れを整理しました。
NW構成と通信経路は構成図を作成し、各作業毎の状態遷移を確認しながら、通信断が発生する作業を整理しました。
①AWS Transit Gatewayを利用した新規経路の構築
Before
After
Trangit Gateway、Trangit Gateway用アタッチメントの構築等を実施し、Transit Gateway経由の新規経路を構築する。
②AWS Transit Gatewayのルーティング設定
Before
After
AWS Transit Gatewayのルーティング設定を追加し、新規経路(AWS Transit Gateway経由)で通信可能な設定を入れます。
このタイミングで、非対称ルーティングが発生し業務継続不可の状態になります。
③Network Load Balancer用のサブネットのルーティング設定
Before
After
Network Load Balancer用のサブネットのルーティング設定を下記のように変更し、
戻り用の通信について既存のVirtual Private Gateway経由からAWS Transit Gateway経由に切替を行う。
変更前:Virtual Private Gateway⇐Network Load Balancer
変更後:AWS Transit Gateway⇐Network Load Balancer
④Vitual private gateway経路の無効化
Before
After
Vitual private gatewayの設定画面で、DirectConncetゲートウェイの関連付けの設定にて、
許可されたプレフィックスの設定を変更し、Vitual private gateway経由での通信を無効化する。
このタイミングで、非対称ルーティングが解消され、業務継続が可能な状態に状態になります。
⑤旧経路のAWSリソース(Vitual private gateway等)の削除
before
after
既存のVitual private gateway経路で利用してたAWSリソースを削除する。
最後に
AWS内のネットワーク切替作業時に発生する非対称ルーティングと移行設計について解説をしました。
作業時の業務影響、時間帯は事前にお客さんと合意したうえで作業を行う必要があるため、
ネットワーク切り替え時に発生する非対称ルーティングの有無は必ず確認するようにしましょう。
また、文字だけでイメージするのは難しいので、構成図ベースで各作業の状態遷移を整理するとわかりやすくなります。