Skip to main content

 

 

 

 
Language:

 

 

 

 
 
OutSystems

Pivotal Cloud Foundry: PCFのルートを定義してIISのルーティング規則を設定する

注記: Pivotal Cloud Foundryへのデプロイに関するシステム要件ネットワーク要件を満たしていることを確認してください。

アプリケーションをPivotal Cloud Foundry(PCF)にデプロイするプロセス(詳細な手順は、「Pivotal Cloud Foundryにアプリケーションをデプロイする」を参照)では、PCFコンテナで動作するアプリケーションをプッシュ、設定、起動します。

この手順の後、コンテナ内のアプリケーションの構成済みデプロイメントゾーンアドレス経由、およびPlatform Serverと同じパブリックアドレス経由で、コンテナ内のアプリケーションにアクセスできることを確認する必要があります。

この例では、Platform Serverがインストールされているマシンで動作するインターネットインフォメーションサービス(IIS)を、簡素化されたメインのロードバランサとリバースプロキシとして利用します。

別のルーティングやリバースプロキシソフトウェアを使用している場合は、以下に示す一般的な構成ガイドラインに従い、状況に応じて手順を調整します。

また、PCFインフラでSSL証明書がすでに構成されており、IISによって信頼されていることが前提となります。

この例では、コンテナで実行されているアプリケーションに関連付けられたルーティングの処理に関して、考えられるいくつかの解決策のうち1つを示しています。ルーティング構成をネットワークチームやDevOpsチームと必ず検証してください。ただし、これは推奨される本番シナリオではないことに留意してください。

以下で説明する手順により、接続を確保するために必要なPCFの最小限の構成とIISのルーティング規則を定義できます。

  • OutSystemsプラットフォームとPCFで実行されているサンプルアプリケーションモジュールとの間の接続
  • 外部ユーザーとPCFで実行されているサンプルアプリケーションモジュールとの間の接続

例: 「Directory」Webアプリケーション

DirectoryEmployeesという2つのモジュールを含む「Directory」と呼ばれる簡単なアプリケーションのルーティング規則を構成します。

これは、アプリケーションのデプロイメントゾーン用に構成されたアドレスとパブリックアドレスを使用して2つのアプリケーションモジュールにアクセスできることを確認することが目的です。つまり、この例では、アドレス[<ゾーンアドレス>/Directory/<ゾーンアドレス>/Employees/]の内部ネットワーク経由、および[<パブリックアドレス>/Directory/<パブリックアドレス>/Employees/]のパブリックネットワーク経由で、2つのモジュールDirectoryEmployeesにアクセスできる必要があります。

これを実現するには、Platform Serverが使用するIISをリバースプロキシ(<パブリックアドレス>で応答)として構成して、コンテナが起動されたPCFアプリケーションにリクエストをルーティングできます。

たとえば、Pivo​​tal Apps Managerに以下のドメインがあるとします。

ここでは、以下のようになります。

  • <ゾーンアドレス>os.pcf.example.com
  • <パブリックアドレス>public.domain.example.com

以下の手順を実行します。

