LoginSignup
2
1

More than 1 year has passed since last update.

IBM Cloud: F5 BIG-IP Virtual Edition on VPCでHTTPリクエストを負荷分散(private-to-private)してみた

Last updated at Posted at 2020-12-02

1. はじめに

前回、IBM Cloud: VPCにF5 BIG-IP Virtual Editionを導入してみたという記事で、IBM CloudのVPC上にF5 BIG-IP Virtual Editionをデプロイしました。
本稿では、設定を追加してF5 BIG-IP経由でWebサーバーの負荷分散をしてみたいと思います。

2. NW構成

F5のインターフェース情報は以下のようになっていたが、今回はアプリケーション処理をするためには1つ目のdata-1-1しか使わないことにする(one-arm構成。そもそも別Availability Zoneへの割り振りもしたいので)。
image.png

今回構成したいNWの全体像は以下になる。
image.png

3. IBM Cloud(VPC)の設定

3-1. Webサーバーの構築

(省略)

3-2. Custom Routeの設定(Virtual IPの作成)

将来BIG-IPでHA構成にする場合、そのStandby側のサーバーにもまったく同じアドレスでクライアントからアクセスしたい。そのために、192.168.10.10というアドレス宛へのパケットは172.16.5.7に転送されるようにVPCのcustom routeを構成しておき、もしBIG-IPに障害があった時にはcustom routeの設定を変えるだけでStandby側のBIG-IPにアクセスするように構成したい。
このあたりの手順は、IBM Cloud: VPC Custom Routesを利用したAZまたぎのHA環境の構成例(VPC内部からのアクセス)などに詳細に説明したので、参照のこと。

最終的には以下のような設定になり、private-to-privateの割り振りができることを確認した。
image.png

3-3 IP Spoofingの設定。

1-1のインターフェースで192.168.10.10というアドレスの送受信をする必要があるため、IP Spoofingを有効化させる必要がある。そのあたりの説明もIBM Cloud: VPC Custom Routesを利用したAZまたぎのHA環境の構成例(VPC内部からのアクセス)などを参照のこと。
image.png

4. BIG-IPの構成

4-1. Static Routeの構成

VPCでデプロイされたBIG-IPにおいて、Default Gatewayはmgmtインターフェースが利用されている。よって、デフォルト構成では別subnetとの通信にmgmtインターフェースが使われてしまう。
mgmtインターフェースにはFloating IPが割り当てられているため、Default Gatewayの変更までやるのは今回は敷居が高いと考え、まずは簡単に構成するために、Webサーバー宛のパケットは1.1側のGateway(つまり172.16.5.1)を利用するようにStatic Routeで構成する。

  • Network -> Routesにて、「Create」を押下。
    image.png
  • Static Routeの設定(WebServer1用)。完了したらFinishedを押下。
    image.png
  • Static Routeの設定(WebServer2用)。完了したらFinishedを押下。
    image.png

4-2. (Backend memberを登録する)Poolの作成

  • Local Traffic -> Poolsにて、「Create」を押下。
    image.png
  • 以下の入力をしてFinishedを押下。
    • Name
    • Health Monitors
    • Load Balancing Method
    • New Members(Node Name, Address, Service Port)
      image.png
    • Statusが緑色(正常)になっていることを確認
      image.png
      image.png

4-3. (ClientからのアクセスをListenする)Virtual Serverの構成

image.png

  • Local Traffic -> Virtual Serversにて、「Create」を押下。
  • 以下を入力してFinished.
    • Name
    • Destination Address(VIPである192.168.10.10を指定)
    • Service Port
      image.png
    • HTTP Profile (Client) -> http
    • Source Address Translation -> Auto Map
      image.png
    • Default Pool -> 先ほど作成したPool。
      image.png

(補足)Source Address TranslationのAuto Mapについて
以下はBIG-IPのマニュアルより引用

バーチャルサーバの仕組みについて
(途中略)
BIG-IPが、要求パケットのDestination IP Addressヘッダに含まれる宛先IPアドレス (つまり、バーチャルサーバのアドレス)を、選択されたノードの実際のアドレスに変更します。この場合、 パケットに含まれる送信元アドレス (つまり、 その接続を開始したクライアントのアドレス) は変更されずに残ります。
(途中略)
常にBIG-IP経由でサーバ応答が返されるよ うにするには、 サーバのデフォルト経路を内部VLANのセルフIPアドレスに設定する必要があります。サーバがBIG-IPとは別のネッ トワーク上に置かれており、この設定ができない場合は、SNATを作成することが可能です。
(途中略)
SNAT automapというBIG-IPの機能を利用してSNATを作成する方法もあります。SNAT automap機能では、BIG-IP自身のIPアドレスからいずれか1つ(通常は出力VLANのフローティングセルフIPアドレス) が自動的に選択され、 オリジナルIPアドレスまたはSNAT作成時に指定したアドレスにそれがマップされます。この機能を使用すると、 変換アドレスを明示的に指定する必要がなくなります。

5. テスト

VPC上のサーバーからアクセステスト

[root@syssuda5-vpc2 ~]# curl 192.168.10.10
tokyo1-web1
[root@syssuda5-vpc2 ~]# curl 192.168.10.10
tokyo2-web1
[root@syssuda5-vpc2 ~]# curl -I 192.168.10.10
HTTP/1.1 200 OK
Date: Wed, 02 Dec 2020 06:54:35 GMT
Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips
Last-Modified: Mon, 30 Nov 2020 01:02:49 GMT
ETag: "c-5b54891aea968"
Accept-Ranges: bytes
Content-Length: 12
Content-Type: text/html; charset=UTF-8
2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1