市田善久(94)31この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。VyOSを使うことの多い市田です。今回は、VyOSを2台作ってActive-Standby構成を作ってみたいと思います。下図のようなVPN接続を冗長化した構成を考えてみます。VyOSの後ろにあるELB以下については、今回のようなケースで考えられうる構成として記載したものですので、今回はここの構築は行いません。できるだけVPCの機能を使うことを前提としているので、前回のVyOSまとめ記事と同様にVyOSをカスタマーゲートウェイとして利用しています。構成の利点VyOSをActive-Standby構成にすることで、EC2をホストしているハードウェア環境の影響でActiveのVyOSが利用不可になっても、自動的に待機系のStandby側のVyOSに経路を切り替えて利用することができます。構成上のポイント今回の構成でポイントになるのは、以下の3点です。VyOSはカスタマーゲートウェイ前回のVyOSまとめ記事にある通りの構成になります。要件によっては、VPNゲートウェイなどを使わず、構成図の東京リージョン側にもVPNインスタンスを構築してVPNを張るという選択肢もありますが、今回の想定ではありません。公式ドキュメントによると、VPCにおける最良パス選択のアルゴリズムの順番は以下のようになっています。Cloud前回の記事でも記載した通り、Staticな構成はできるだけ採りたくないので、3番目のASパスで優先度の設定を行います。VPCルートテーブルの変更ルータの設定でVyOSの冗長構成は作れますが、ActiveのVyOS-1が何らかの原因で停止してフェイルオーバが発生した時に、シンガポールリージョン側のルートテーブルも変更する必要があります。具体的には、構成図にあるap-3やap-4のインスタンスから東京側リージョンへの経路を、VyOS-1からVyOS-2経由に変更する作業が発生します。ActiveのVyOSが復帰した時にも同様の変更が発生します。CLIで制御するのが簡単なので、シェルスクリプトなどVyOSの仕組みとは異なる手段で、ルートテーブルを変更する必要があります。ルートテーブル切替トリガーのスコープについても、VyOSの死活のみにするのか、対向VPCへの疎通チェックまでにするのか、といった点も検討すべき内容になってきます。そのチェック間隔なども検討事項になってくると思われます。前置きが長くなりましたが、手順を説明していきたいと思います。東京リージョンでVPN接続を作成カスタマーゲートウェイと仮想プライベートゲートウェイの組み合わせで合計2つのVPN接続を作ります。vyosのコンフィグを各VPN接続からダウンロード(種類はvyattaのものを選択)具体的な手順については、下記のエントリーを参照して頂ければと思います。Developers.IOActive-Standbyのコンフィグ今回の本題です。先ほど書いたように、今回はASパス設定でActive-Standby構成を作ります。ASパスプリペンドの設定は下記のとおりです。この設定は、StandbyにするVyOS-2に対してのみ設定します。各ピアに適用するルートマップを作成します。下記では東京リージョン向けのピアに適用するルートマップを「routemap-vyos2tokyo-out」という名前で作成しています。次に、東京リージョンのVPC向けにアドバタイズする経路に、シンガポールリージョン自身のAS番号(デフォルトから変更していなければ65000)を2つ追加します。することで東京リージョンのVPCから見るとVyOS-2への経路がVyOS-1よりも遠くなるので、VyOS-1が優先される経路(つまりActive)になります。設定した内容で経路情報がアドバタイズされているかは次のコマンドで確認できます。advertised-routes下記のような感じで、AS番号が追加された形で表示されていればOKです。2ここまでの設定の動作と注意点ここまでの設定で、次のような動作をすることになります。ActiveのVyOS-1に障害が発生した時、対向VPCからのトラフィックは自動的にVyOS-2に変わります。VyOS-1が復帰すると、自動的にトラフィックがVyOS-1に流れるように戻ります。注意点ここまでの設定では、VyOSの切り替わりのみ行えるものになります。VyOSが切り替わってもその後ろにあるVPCのルーティングも連動して切り替わらないと、対向VPCへの戻りの経路が、故障したVyOSに向かってしまいます。そのため、最低限シェルスクリプトなどでVyOS-2からVyOS-1を死活監視しておいて、VyOS-1からの応答がなくなったら、ルートテーブルを切り替えるようにしておきます。CLIで行うのが簡単です。<対象リージョン>今回の構成のように切り替えるべきサブネットが2つある場合は、上記のコマンドも各サブネットに対して実行するようにします。CLIの導入については、下記で紹介しています。Developers.IOここまでのまとめここまでをまとめてみます。pointのIPを監視することで、VPN接続が切れたことをトリガーに経路を切り替えることもできます。別途監視サーバなどを置いて、インスタンスやネットワークの状態を細かくチェックすることで、より柔軟に運用することもできるかと思います。要件に応じたサービスレベルによる切り替え基準を設けて、実装していくのがベストかと思います。941,026AWSと色んなOSSを組み合わせて使うのが好きです。リモート】クラスメソッドの会社説明会を開催しますクラスメソッドでは、AWS・AI・ビッグデータ・モバイルなどの技術職や営業のメンバーとして一緒にお仕事をする仲間を大募集しています。#cmdevio新型コロナウイルスの感染拡大を受け、本イベントを延期させていただくことになりました(開催時期未定)。お申し込みいただいた皆様には大変申し訳ございませんが、何卒ご理解いただけますようよろしくお願いいたします。AWSについてライトに色んな情報交換をしましょう。カフェ店長のオカノです。今日はオフィスに用があるので、通勤ラッシュを避けて出社しました。この子は新メンバーのさめくんです。在宅勤務が推奨されているのでオフィスが閑散としており、すこしさみしそうです。本が出ていたので読んでみたところよかったので紹介させていただきます。使いたいときの注意点を書きました。新井成一64最近Sphinxつかってドキュメントを書いてるのですがなかなかイケています。臼田佳祐295ワークフロー自動化OSSのn8nをAWS環境で建てて検証してみました。非常に期待できるサービスです。Fargateの勉強をしています。使ってみたい方は参考にしてください。洋介255SnowflakeがAWSの東京リージョン上で稼働するようになりました。データを日本に置けます。芳賀健232こんにちは!猫様の忠実なるしもべ、芳賀健です。Tokyoで開催されました。カフェ店長のオカノです。クラスメソッド株式会社が運営するAWS・iOS・HTML5に関する技術情報サイトです。