注記: 手順1~3は、すでに完了している場合はスキップできます。

  1. PCFUtils.psm1 PowerShellモジュールを任意のフォルダにダウンロードします。
    注記: このスクリプトを使用するには、PowerShellの実行ポリシーがunsignedに設定されている必要があります。詳細については、Microsoftのドキュメントをご覧ください。

  2. PowerShellコンソールで、以下のコマンドを実行してモジュールをインポートします。

    Import-Module <path>/PCFUtils.psm1
    

    <path>は、スクリプト用の任意の親フォルダに置き換えます。

  3. 同じPowerShellコンソールで、以下のコマンドを実行してアプリケーションの各モジュールのルートをPCFに追加します。

    Add-CFRoutes -Filepath <バンドルパス> -AppName <アプリ名> -PublicAddress <パブリックアドレス> -ZoneAddress <ゾーンアドレス>
    

    以下のとおり置き換えます。

    • <バンドルパス>をアプリケーションバンドルのZIPファイルへのパスで。
    • <アプリ名>を以前実行したcf pushコマンドの出力で指定されたPCFのアプリケーション名で。
    • <パブリックアドレス>「PCFの要件」に記載されたメインのロードバランサとリバースプロキシのパブリックアドレスで。
    • <ゾーンアドレス>を(「PCFの要件」でも記載されている)PCFゾーンアドレスで。

    これにより、PCFがアプリケーションモジュールにリクエストをルーティングできるようになります。

    この例では、以下のようになります。

    Add-CFRoutes -Filepath "C:\Program Files\OutSystems\Platform Server\pcf\3949aa6b-0d51-4fb6-aa60-f974b4c6b2aa_172afb7a-a333-429c-a06c-fe9e352cdd3f.zip" -AppName Directory-PublicAddress public.domain.example.com -ZoneAddress os.pcf.example.com
    
  4. IISのエクステンションApplication Request RoutingURL Rewriteをインストールします。前者は規則に基づくルーティング構成を定義でき、後者はユーザーフレンドリーなURLの実装に関する規則を定義できます。

  5. コンテナに関連付けられたルートのリストを取得します。

    cf app <アプリ名>

    出力例:

    >cf app "Directory"
    Showing health and status for app Directory in org myorganization / space Default as admin...
    name:              ディレクトリ
    requested state:   started
    instances:         1/1
    usage:             512M x 1 instances
    routes:            directory.pcf.example.com,
                       public.domain.example.com/Directory,
                       os.pcf.example.com/Directory, 
                       public.domain.example.com/Employees,
                       os.pcf.example.com/Employees
    last uploaded:     Fri 3 Aug 10:57:57 BST 2018
    stack:             windows2016
    buildpack:         binary_buildpack
        state     since                  cpu    memory           disk          details
    #0   running   2018-07-04T21:48:36Z   0.2%   110.7M of 512M   88.4M of 1G
    
  6. Application Request Routingのプロキシ設定を構成します。

    1. IISマネージャを開いてサーバー名をクリックし、「Application Request Routing Cache」モジュールを開き、右サイドバーにある[Server Proxy Settings...]リンクをクリックします。

    2. 以下の図に示すように現在の設定を変更し、右サイドバーにある[Apply]をクリックします。

    以下の設定になっていることを確認します。
    – [Enable Proxy]にチェックが付いている
    – [Reverse rewrite host in response headers]にチェックが付いていない
    – [Preserve client IP in the following header]がX-Forwarded-Forに設定されている

  7. 以下の図に従って、モジュールごとに新しい未設定のルーティング規則を作成します。手順3で取得したルートのリストを確認する必要があります。規則に任意の名前を付けます。

    ヒント: 書き換え規則を作成する方法については、Microsoftのドキュメントをご覧ください。

    関連フィールドの値:
    Match URL – Pattern: ^<モジュール名>/(.*)
    Action
    – Action type: Rewrite
    – Rewrite URL: https://<ゾーンアドレス>/<モジュール名>/{R:1}
    – [Stop processing of subsequent rules]にチェックが付いている

    この例に従い、この手順では2つのルーティング規則を作成します。1つはDirectoryモジュールの規則、もう1つはEmployeesモジュールの規則です。

    右パネルの上部にある[Apply]をクリックして規則を作成します。

  8. デプロイメントゾーンアドレスを使用してモジュールにアクセスできることを確認します。
    この例に従い、アドレス[<ゾーンアドレス>/Directory/<ゾーンアドレス>/Employees/]だけではなくアドレス[<パブリックアドレス>/Directory/<パブリックアドレス>/Employees/]でもモジュールDirectoryEmployeesにアクセスできることを確認します。

注記: 「Global」デプロイメントゾーンにアプリケーションをデプロイし直す場合は、IISに追加された書き換え規則を削除する必要があります。

  • Was this article helpful?