Lab 1 - GUIで ADC App の作成

このラボのゴールはラボを実施する方がADCに関するNGINX Controllerのオブジェクトモデルやコンセプトを理解いただくことです。
NGINX Controllerを用いた「app-centric(アプリケーション中心)」のモデルは、いわゆる旧来のLBで実施していた「network-centric(ネットワーク中心)」モデルとは別のデザインであり、NGINXの設定・構成をベースにしたデザインとなります

Important

想定時間: 15分

Note

このラボの手順はラボを実施する方がWindows jumphost – jumphost-1 から操作する手順を示しています。 接続方法についてはこちらを参照ください。 F5 Labs - Index

NGINX Controller が持つオブジェクトのコンセプト

このセクションではNGINX Controllerのオブジェクトについて説明します。BIG_IPやNGINXのコンセプトや記述方法と比較してください

../../_images/L1Controller-ObjectConcept.png

Environments

“Environment”は論理的なAppのグループです。これはRBAC(Role Based Access Control)の最上位の構成要素として利用されます Environmentsは組織や構成管理の観点で利用されるものであり、実際に管理対象となるNGINX Plusインスタンスにデプロイされるコンフィグ上には表現されません。 概念的には、BIG-IPのパーティションに似たものとなります。

Cert

SSL証明書と鍵をNGINX Controllerで一元的に管理・保存します。 これらは”Gateway”の機能に割り当てることが可能であり、設定に応じて利用します。

Gateway

“Gateway”は対象となるNGINX PlusインスタンスにデプロイするNGINX Config / Directiveに相当します この機能では、待ち受けるFQDN、許可するHTTPメソッド、SSL/TLS設定、その他様々なHTTP Parameter(buffer , body size , TCP keepalive)が含まれます。 これらの設定は、対象となるNGINX Configの”server” directive配下に表記される情報となります。 BIG-IPのTCP / HTTP / ClientSSL Profile等に相当する設定です

App

“App”はマイクロサービス環境で動作する すべての アプリケーションの要素を論理的にまとめたグループです。 “App”に含まれるそれぞれの”Component”が各マイクロサービスを示します。 これらは論理的なグループを示しており、NGINX Plusインスタンスの設定情報を示すものではありません。 BIG-IPファミリのコンセプトでは、AS3のテナントや、BIG-IQの”Application”に相当します。

Component

“Component”は単一のサービスを示す最も基本的な表現です。これは通信を待ち受けるためのURIなどの情報を含み、分散先サーバである”Workload Group”等を管理し、 トラフィックの転送先、HTTPの操作に関する情報(redirect, rewrite, header 操作)、ロギング設定などを指定します BIG-IPのVS、Poolや、HTTP Profile、Local Traffic PolicyやiRuleの一部の機能に該当します

Workload Group

“Workload Group”はバックエンドサーバをまとめたグループです。NGINX Configでは”upstream”でこの内容を記述します。 BIG-IPの”pool”および個々の”pool member”に相当します

Applicationをデプロイする

  1. jumphostのChromeで開かれているNGINX Controllerの管理画面を操作します。証明書エラーが表示されている場合には適切に操作をして画面を開いてください

    ../../_images/ControllerLogin1.png
  2. もし開かれていない場合、Chromeブラウザを開いてください

  3. BookmarkからNGINX Controller UIにアクセスしてください

    ../../_images/ControllerBookmark1.png
  4. NGINX Controller のadmin accountである、Peter Parker でログインしてください

    Username Password
    peter@acmefinancial.net Peter123!@#
    ../../_images/ControllerLogin-Peter1.png
  5. Services を開いてください。このセクションおよび配下の項目がこのラボで必要となる設定を作成するために利用します

    ../../_images/Tile-Services.png

Environmentを作成する

  1. “Environments” を選択してください.

    ../../_images/M2L1EnvTile.png
  2. 右上にある “Create” ボタンをクリックしてください

    ../../_images/M2L1EnvCreate.png
  3. 以下の通り項目を埋めてください

    Field Value
    Name echo
    Display Name Echo Environment
    ../../_images/M2L1EnvDialogue.png
  4. Submit をクリックし、操作を完了させてください

    ../../_images/Submit.png

