Runtime Fabric への Mule アプリケーションのデプロイ

Mule アプリケーションを Anypoint Runtime Fabric の Mule Runtime サーバーにデプロイします。

本番環境にデプロイされるアプリケーションは、本番以外のアプリケーションから分離された Runtime Fabric のインスタンスにデプロイされる必要があります。

アプリケーションをデプロイしたら、デプロイされたアプリケーションのインバウンドトラフィックをテストできます。

Runtime Fabric に Mule アプリケーションをデプロイする

デプロイメントプロセス全体には次の手順が含まれます。

  1. アプリケーションとデプロイメント対象を選択する

  2. デプロイメント対象を設定する

  3. アプリケーションの公開エンドポイントを設定する (自己管理型 Kubernetes の場合) (自己管理型 Kubernetes の Runtime Fabric のみ)

  4. アプリケーションのネットワーク設定を指定する (VM/ベアメタルの Runtime Fabric のみ)

  5. 複製をセットアップする

  6. (省略可能) TLSv1 および TLSv1.1 を有効にする

  7. アプリケーションプロパティを設定する

  8. アプリケーションをデプロイする

前提条件

アプリケーションを Anypoint Runtime Fabric にデプロイする前に、次のことを実行します。

アプリケーションとデプロイメント対象を選択する

  1. Anypoint Platform​ にサインインします。

  2. [Runtime Manager]​ に移動し、​[Applications (アプリケーション)]​ を選択します。

  3. [Deploy application (アプリケーションをデプロイ)]​ をクリックします。

  4. [Application Name (アプリケーション名)]​ 項目で、アプリケーションに名前を付けます。

    名前に使用できるのは、小文字の英数字、ハイフン、およびアンダースコアのみです。

  5. [Choose File (ファイルを選択)]​ をクリックしてデプロイするアプリケーションを選択し、次のいずれかのオプションを選択します。

    • Import file from Exchange (Exchange からファイルをインポート)​: Anypoint Exchange に保存されている Mule アプリケーションを選択します。

    • Upload file (ファイルをアップロード)​: ファイルシステムから Mule アプリケーションファイルを選択します。

  6. [Deployment Target (デプロイメント対象)]​ ドロップダウンリストから、Runtime Fabric の名前を選択します。

  7. [Runtime Version (ランタイムバージョン)]​ ドロップダウンリストから、Mule Runtime エンジンバージョンを選択します。

    [Deployment Target (デプロイメント対象)]​ タブ、​[Ingress (イングレス)]​ タブ、​[Properties (プロパティ)]​ タブ、​[Logs (ログ)]​ タブ、​[JVM]​ タブが表示されます。これらのタブを使用して、アプリケーションの追加設定情報を入力します。

アプリケーションの公開エンドポイントを設定する (自己管理型 Kubernetes の場合)

自己管理型 Kubernetes の Runtime Fabric にデプロイされたアプリケーションの公開エンドポイントを設定する手順は次のとおりです。

アプリケーションに使用可能なドメインおよびパスは、Runtime Fabric システム管理者が設定したイングレスリソーステンプレートから取得されます。詳細は、​「Use Custom Ingress Resource Templates in Runtime Fabric on Self-Managed Kubernetes (自己管理型 Kubernetes の Runtime Fabric でのカスタムイングレスリソーステンプレートの使用)」​を参照してください。

ドメインを選択しない場合、アプリケーションは空のドメインにデプロイされます。
  1. [Ingress (イングレス)]​ を選択します。

  2. [Host (ホスト)]​ ドロップダウンリストからアプリケーションのホストを選択します。

  3. ホスト名にワイルドカードが使用されている場合、​[Subdomain (サブドメイン)]​ 項目でサブドメインを追加します。

    [Subdomain (サブドメイン)]​ 項目はホスト名にワイルドカードが使用されている場合のみ使用できます。

  4. [Path (パス)]​ 項目で、アプリケーションのエンドポイントに URL パスを追加します。

    アプリケーションのエンドポイントのホストとパスが設定されます。
  5. エンドポイントをプレビューするには、生成されたプレビューリンクをクリックします。

  6. 別のエンドポイントを追加するには、​[+ Add Endpoint (+ エンドポイントを追加)]​ をクリックします。

アプリケーションの公開エンドポイントを設定する (VM/ベアメタルの場合)

VM/ベアメタルの Runtime Fabric にデプロイされたアプリケーションの公開エンドポイントとネットワーク設定を定義する手順は次のとおりです。

まず​インバウンドトラフィックを手動で有効化​する必要があります。アプリケーションがポート 8081 で接続を受け入れるように設定されていることを確認します。

