[アップデート] AWS FIS が AWS Direct Connect の障害アクションをサポートしました
いわさです。
AWS Fault Injection Service は実験アクションを使うことで様々な AWS サービスで障害を発生させることが出来ます。
色々なサービスがサポートされていたのですが、先日のアップデートで初めて AWS Direct Connect がサポートされました。
AWS Direct Connect の耐障害性をテストするために、BGP セッションを中断させることが出来ます。
今回利用可能な VIF がなかったので実験までは出来なかったのですが、実験テンプレートの作成とドキュメントから仕様の確認まで行ってみたので確認出来た情報を共有します。
実験テンプレートを作成する
まずは AWS FIS コンソールから実験を確認してみましょう。
まず、今回のアップデートでシナリオライブラリに新しいシナリオは追加されていません。
なので実験テンプレートでいちから作成する必要があります。
新しい実験テンプレートの作成を開始したら、アクションを追加します。
次のように新しくaws:directconnect:virtual-interface-disconnectというアクションタイプが追加されているのでこちらを選びます。

このアクションではターゲットと障害発生期間であるDurationを指定します。Durationは最短 10 分から、最大 720 分まで指定が出来ます。この最大実行時間については少し気をつける必要がありそうです。後述します。

そしてこのアクションのターゲットですが、リソースタイプとしては仮想インターフェース(VIF)を指定することが出来ました。

障害を発生させる VIF を直接指定するか、あるいはタグを使って自動でターゲットのフィルタリングが出来ます。
障害アクションの挙動
実際に実験を開始して挙動を確認してみたかったのですが、検証できる VIF が手元になく出来ませんでした。
ただし、ドキュメントからおおよその挙動を把握することが出来ましたので紹介します。
今回追加された AWS Direct Connect 障害アクションについては次のドキュメントに記載されています。
そこで記載されていますが、このアクションが行うのは「Direct Connect フェイルオーバーテスト」です。
このテストは以前からあるもので、私も以前検証してブログにしたことがあります。
マネジメントコンソールから次のように VIF を選択して BGP を停止させることが出来ます。

この実験を行う際にサービスロールに許可する必要のあるアクションもdirectconnect:StartBgpFailoverTestとdirectconnect:StopBgpFailoverTestなので間違いなさそうです。
AWS FIS と Direct Conenct フェイルオーバーテスト、どちらを使うべきなのか
Direct Connect フェイルオーバーテストの場合はテストの最大時間は 1 ~ 4320 分で指定することが出来ます。一方で FIS から実行した場合は 10 ~ 720 分での指定でした。
実験したい範囲があっていない場合は FIS ではなく Direct Connect フェイルオーバーテストを選択することになります。
AWS FIS の場合は複数の AWS アカウントやリソースを対象にシナリオベースのテストが出来るので、より複雑で自動化された障害テストをシミューレートしたい場合は AWS FIS を選択すると良いでしょう。
さいごに
本日は AWS FIS が AWS Direct Connect の障害アクションをサポートしたのでアクションや仕様を確認してみました。
従来から使えていた Direct Connect フェイルオーバーテストが AWS FIS からアクションとして使えるようになったという内容です。
シナリオベースの自動化されたテストを作成したい場合はスクリプトを作成して Direct Connect フェイルオーバーテストを呼び出すのではなく AWS FIS で用意すると使い回しやすくて良いですね。結果もコンソールなどで確認しやすい。
一方でシンプルなフェイルオーバーテストをその時だけ行いたい場合は無理に AWS FIS を使わなくても良いかなという感じです。マネジメントコンソールから手動でテストしてもいいかな。






