非公開スペースにデプロイされたアプリケーションのエンドポイントとパスの設定

CloudHub 2.0 では、共有スペースではなく非公開スペースにデプロイされたアプリケーションでのみ、公開エンドポイントのカスタマイズがサポートされています。

非公開スペースは、クライアントからの要求を非公開スペースにデプロイされたアプリケーションに転送します。

アプリケーションを非公開スペースにデプロイするときに、​公開エンドポイント​と​非公開エンドポイント​の両方が作成されますが、変更できるのは公開エンドポイントのみです。 エンドポイント​は、非公開スペースにデプロイされたアプリケーションに到達するために使用される URL (​https://my-app.example.com/​ など) です。公開エンドポイントでは、ネットワーク外のクライアントがアプリケーションに到達できます。非公開エンドポイントには、非公開ネットワーク内のみ、VPN、またはトランジットゲートウェイ (TGW) でアクセスできます。アプリケーションがネットワーク内のみでアクセスできるようにするには、公開エンドポイントを削除します。

次の設定により、クライアントからの要求がアプリケーションに到達する方法をカスタマイズできます。

  • 複数のカスタム公開エンドポイント

    システム管理者は、非公開スペース設定で TLS コンテキストを設定することにより、公開エンドポイントに使用できるドメインを指定します。 詳細は、「非公開スペースのドメインおよび証明書 (TLS コンテキスト) の設定」を参照してください。

  • アプリケーションと公開エンドポイント URL で異なるパス

    パス​は、アプリケーションの HTTP リスナーに必要なベースパス (​my-app.example.com/v1/api​ など) です。

    詳細は、​「HTTP リスナーリファレンス - Mule 4」​を参照してください。

公開エンドポイントを削除して、非公開ネットワークの外部にあるクライアントがアプリケーションに要求を送信できないようにすることもできます。

始める前に

システム管理者は、アプリケーションのエンドポイントとパスを設定する前に、非公開スペースの TLS コンテキストをセットアップする必要があります。

複数の公開エンドポイントを設定する

複数の公開エンドポイント (​my-app.example.com​ と ​my-old-app.oldname.com​ など) を介してアプリケーションに到達可能にすることができます。

各エンドポイント名が一意になるように、サブドメインで ​app-name​ プレースホルダーを使用するか、ドメインにワイルドカードが含まれていない場合はパスを使用します。

複数の公開エンドポイントを設定する手順は、次のとおりです。

  1. アプリケーションを非公開スペースにデプロイする場合、​[Ingress (イングレス)]​ タブをクリックします。

    アプリケーションがすでにデプロイ済みの場合:

    1. Anypoint Platform から、​[Runtime Manager]​ > ​[Applications (アプリケーション)]​ を選択します。

    2. アプリケーション名をクリックします。

    3. ナビゲーションメニューで ​[Settings (設定)]​ をクリックします。

    4. [Ingress (イングレス)]​ タブをクリックします。

  2. 最初のエンドポイントを設定します。

    1. [Domain (ドメイン)]​ ドロップダウンリストから、最初のドメイン (​*.example.com​ など) を選択します。

      ドメインにワイルドカードが含まれる場合、​[Subdomain (サブドメイン)]​ 項目を使用できます。

    2. サブドメインを入力するか、​[Subdomain (サブドメイン)]​ 項目に ​my-app​ プレースホルダーを入力して、​[Application Name (アプリケーション名)]​ 項目で指定したアプリケーションの名前をサブドメインとして使用します。

      詳細は、​「プレースホルダー」​を参照してください。

    3. アプリケーションの HTTP リスナーがリスンするパス (​v1/api​ など) を入力します。

  3. 追加のエンドポイントを設定する場合は、​[Add Endpoint (エンドポイントを追加)]​ をクリックして、ステップ 2.1 ~ 2.3 を繰り返します。

  4. デプロイメントの状況に応じて、次のいずれかを選択します。

    • アプリケーションをデプロイする準備ができている場合、​[Deploy (デプロイ)]​ をクリックします。

    • このアプリケーションがデプロイされている場合、​[Apply Changes (変更を適用)]​ をクリックします。

  5. 設定された各エンドポイントでアプリケーションに到達できることを確認します。

プレースホルダー

サブドメインとパスでは、次の小文字プレースホルダー (省略可能) がサポートされます。

プレースホルダー 解決対象

app-name

アプリケーションをデプロイするときに ​[Application Name (アプリケーション名)]​ 項目で指定したアプリケーションの名前

business-group-id

アプリケーションに関連付けられビジネスグループ ID

environment-id

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

アプリケーションと公開 URL エンドポイントに異なるパスを設定する

アプリケーションと公開 URL エンドポイントに異なるパスを設定できます。 たとえば、アプリケーションが ​my-app.example.com/v1/api​ でリスンしているときに、​my-app.example.com/api​ を使用してインターネットからアプリケーションにアクセスすることができます。 パス URL を書き換えると、新しいパスがすべてのエンドポイントに適用されます。

異なるパスを設定する手順は、次のとおりです。

  1. 非公開スペースにアプリケーションをデプロイ​します。

  2. [Ingress (イングレス)]​ タブをクリックします。

  3. [Path (パス)]​ 項目で、アプリケーションにアクセスできるようにするパス (​/api​ など) を入力します。

  4. [Path Rewrite (パス書き換え)]​ 項目で、アプリケーションの HTTP リスナーに必要なベースパス (​/v1/api​ など) を入力します。

  5. アプリケーションの新しい設定を作成するには、​[Apply Changes (変更を適用)]​ をクリックします。

公開エンドポイントを削除する

公開エンドポイントを削除する手順は、次のとおりです。

  1. Anypoint Platform から、​[Runtime Manager]​ > ​[Applications (アプリケーション)]​ を選択します。

  2. アプリケーション名をクリックします。

  3. ナビゲーションメニューで ​[Settings (設定)]​ をクリックします。

  4. [Ingress (イングレス)]​ タブをクリックします。

  5. エンドポイントリンクの行で、​[X]​ (​[Delete (削除)]​) をクリックします。

アプリケーションの非公開エンドポイントを表示する

非公開エンドポイントには、同じ非公開スペース内から、または非公開スペースの VPN やトランジットゲートウェイ接続を介してアクセスできます。非公開エンドポイントのパスまたはドメインを変更することはできません。

非公開エンドポイントの URL を表示またはコピーする手順は、次のとおりです。

  1. Anypoint Platform から、​[Runtime Manager]​ > ​[Applications (アプリケーション)]​ を選択します。

  2. アプリケーション名をクリックします。

  3. ナビゲーションメニューで ​[Settings (設定)]​ をクリックします。

  4. [Ingress (イングレス)]​ タブをクリックします。

  5. [private endpoint (非公開エンドポイント)]​ にマウスポインターを置きます。

非公開スペース内でアプリケーション間要求を送信する

非公開スペースでは、すべてのアプリケーションレプリカが非公開スペース内のエンドポイントを公開しています。インバウンドトラフィックを有効にすると、このエンドポイントは外部に公開されます。

非公開スペースの内部ドメイン内のすべてのアプリケーションに DNS レコードがあります。たとえば、​2abc2ce6-cce6-463b-afaa-a1979e3xxxxx​ 環境のアプリケーション ​helloch2​ の DNS レコードは次のとおりです。

helloch2.2abc2ce6-cce6-463b-afaa-a1979e3xxxxx.svc.cluster.local

アプリケーションレプリカは親ドメインを検索する前にまず同じドメイン内の DNS レコードを検索するため、同じ非公開スペース内の別のアプリケーションに要求を送信するには、アプリケーション名のみが必要です。両方のアプリケーションが同じ名前空間にある場合は、アプリケーション名のみが必要です。

http://helloch2:8081/hello

必要に応じて ​http​ を ​https​ に置き換えます。