XC HTTP LB の設定

※本資料の画面表示や名称は資料作成時点の画面表示を利用しております。アップデート等より表示が若干異なる場合がございます。

基本となるHTTP Load Balancerを設定します。このサンプルではHTTPSで待ち受けるLBを設定します。

マニュアルは以下のページを参照してください。

1. HTTP Load Balancerの設定

1. HTTPS の設定

メニューより Load Balancers を選択してください

../../_images/dcs-console-lb.JPG

注釈

すでにメニューを開いている場合、画面左側の Select service からメニューを開くことも可能です
../../_images/dcs-menu.jpg
左メニュー Namespace より、これから作成するオブジェクトを配置する Namespace を選択してください。
サンプルに示している通り、テキストボックスに文字列を入力することにより検索が可能です。
../../_images/dcs-lb-ns.JPG

新規にHTTP Load Balanceを作成します。左メニュー HTTP Load Blancers をクリックし、 Add HTTP Load Balancer をクリックします

../../_images/dcs-lb-new.JPG

以下の通りパラメータを入力します。 FQDNについては後ほど適切にアプリケーションにアクセス出来るよう設定します。

  • 入力パラメータ

    Name demo-echo-lb
    List of Domain echoapp.f5demo.net
    Select Type of Load Blancer HTTPS with Custom Certificate
    ../../_images/dcs-lb-conf1.jpg

注釈

Select Type of Load Blancer の項目では以下のようなパラメータが選択可能です

項目名 用途
HTTP HTTP Load balancer
HTTPS with Automatic Certificate
証明書の自動更新を提供します。この設定を選択する場合、
XCにドメインのDelegateをしている必要があります。
HTTPS with Custom Certificate 別途ご用意いただいた証明書をご利用いただけます。

HTTPSに利用する 証明書 をアップロードします。 Select Type of Load BlancerHTTP Loadbalancer TLS Parameters 欄の Configure をクリックしてください

../../_images/dcs-lb-tls.jpg

TLS設定の画面に遷移します。 Add Item をクリックします

../../_images/dcs-lb-tls2.jpg

Certificate に証明書の内容を貼り付けます。 Private Key 欄の Configure をクリックし、鍵を登録します。

../../_images/dcs-lb-tls3.jpg

Secret InfoClear Secret を選択し、下に表示されるテキストボックスに鍵の情報を貼り付け、 Apply をクリックします

../../_images/dcs-lb-tls4.jpg

画面下部の Add Item をクリックします

../../_images/dcs-lb-tls5.jpg

画面下部の Apply をクリックします

../../_images/dcs-lb-tls6.jpg

2. 分散先の設定

次に、Origin Poolsを指定します。画面を下にスクロールし Origin Pools のメニューを表示してください。 画面中央の Add Item をクリックします

../../_images/dcs-origin-pool.JPG

Origin Poolの選択画面が表示されます。これから新規にOrigin Poolを作成しますので、Origin Pool選択欄から Create new origin pool をクリックします

../../_images/dcs-origin-pool2.JPG
Name 欄に demo-origin-pool と入力します。
新たに分散先のサーバを追加します。 Origin Serves に表示される Add Item をクリックします
../../_images/dcs-origin-pool3.jpg

以下の内容で転送先サーバを追加します。サーバを追加し、 Add Item をクリックしてください。 この操作を追加対象のサーバ台数分繰り返してください。

  • Select Type of Origin Server

    Public DNS Name of Origin Server 対象の分散先サーバをDNS(FQDN)で指定する場合
    Public IP of Origin Server 対象の分散先サーバをIPアドレスで指定する場合
    ../../_images/dcs-origin-pool4.jpg

分散先サーバが待ち受けるポートを指定します。このサンプルアプリケーションでは 80 を指定します 内容を確認し、 Continue をクリックします

../../_images/dcs-origin-pool5.jpg ../../_images/dcs-origin-pool6.jpg

注釈

分散先サーバがHTTPSを利用する場合、分散先サーバの待ち受けるポートを 443 と指定し、TLS Configurationで TLS を選択し、適切なオプションを指定してください

Add Item をクリックし、Origin Pool の追加を完了します

../../_images/dcs-origin-pool7.jpg

画面最下部まで移動し、 Save and Exit をクリックします

../../_images/dcs-lb-save.jpg

設定した内容が画面に表示されます

../../_images/dcs-lb-done.jpg

2. 動作確認

1. クライアントのhostsファイルを変更

設定したHTTPSサイトに接続するため、クライアントのhostsファイルを変更します

../../_images/dcs-origin-cname-copy.jpg

注釈

hostsファイルを利用せず、DNSのレコードを変更する場合、CNAMEの内容をDNSサーバに登録してください

CNAME欄に指定されたFQDNのアドレスをDNSサーバで解決し、IPアドレスを取得します

dig コマンドによるIPアドレス解決の結果
1
2
# dig ves-io-101f0be3-de90-4c78-8a1e-a101ce0336bd.ac.vh.ves.io +short
72.19.3.189

表示されたIPアドレスを、アクセスするFQDN echoapp.f5demo.net のIPアドレスとしてhostsファイルに登録してください

hosts ファイル登録例
1
72.19.3.189 echoapp.f5demo.net

2. クライアントから動作確認

ブラウザから https://echoapp.f5demo.net へアクセスします。後ほど、コンソールから接続結果を確認するため複数回アクセスしてください

../../_images/dcs-sample-access.jpg