複数の FQDN を使用して Runtime Fabric インスタンスにアクセスするには、​subjectAltName​ 証明書プロパティに DNS エントリを追加します。証明書の ​subjectAltName​ プロパティに複数の DNS エントリが指定されている場合は、​[Public endpoint (公開エンドポイント)]​ セクションに利用できる URL のリストが表示されます。デプロイされた各アプリケーションのアドレスに使用できる FQDN は 1 つのみです。
  1. [Ingress (イングレス)]​ を選択します。

    イングレスは新規のアプリケーションデプロイメントで自動的に有効になります。

  2. イングレスを有効なままにするには、​[Domain (ドメイン)]​ ドロップダウンリストから適切なドメインを選択します。

    または、既存のアプリケーションのインバウンドトラフィックを有効化するには、適切なドメインを選択します。

  3. 新規アプリケーションのインバウンドトラフィックを無効化するには、ドメイン選択をクリアします。

    選択をクリアするには、ドメイン名を強調表示し、[Delete (削除)] を押します。

  4. 必要に応じて次のオプションを有効または無効にします。

    • Last-Mile security (Last-Mile セキュリティ)​: 転送された HTTPS 接続の TLS の終了と復号化がアプリケーションで行われる。このオプションでは Mule アプリケーションに SSL 証明書が含まれている必要があり、より多くの CPU リソースも必要です。

    • Forward SSL session (SSL セッションを転送)​: セッション中に SSL 転送を有効にする。

      SSL は、主にクライアント認証で使用されます。​「クライアント認証の有効化」​を参照してください。SSL 転送は、HTTP リクエストヘッダーでクライアント証明書の詳細を転送して、アプリケーションで使用できるようにします。これらの項目は、認証済みクライアントを識別し、アプリケーションが ID を判別して使用できるようにします。

      次のヘッダーを使用できます。

      ヘッダー名

      x-ssl-client-verify

      SUCCESS/FAIL

      x-ssl-issuer

      クライアント証明書発行者。

      x-ssl-client-serial

      クライアント証明書シリアル番号。

      x-ssl-client-dn

      クライアント証明書 DN 項目のコンテンツ。

複製およびストレージをセットアップする

アプリケーションのエンドポイントを設定した後で、複製をセットアップしてデプロイするアプリケーションインスタンス数を設定します。

高可用性には、少なくとも 2 つのレプリカが必要です。

Mule アプリケーションのレプリカと再起動でデータの永続性を有効にするためにストレージに対するオブジェクトをセットアップします。 このオプションは、Mule Runtime Engine バージョン 4.2.1 以降でのみ使用できます。このオプションが使用できない場合は、IT 管理者にお問い合わせください。詳細は、​「永続性ゲートウェイ」​を参照してください。

  1. [Deployment Target (デプロイメント対象)]​ タブを選択します。

    このタブには、以前に選択したデプロイメント対象の名前と種別が表示されます。

  2. デプロイするアプリケーションのレプリカまたはインスタンスの数を選択します。

  3. アプリケーションの各レプリカで Mule のクラスター化を有効にするには、​[Run in Runtime Clustering Mode (ランタイムのクラスター化モードで実行)]​ を有効にします。

  4. 異なるノード間でレプリカのデプロイメントを適用するには、​[Enforce deploying replicas across nodes (ノード間でレプリカのデプロイメントを適用)]​ を選択します。

    ワーカーノードの数、または各レプリカをデプロイするために必要なワーカーノードで使用できるリソースが不十分な場合は、デプロイメントの一部のレプリカが ​[Pending (保留中)]​ 状況のままになります。異なるワーカーノードにすべてのレプリカがデプロイされると、デプロイメントの状況は ​[Running (実行中)]​ に移行します。

  5. データの永続性を有効にするには、​[Use Persistent Object Storage (永続オブジェクトストレージを使用)]​ を選択します。

  6. [Cores (コア)]​ の数と ​[Memory (メモリ)]​ の量を指定し、スライダーを適切な値に調整してアプリケーションの各レプリカに割り当てます。

    必要に応じて、Runtime Fabric にデプロイするアプリケーションの​リソース割り当てを決定​する方法を確認してください。

(省略可能) TLSv1 および TLSv1.1 を有効にする

2021 年 8 月 3 日のパッチリリース​以降、Mule Runtime ではすべてのランタイムバージョンで TLS v1 および TLS v1.1 がデフォルトで無効になります。アプリケーションを Runtime Fabric にデプロイするときに、JVM 引数を使用して TLS v1 または TLS v1.1 を有効にできます。

  1. [JVM]​ タブをクリックします。

  2. [Java Virtual Machine arguments (Java 仮想マシン引数)]​ 項目で、次のいずれかの引数を追加します。

    • TLSv1.0 および TLSv1.1 を有効にする: -Drtf.allow.TLSv1.0+

    • TLSv1.1 を有効にする: -Drtf.allow.TLSv1.1

アプリケーションプロパティを設定する

Runtime Manager を使用して、環境を指定したりパスワードとユーザー名を設定したりするなど、アプリケーションプロパティ値を設定します。

Runtime Fabric によって機密情報を公開することなくプロパティが実行時に解決されます。

  1. [Properties (プロパティ)]​ タブをクリックします。

  2. [Table view (テーブルビュー)]​ をクリックします。

  3. [New Key (新しいキー)]​ 項目で、保護するプロパティを追加します。

  4. [New Value (新しい値)]​ 項目で、値を追加します。

  5. 必要に応じて、プロパティを追加します。

