F5 BIG-IP Virtual Edition を AWSで使う:Multi-AZ HA構成編

2016.11.12

こんにちは、菊池です。

F5 BIG-IP on AWSの続編ということで、BIG-IP VEをMulti-AZで冗長化する構成を紹介します。前回のシングル構成での構築ができている前提での構築手順となりますので、前回の記事を合わせて参照ください。

システム構成

システム構成です。

2つのAZ-a/cに、BIG-IP VE001/002をそれぞれ配置します。以下の図の右半分が今回新規に構築する部分です。

bip-ha-000

BIG-IP VEのMulti-AZ構成では、Virtual Serverに割り当てたセカンダリIPに紐付くEIPを2台のBIG-IP VE間で付け替えすることでフェイルオーバーを実現します。

構築手順

それでは実際に構築していきます。一部、前回のBIG-IP VE 001と同じ手順となる部分は省略していますので、シングル構成編を合わせてご確認ください。

手順サマリ

  1. BIG-IP VE 002 のローンチ
    1. IPアドレスの設定
    2. SecurityGroupの変更
    3. IAMユーザ作成/アクセスキー・シークレットキーの取得
  2. BIG-IP VE の設定
    1. システム基本設定
    2. VLANの作成
    3. IPアドレスの設定
    4. Routeの設定
    5. Device Managementの設定
    6. IPアドレスの設定(BIG-IP VE 001)
    7. 冗長化の設定
    8. Virtual Serverの作成
    9. フェイルオーバーの設定
  3. フェイルオーバー動作の確認

1. BIG-IP VE 002のローンチ

まずはBIG-IP VE 002となるEC2インスタンスをローンチします。IPアドレス、サブネット配置(AZ)のみの違い以外は001と同じ手順となりますので省略します。

以下のように、AZ-C、プライベートIPに10.0.1.202と10.0.5.202となるように設定の上、起動します。

bip-ha-001

1-1. IPアドレスの設定

続けて、Virtual Server用のプライベートIPを設定します。セカンダリIPとして10.0.5.102を設定します。

 

bip-ha-002

2つのプライベートIP(プライマリIP)にEIPを割り当てます。Virtual Server用のEIPは、BIG-IP VE 001と共用しますので、ここでは割り当てしません。

bip-ha-003

もしすでに他でEIPを使用している場合、1リージョンあたりデフォルトで利用可能なEIPの上限5つに引っかかりますので、サポートから上限緩和申請をしておきましょう。

1-2. SecurityGroupの設定

BIG-IP VE 001/002に割り当てているSecurity Groupの設定です。設定の同期、ヘルスチェックに必要な通信許可を追加します。ICMPをすべての範囲で、TCP:4353、UDP:1026をVPC内で許可します。

bip-ha-004

1-3. IAMユーザの作成/アクセスキー・シークレットキーの取得

BIG-IP VEのフェイルオーバー動作では、EIPを制御するためにAWSのAPIから操作します。そのための権限が必要となりますので、IAMユーザーを作成し、アクセスキー/シークレットキーのCSVファイルをダウンロードしておきます。今回は簡単にするためにポリシーにEC2 Full Controlの権限をつけています。

bip-ha-005

2. BIG-IP VE の設定

BIG-IP VEの設定を行います。

2-1. システム基本設定

まずは、新しくローンチしたAZ-cのBIG-IP VE 002の基本設定です。

SSHで管理用IPに接続し、パスワードを変更/保存します。(詳細はシングル構成編の記事を参照)変更ができたら、ブラウザからHTTPSで接続します。以下の画面が表示されたら、Username: adminと設定したPasswordでログインします。

bip-ha-006

Setup Utilityが表示されますので、BIG-IP VE 001の時と同様に画面に従ってライセンスキーの入力、アプティベーションを行いましょう。

bip-ha-007

機能の確認、デフォルト証明書の確認の次に進みます。管理用IPの設定ですが、Manualを選択してIPアドレス/サブネット、ホスト名(FQDN)、タイムゾーン、パスワードを入力して、次へ進みます。

bip-ha-008

初期画面に戻りますので再度ログインします。

bip-ha-009

FinishedでSetup Utilityを完了します。

bip-ha-010

2-2. VLANの作成

続いて、VLANの作成です。左メニューからVLANsを選択し、Create。

bip-ha-011

下図のように入力し、完了。

bip-ha-012

2-3. IPアドレスの設定

サービス用のIPアドレスを設定します。左メニューのSelf IPsから、Createを選択。

bip-ha-013

下図のように入力。クラスタ用にTCP:4353、UDP:1026を許可します。

bip-ha-014

2-4. Routeの設定

Routenの設定です。HA構成では設定を同期しますが、サブネットの異なる環境ではデフォルトルートも異なるため、同期対象から除外する必要があります。そのためにまずは、新規のパーテーションを作成しますので、Users -> Partition Listと進みます。

bip-ha-015

Createを選択。

bip-ha-016

任意の名前を入力し、以下のようにDevice Groupから除外します。

bip-ha-017

作成できたら、左メニューのRoutesに進みますが、右上のPartitionで、先ほど作成したLOCAL_ONLYを選択した状態でAddします。

bip-ha-018

任意の名前を入れて設定を入力。

bip-ha-019

2-5. Device Managementの設定

いよいよHAクラスタの設定に入ります。まずは右上のPartitionをCommonに戻しておきます。左メニューのDevicesから、BIG-IP VE 002を選択します。

bip-ha-020

Device ConnectivityタブからConfigSyncを選択。

bip-ha-021

10.0.5.202を選択してUpdate。

bip-ha-022

Device ConnectivityタブからFailover Networkを選択。