3. 接続結果の確認

接続結果を確認します。

画面左側、Virtual Hostsの HTTP LoadBalancers をクリックし、 demo-echo-lb の下にマウスを移動し、表示される Performance Monitoring のメニューをクリックしてください

../../_images/dcs-lb-performance.jpg

Dashboard が表示されます。その他にも様々な結果を確認することができますので操作してみてください。 また、画面右上に対象とする期間の指定や、最新情報へ更新することが可能ですのでご希望の内容を確認してください

../../_images/dcs-lb-performance2.jpg

次に画面左側、Meshの Service Mesh をクリックし、表示された項目の More をクリックします

../../_images/dcs-lb-mesh.jpg

注釈

対象のHTTP Load BalancerにLabelの割当がない場合、Namespace 名で項目が表示されます。Labelの割当がある場合、Labelが項目の名称として表示されます 指定した期間にNamespaceやLabelなど複数のオブジェクトに対して通信がある場合、それらが項目として表示されます。

こちらではService Graphなどアプリケーションの通信状態など詳細を把握することが可能です。 引き続き設定を紹介いたしますので、適宜各ダッシュボードの内容を確認し、XCから把握できる通信の情報をご覧ください

../../_images/dcs-lb-mesh2.jpg

3. Terraform を用いた HTTP Load Balancer の作成

ここで紹介したHTTP load Balancer を Terraform を使ってデプロイすることが可能です。

Terraform の利用で必要となる事前作業については こちら の手順を参考してください

パラメータの指定

実行に必要なファイル、また実行環境に合わせたパラメータを指定してください

terraform 実行前作業
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
$ git clone https://github.com/BeF5/f5j-dc-waap-automation
$ cd f5j-dc-waap-automation/terraform/http-load-balancer

$ vi terraform.tfvars
# ** 環境に合わせて適切な内容に変更してください **
api_p12_file     = "**/path/to/p12file**"        // Path for p12 file downloaded from VoltConsole
api_url          = "https://**api url**"     // API URL for your tenant

# 本手順のサンプルで表示したパラメータの場合、以下のようになります
myns             = "**your namespace**"      // Name of your namespace
op_name          = "demo-origin-pool"        // Name of Origin Pool
pool_port        = "80"                      // Port Number
server_name1     = "**your target fqdn1**"   // Target Server FQDN1
server_name2     = "**your target fqdn1**"   // Target Server FQDN2
httplb_name      = "demo-echo-lb"            // Name of HTTP LoadBalancer
mydomain         = ["echoapp.f5demo.net"]    // Domain name to be exposed

cert             = "string///**base 64 encode SSL Certificate**"  // SSL Certificate for HTTPS access
private_key      = "string///**base 64 encode SSL Private Key**"  // SSL Private Key for HTTPS access

Terraform の利用

以下コマンドを参考に実行および削除をしてください。

terraform の実行・削除
1
2
3
4
5
6
7
8
9
# 実行前事前作業
$ terraform init
$ terraform plan

# 設定のデプロイ
$ terraform apply

# 設定の削除
$ terraform destroy

4. API を用いた HTTP Load Balancer の作成

ここで紹介したHTTP load Balancer を API を使ってデプロイすることが可能です。 APIでオブジェクトを作成する場合、Origin PoolとHTTP Load Balancerを作成する必要があります。

API の利用で必要となる事前作業については こちら の手順を参考してください

以下マニュアルを参考に、パラメータを指定して実行してください。

送付するJSON データの書式は実際に作成したコンフィグのJSONデータからも確認をいただけます。合わせてご確認ください

パラメータの指定

GitHubよりファイルを取得します。 base-httplb.jsonbase-origin-pool.json をAPIの値として指定します。 **<変数名>** が環境に合わせて変更するパラメータとなります。適切な内容に変更してください。

APIの利用

以下のサンプルを参考にAPIを実行してください。 証明書のファイル名、パスワード情報は適切な内容を指定してください。

  • ファイル取得
APIによるオブジェクトの作成
1
2
$ git clone https://github.com/BeF5/f5j-dc-waap-automation
$ cd f5j-dc-waap-automation/api/http-load-balancer
  • オブジェクトの作成
APIによるオブジェクトの作成
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
# Originl Pool の作成
$ curl -k https://**tenant_name**.console.ves.volterra.io/api/config/namespaces/**namespace**/origin_pools \
     --cert **/path/to/api_credential.p12-file**:**password** \
     --cert-type P12 \
     -X POST \
     -d @base-origin-pool.json

# HTTP LB の作成
$ curl -k https://**tenant_name**.console.ves.volterra.io/api/config/namespaces/**namespace**/http_loadbalancers \
     --cert **/path/to/api_credential.p12-file**:**password** \
     --cert-type P12 \
     -X POST \
     -d @base-httplb.json
  • オブジェクトの削除
APIによるオブジェクトの削除
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# HTTP LB の削除
$ curl -k https://**tenant_name**.console.ves.volterra.io/api/config/namespaces/**namespace**/http_loadbalancers/**httplb_name** \
     --cert **/path/to/api_credential.p12-file**:**password** \
     --cert-type P12 \
     -X DELETE

# Origin Pool の削除
$ curl -k https://**tenant_name**.console.ves.volterra.io/api/config/namespaces/**namespace**/origin_pools/**op_name** \
     --cert **/path/to/api_credential.p12-file**:**password** \
     --cert-type P12 \
     -X DELETE