証明書の追加

  1. “Certs” を選択してください

    ../../_images/M2L1Certs.png
  2. 右上にある “Create” ボタンをクリックしてください

    ../../_images/M2L1CertCreate.png
  3. 以下の通り項目を埋め、適切な Environment をドロップダウンリストから選択してください

    Field Value
    Name echoapp.net
    Environment Echo Environment
    ../../_images/M2L1CertDialogue1.png
  4. Import PEM or PKC12 ラジオボタンを選択し、Browse から証明書と鍵を選択します

    ../../_images/M2L1CertDialogue2.png

    証明書 (echoapp.net.crt) 鍵 (echoapp.net.key) をポップアップで表示される内容から選択してください ( This PC -> Documents -> Certs )

    Note

    証明書と鍵はそれぞれアップロードをしてください。NGINX Controllerは複数のファイルアップロードに対応していません

    ../../_images/M2L1Cert&Key.png
  5. Submit をクリックし、操作を完了させてください

    ../../_images/Submit.png

Gatewayの作成

  1. “Gateways” を選択してください

    ../../_images/M2L1GatewayTile.png
  2. 右上にある “Create” ボタンをクリックしてください

    ../../_images/M2L1GWcreate.png
  3. Configuration セクションの内容を以下の通り項目を埋めてください。入力後、Next をクリックするか、次のセクションの名称をクリックしてください

    Field Value
    Name echoappgw
    Environment Echo Environment
    ../../_images/M2L1GWDialogue.png
  4. Placements セクション配下のInstance Ref で “Development NGINX West 03 (CAS)” を選択してください

    ../../_images/M2L1Place.png
  5. Hostnames セクション配下で、指定のホスト名を追加してください(http://echoapp.net, https://echoapp.net). それぞれのホスト名で、 Match Method は指定しないでください。”Cert Reference”で echoapp.net を選択してください。ホスト名の追加操作が完了した場合、正しくそれぞれのメニュー右下部の”Done”をクリックしてください

    Note

    You will need to use the Add Hostname link pictured below to add multiple hostnames.

    ../../_images/M2L1Hostnames.png
  6. Submit をクリックし、操作を完了させてください

    ../../_images/Submit.png

Appを作成する

  1. “Apps” を選択してください

    ../../_images/Services-Apps.png
  2. 右上にある “Create” ボタンをクリックしてください

    ../../_images/M2L1AppsCreate.png
  3. 以下の通り項目を埋め、ドロップダウンリストから Environment を選択してください

    Field Value
    Name echoapp
    Environment Echo Environment
    ../../_images/M2L1Appdiag.png
  4. Submit をクリックし、操作を完了させてください

    ../../_images/Submit.png

Componentを作成する

  1. “Components” セクションを選択し、画面中央の “Create Component” をクリックしてください

    ../../_images/M2L1CreateComponent.png
  2. 以下の通り項目を埋め、ドロップダウンリストから Gateway Refs を選択してください

    Field Value
    Name echoappcomponent
    Gateway Refs echoappgw
    ../../_images/M2L1CompDiag.png
  3. URIs のセクションを開き、URIに / を指定します。Match Method は指定しないでください

    ../../_images/M2L1CompURI.png
  4. Workload Groups のセクションを開き、以下の通り項目を埋めてください。Backend URIの指定、Workload Group双方の操作が完了した場合、正しくメニュー右下部の”Done”をクリックしてください

    Field Value
    Name Echo Backend
    Backend Workload URIs http://10.1.20.11:8000
    ../../_images/M2L1WGdiag.png
  5. Submit をクリックし、操作を完了させてください

    ../../_images/Submit.png

Echo Applicationのテスト

  1. jumphost-1 のクロームで新しいタブを開き、”Developer Tools”を有効にしてください

    ../../_images/M2L1DevTools.png
  2. 先程の手順で作成したURLに対し (http://echoapp.net and https://echoapp.net) ブラウザからアクセスし、Echo Applicationが機能していることを確認してください。結果の確認のため echoapp.net をURLに入力いただくことで、結果の確認が可能です

    Note

    これはHTTP Requestの情報を返す、シンプルなWebアプリケーションです

    ../../_images/M2L1DevTools2.png