bip-ha-023

10.0.5.202を選択してFinished。

bip-ha-024

2-6. IPアドレスの設定(BIG-IP VE 001)

次に、前回シングル構成で作成したAZ-aにある、BIG-IP VE 001側の設定変更です。

左メニューのPlatformから、IPアドレスを下図のようにManualで設定します。

bip-ha-025

左メニューのSelf IPsから、作成済みのexternal-ipを選択。

bip-ha-026

クラスタ通信用に許可を追加します。

bip-ha-027

続けてRoutesの設定。002と同様に、デフォルトルートを同期対象から外す必要があるため、一度既存のルートを削除します。

bip-ha-028

002と同様にPartitionを追加します。

bip-ha-029

同様に設定。

bip-ha-030

PartitionをLOCAL_ONLYにしてRoutesを追加します。

bip-ha-031

デフォルトルートを設定。

bip-ha-032

2-7. 冗長化の設定

同じくBIG-IP VE 001での設定です。PartitionをCommonに戻し、左メニューのDevicesから自身を選択。

bip-ha-033

Device ConnectivityタブからConfigSyncを選択。

bip-ha-034

10.0.4.201を選択してUpdate。

bip-ha-035

Device ConnectivityタブからFailover Networkを選択。

bip-ha-036

10.0.4.201を選択してFinished。

bip-ha-037

左メニューのDevice Trustから、Peer Listを選択。

bip-ha-038

BIG-IP VE 002の管理IP(10.0.1.202)、管理ユーザ、パスワードを入力し、Retrieve Device Informationを選択。

bip-ha-039

Finishedを選択。

bip-ha-040

Device GroupsからCreate。

bip-ha-041

任意の名前を入力し、以下のように設定。

bip-ha-042

クラスタが作成され、デフォルトではIPが若い001がStandbyになります。

bip-ha-043

Overviewから、Sync Statusが以下のようにグリーンになって入れば設定が同期されています。

bip-ha-044

2-8. Virtual Serverの作成

BIG-IP VE 002側にVirtual Serverを作成します。設定は同期されていますのでどちらからでも作業可能です。

左メニューのVirtual ServersからCreate。

bip-ha-045

以下の図のように設定していきます。

bip-ha-046

bip-ha-047

bip-ha-048

2つのVirtual Serverが作成されました。

bip-ha-049

Virtual Address Listのタブから、10.0.4.101を選択します。

bip-ha-050

下図のようにTraffic Groupのチェックを外し、Noneを選択します。

bip-ha-051

同様に、10.0.5.102の方でも同じ設定をします。

bip-ha-052

Traffic Groupの項目が両方ともnoneとなってることを確認します。

bip-ha-054

2-9. フェイルオーバーの設定

フェイルオーバー時にEIPが付け替えされるように設定します。

左メニューのConfigurationsから、AWS -> Global Settingsを選択。

bip-ha-055

あらかじめダウンロードしてあった、IAMユーザのアクセスキー・シークレットキーを入力します。

bip-ha-056

次に、切り替えを制御するiAppの設定です。設定するiAppテンプレートはF5の公式コミュニティであるDevCentralからダウンロード可能です(要ユーザ登録)

bip-ha-071

今回は、ここからAWS Advanced HA iApp(f5.aws_advanced_ha.v1.0.1rc1.tmpl)をダウンロードしました。

bip-ha-072

左メニューのTemplatesから、importを選択。

bip-ha-057

DevCentralからダウンロードしたf5.aws_advanced_ha.v1.0.1rc1.tmplをアップロードします。

bip-ha-058

アップロードしたテンプレートを選択し、Create。

bip-ha-059

左メニューのApplication ServicesからCreateを選択。

bip-ha-060

任意の名前を入れて、テンプレートを選択。以下のように設定します。

bip-ha-061

bip-ha-062

AZ-cの002で、Application Servicesから、作成した名前を選択。

bip-ha-064

Reconfigureタブから設定が同期されていることを確認し、finished。

bip-ha-065

最後に、現在002がActiveとなっていますので、001をActiveに切り替えます。左メニューのTraffice Groupsから、トグループを選択してForce to Standbyを選択。

bip-ha-066

以下の画面になりますので、もう一度Force to Standbyを選択。

bip-ha-067

以上ですべての設定が完了です。

3. フェイルオーバー動作の確認

フェイルオーバー動作を確認します。先ほどの切り替え前では、Virtual ServerのEIP(52.198.174.xx)はAZ-Cの002側のプライベートIP(10.0.5.202)に割り当てられています。

 

 

bip-ha-069

フェイルオーバーを実行し、AZ-Aの001がActiveになったあと、再度EIPの割り当てを確認すると、

bip-ha-068

以下のように、AZ-Aの001のプライベートIP(10.0.4.201)にVirtual ServerのEIP(52.198.174.xx)が付け変わります。

bip-ha-070

この前後でブラウザでアクセスし、WordPressのページが表示されて入ればうまく切り替わっています。

bip-039

まとめ

以上、2回に分けてBIG-IP VEをAWSで利用する設定手順を紹介しました。

注意点として、今回紹介したMulti-AZ環境でのHA構成では、オンプレでのHAクラスタのようにセッションの同期はサポートされていません。切り替え時には一度接続がリセットされますのでご注意ください。オンプレから比較すると機能低下のように感じるかもしれませんが、Multi-AZでのフェイルオーバーがデータセンターレベルの切り替え発生に相当することを考慮すれば、むしろ耐障害性は向上しているとも言えます。

ELB/ALBでは満たせない機能要件を使いたい場合やオンプレ環境のアプリケーションをそのままAWSで使いたい場合には選択肢になるでしょう。