Flex Gateway新着情報
Governance新着情報
Monitoring API ManagerCloudHub 2.0 では、共有スペースではなく非公開スペースにデプロイされたアプリケーションでのみ、エンドポイントのカスタマイズがサポートされています。 |
非公開スペースは、クライアントからの要求を非公開スペースにデプロイされたアプリケーションに転送します。
アプリケーションを非公開スペースにデプロイすると、2 種類のエンドポイントが作成されます。
エンドポイント: 公開スペースにデプロイされたアプリケーションに到達するために使用される URL。このコンテキストでは、外部からエンドポイントにアクセスできるため、ネットワーク外のクライアントがアプリケーションに到達できます。このエンドポイントを削除すれば、外部トラフィックがアプリケーションに到達することを回避できます。
内部エンドポイント: 公開スペースにデプロイされたアプリケーションに到達するために使用される URL。ただし、非公開ネットワーク内、VPN、またはトランジットゲートウェイ (TGW) でのみアクセスできます。このエンドポイント種別は変更または削除できません。
エンドポイント URL の例としては、https://my-app.example.com/
のようになります。エンドポイントでは、ネットワーク外のクライアントがアプリケーションに到達できます。内部エンドポイントには、非公開ネットワーク内、VPN、またはトランジットゲートウェイ (TGW) でのみアクセスできます。ネットワーク内でのみアプリケーションにアクセスできるようにするには、内部エンドポイントを使用します。
次の設定により、クライアントからの要求がアプリケーションに到達する方法をカスタマイズできます。
複数のカスタムエンドポイント
システム管理者は、非公開スペース設定で TLS コンテキストを設定することにより、エンドポイントに使用できるドメインを指定します。 詳細は、『非公開スペースのドメインおよび証明書 (TLS コンテキスト) の設定』を参照してください。
アプリケーションとエンドポイント URL で異なるパス
パスは、アプリケーションの HTTP リスナーに必要なベースパス (my-app.example.com/v1/api
など) です。
詳細は、「HTTP リスナーリファレンス - Mule 4」を参照してください。
エンドポイントを削除して、非公開ネットワークの外部にあるクライアントがアプリケーションに要求を送信できないようにすることもできます。
システム管理者は、アプリケーションのエンドポイントとパスを設定する前に、非公開スペースの TLS コンテキストをセットアップする必要があります。
詳細は、『非公開スペースのドメインおよび証明書 (TLS コンテキスト) の設定』を参照してください。
複数のエンドポイント (my-app.example.com
と my-old-app.oldname.com
など) を介してアプリケーションに到達可能にすることができます。
各エンドポイント名が一意になるように、サブドメインで app-name プレースホルダーを使用するか、ドメインにワイルドカードが含まれていない場合はパスを使用します。
|
複数のエンドポイントを設定する手順は、次のとおりです。
アプリケーションを非公開スペースにデプロイする場合、[Ingress (イングレス)] タブをクリックします。
『非公開スペースへのアプリケーションのデプロイ』を参照してください。
アプリケーションがすでにデプロイ済みの場合:
Anypoint Platform から、[Runtime Manager] > [Applications (アプリケーション)] を選択します。
アプリケーション名をクリックします。
ナビゲーションメニューで [Settings (設定)] をクリックします。
[Ingress (イングレス)] タブをクリックします。
最初のエンドポイントを設定します。
[Domain (ドメイン)] ドロップダウンリストから、最初のドメイン (*.example.com
など) を選択します。
ドメインにワイルドカードが含まれる場合、[Subdomain (サブドメイン)] 項目を使用できます。
サブドメインを入力するか、[Subdomain (サブドメイン)] 項目に my-app
プレースホルダーを入力して、[Application Name (アプリケーション名)] 項目で指定したアプリケーションの名前をサブドメインとして使用します。
詳細は、「プレースホルダー」を参照してください。
アプリケーションの HTTP リスナーがリスンするパス (v1/api
など) を入力します。
追加のエンドポイントを設定する場合は、[Add Endpoint (エンドポイントを追加)] をクリックして、ステップ 2.1 ~ 2.3 を繰り返します。
デプロイメントの状況に応じて、次のいずれかを選択します。
アプリケーションをデプロイする準備ができている場合、[Deploy (デプロイ)] をクリックします。
このアプリケーションがデプロイされている場合、[Apply Changes (変更を適用)] をクリックします。
設定された各エンドポイントでアプリケーションに到達できることを確認します。
サブドメインとパスでは、次の小文字プレースホルダー (省略可能) がサポートされます。
プレースホルダー | 解決対象 |
---|---|
|
アプリケーションをデプロイするときに [Application Name (アプリケーション名)] 項目で指定したアプリケーションの名前 |
|
アプリケーションに関連付けられビジネスグループ ID |
|
アプリケーションをデプロイする環境 |
アプリケーションと URL エンドポイントに異なるパスを設定できます。
たとえば、アプリケーションが my-app.example.com/v1/api
でリスンしているときに、my-app.example.com/api
を使用してインターネットからアプリケーションにアクセスすることができます。
パス URL を書き換えると、新しいパスがすべてのエンドポイントに適用されます。
異なるパスを設定する手順は、次のとおりです。
[Ingress (イングレス)] タブをクリックします。
[Path (パス)] 項目で、アプリケーションにアクセスできるようにするパス (/api
など) を入力します。
[Path Rewrite (パス書き換え)] 項目で、アプリケーションの HTTP リスナーに必要なベースパス (/v1/api
など) を入力します。
この項目は、カスタム TLS コンテキストでデプロイされたアプリケーションでのみ使用できます。
アプリケーションの新しい設定を作成するには、[Apply Changes (変更を適用)] をクリックします。
エンドポイントを変更する手順は、次のとおりです。
Anypoint Platform から、[Runtime Manager] > [Applications (アプリケーション)] を選択します。
アプリケーション名をクリックします。
ナビゲーションメニューで [Settings (設定)] をクリックします。
[Ingress (イングレス)] タブをクリックします。
エンドポイントリンクの行で、[X] ([Delete (削除)]) をクリックします。
内部エンドポイントには、同じ非公開スペース内から、または非公開スペースの VPN やトランジットゲートウェイ接続を介してアクセスできます。内部エンドポイントのパスまたはドメインを変更することはできません。
内部エンドポイントの URL を表示またはコピーする手順は、次のとおりです。
Anypoint Platform から、[Runtime Manager] > [Applications (アプリケーション)] を選択します。
アプリケーション名をクリックします。
ナビゲーションメニューで [Settings (設定)] をクリックします。
[Ingress (イングレス)] タブをクリックします。
[internal 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
に置き換えます。
svc.cluster.local エンドポイントを使用して、異なる名前空間のアプリケーション間でトラフィックを送信することはできません。
|
アプリケーション間の通信方法を次に示します。
デフォルトの公開 DNS 名: app.sxjsip.aus-s1.cloudhub.io
デフォルトの内部 DNS 名 (非公開スペースのみ): app.internal-sxjsip.aus-s1.cloudhub.io
カスタムドメイン名 (設定されている場合): acme.example.com
クラスターローカル DNS: app
または app.envid.svc.cluster.local
内部 DNS 名を使用する場合、トラフィックは非公開スペースネットワークに留まります。アプリケーションを非公開スペースにデプロイする場合、外部に公開されるエンドポイントを削除または省略できます。その場合、内部トラフィック用にアプリケーションの内部エンドポイントを使用できます。
クラスターローカルエンドポイントを使用する場合、トラフィックはクラスター内に留まります。ただし、クラスターローカルエンドポイントは高可用性ではありません。一部のクラスター操作 (障害回復など) により、エンドポイントに到達できなくなる可能性があります。クラスターローカルエンドポイントでは、同じ環境内のトラフィックのみが許可されます。