ログ記録とログレベルを設定する

Anypoint Monitoring では、Runtime Fabric にデプロイされたアプリケーションのログデータへのアクセスが提供されます。Anypoint Monitoring を使用してログにアクセスするには、 Titanium サブスクリプション​が必要です。

  1. [Logging (ログ)]​ タブをクリックします。

  2. [Enable application logs (アプリケーションログを有効化)]​ オプションを選択します。

  3. 追加のログレベルを設定するには、ドロップダウンリストを使用してログレベルを選択します。

    • INFO (情報)​: 有益情報のメッセージ

    • DEBUG (デバッグ)​: デバッグメッセージ

    • WARNING (警告)​: 警告メッセージ

    • ERROR (エラー)​: 例外が発生した場合などのエラーメッセージ

    • FATAL (致命的)​: アプリケーションが失敗した場合の致命的なメッセージ

  4. 必要に応じて、ログレベルを選択し、​package.name​ を入力して Enter キーを押すことで、特定の Java パッケージクラスのログレベルを設定します。

  5. [Apply Changes (変更を適用)]​ をクリックします。

アプリケーションをデプロイする

アプリケーションをデプロイする準備ができました。

  1. アプリケーションをデプロイするには、​[Deploy Application (アプリケーションをデプロイ)]​ をクリックします。

    [Deploy Application (アプリケーションをデプロイ)]​ ボタンが無効な場合、有効な Mule アプリケーションファイルをアップロードしていることを確認します。また、選択した Mule Runtime エンジンのバージョンがアプリケーションで使用されているバージョンと同じであることも確認します。

結果​: Runtime Manager にアプリケーションのデプロイメントを確認する状況メッセージが表示されます。デプロイメントが開始されると、デプロイメントの状況を参照できるアプリケーションリストページが表示されます。

新しくデプロイされたアプリケーションの場合、最初の状況は ​[Starting (開始中)]​ と表示されます。アプリケーションが成功した場合、状況は ​[Started (開始済み)]​ に更新されます。アプリケーションの状況を監視し、正常に開始されたことを確認します。

デプロイされたアプリケーションのインバウンドトラフィックを確認する

デプロイされたアプリケーションのインバウンドトラフィックをテストするため、ドメインに設定されたホストヘッダーと共にコントローラーの IP アドレスを使用して要求を送信できます。ホストヘッダーは、アプリケーション URL の構造によって異なります。

  1. アプリケーションを公開するエンドポイントを特定します。Runtime Manager の ​[Manage application (アプリケーションを管理)]​ ページの ​[Application url (アプリケーション URL)]​ 項目にこの情報が含まれます。

  2. 次の cURL コマンドを実行して検証します。

    curl -Lvk -XGET {application-path-from-runtime-manager} --resolve {hostname}:443:{ip-address-of-controller}

    次の例では、​{application-path-from-runtime-manager}​ は ​https://newapp.example-rtf.dev​ に設定され、​192.168.64.14​ はクラスターのコントローラーマシンの IP アドレスです。

    curl -Lvk https://newapp.example-rtf.dev/ --resolve newapp.example-rtf.dev:443:192.168.64.14

継続的デプロイメントの設定

Runtime Fabric でオンプレミスアプリケーションデプロイメントのワークフローをセットアップする方法は、​「オンプレミス Runtime Fabric のワークフロー」​を参照してください。

一般的な問題

アプリケーションをデプロイするときに、次の問題が発生する場合があります。

  • アプリケーションが数分間 ​[Starting (開始中)]​ 状況のままの場合、指定したリソース量が少なすぎることが原因の可能性があります。0.3 コア以下を選択した場合、アプリケーションの起動に数分かかることは一般的です。

  • 起動時にアプリケーションでエラーが発生した場合、デプロイメントが停止し、状況は ​[Failed (失敗)]​ に更新されます。アプリケーションをクリックして右サイドバーを表示すると、エラーメッセージのプレビューが表示されます。メッセージ全体を表示するには、​[Manage Application (アプリケーションを管理)]​ ボタンをクリックします。

  • VM/ベアメタルの Runtime Fabric を使用している場合、オペレーションセンターまたはサードパーティのログプロバイダーでアプリケーションログを表示して、詳細を確認します。

  • Runtime Fabric にデプロイメントで使用可能な CPU コアまたはメモリがない場合、​insufficient resources​ を示すエラーメッセージが返されます。複数のレプリカを選択する場合、指定されたコアとメモリが​​レプリカに適用されることを理解することが重要です。

  • 既存の実行中のアプリケーションへの再デプロイメントが失敗した場合、以前のアプリケーションは実行中でアクティブなままになります。この動作により、ダウンタイムゼロのアプリケーションの再デプロイメントが可能になります。Runtime Manager では、失敗の解決に役立つ失敗したデプロイメントの詳細と状況が報告されます。