専用ロードバランサーアーキテクチャ

CloudHub 専用ロードバランサー (DLB) を使用すると、外部 HTTP および HTTPS トラフィックを、Virtual Private Cloud (VPC) 内の CloudHub ワーカーにデプロイされた複数の Mule アプリケーションに転送できます。各 CloudHub DLB は、Anypoint VPC に割り当てられ、その Anypoint VPC は特定のサービスリージョン内で実行されます。DLB は、外部トラフィックと Anypiont VPC の内部トラフィックの両方を、Anypiont VPC にデプロイされた CloudHub ワーカーに転送します。

公開 CloudHub ロードバランサーはすでにこれらの要求をリダイレクトしています。​myApp​ は CloudHub への Mule アプリケーションデプロイメントの名前です。

  • http://myApp.cloudhub.io​ への HTTP 要求は ​mule-worker-myApp.cloudhub.io:8081​ にリダイレクトされます。

  • https://myApp.cloudhub.io:443​ への HTTPS トラフィックは ​https://mule-worker-myApp.cloudhub.io:8082​ にリダイレクトされます。

ロードバランサーは、HTTPS 上の外部要求をリスンし、デフォルトでは HTTP を介して内部の通信を行います。HTTPS でリスンするように Anypoint VPC 内の Mule アプリケーションを設定している場合、​cloudhub load-balancer mappings add​ コマンドを使用してマッピングリストを作成するときに ​upstreamProtocol​ が ​HTTPS​ に設定されていることを確認してください。

専用ロードバランサーへの外部要求のルーティング

CloudHub 専用ロードバランサーでは、ポート 8091 でリスンする Mule アプリケーションへの HTTP 要求とポート 8092 でリスンする Mule アプリケーションへの HTTPS 要求を転送するための代替ドメイン名が提供されます。また、マッピングルールを使用して、CloudHub DLB への要求の名前を異なる Mule アプリケーションドメイン名に変更することもできます。

CloudHub DLB は、CloudHub Anypoint VPC ネットワークの外部からアクセスできる 2 つの公開 IP アドレスに解決される外部ドメイン名を公開します。 [lb-name]​ は作成時にロードバランサーに付けた名前です。

  • [lb-name].lb.anypointdns.net

  • [lb-name].lb-prod-eu-rt.anypointdns.net​ (EU コントロールプレーン)

  • [lb-name].lb-gprod-rt.anypointdns.net​ (Government Cloud コントロールプレーン)

専用ロードバランサーによる外部 Mule アプリケーション URL の名前変更

Mule アプリケーションの名前を変更するマッピングルールを作成することで、異なるドメイン名によってアクセスできるようになります。

たとえば、myApp-myCompany-prod.cloudhub.io という名前の Mule アプリケーションをデプロイするとします。CloudHub ドメイン名は、他のすべての MuleSoft のお客様と Mule アプリケーションの間でグローバルに一意である必要があります。DLB によって、企業 DNS ドメイン名内のこの命名の複雑さを隠すことができます。

企業 DNS 名前サーバーで CNAME レコードを設定して、​lb-name.lb.anypointdns.net​ ドメインを会社のバニティドメインにマスクすることができます。

たとえば、会社が DNS ドメイン ​example.com​ を所有しているとします。​{subdomain}​ パターンを使用して、​myapp.example.com​ への要求を ​myapp​ という名前の CloudHub アプリケーションにルーティングする CNAME レコードを作成できます。これで、​cloudhub.io​ ドメインの CloudHub ドメイン名の複雑さが隠されます。

専用ロードバランサーへの内部要求のルーティング

CloudHub 専用ロードバランサーには、Anypoint VPC 内のアプリケーションとクライアントによって使用される内部ドメイン名があります。

内部ドメインは次の命名規則を使用します (​[lb-name]​ は、ロードバランサーの作成時に付けた名前です)。

internal-[lb-name].lb.anypointdns.net

各 DLB には DNS A レコード ​[lb-name].lb.anypointdns.net​ があり、これはインスタンスの公開 IP アドレスに解決されます。 公開 IP アドレスの数は、ワーカーの数に相関します。 DNS プロバイダーを介して、この A レコードを指し示す CNAME レコードを追加したり、アクセスする自分のドメイン名を使用したりできます。

ロードバランサーでアプリケーションへのすべての接続を管理しても、アプリケーションのデフォルトのドメイン名を公開しない場合は、各アプリケーションが HTTP ポート 8091 または 8092 でリスンする必要があります。または、カスタムマッピングポリシーを作成して、ロードバランサーからの外部要求を特定のアプリケーションにリダイレクトできます。

次の図は、ロードバランサーが VPC と Anypoint Platform の間でやりとりを行うしくみを示しています。

ロードバランサー

ロードバランサーは、HTTPS 上の外部要求をリスンし、デフォルトでは HTTP を介して内部の通信を行います。Anypoint VPC 内の Mule アプリケーションを HTTPS 上でリスンするように設定した場合は、​load-balancer mappings add​ コマンドを使用してマッピングリストを作成するときに ​upstreamProtocol​ を HTTPS に設定する必要があります。

内部 HTTP モードでは、HTTP 要求がどのように管理されるかを設定できます。処理は、無視する、デフォルト SSL エンドポイント上の HTTPS にマップする、URL を対応する HTTPS URL にマップするのいずれかです。

DLB の URL エンコード

DLB が要求の URI を変更せずに渡すかデコードして渡すかを設定できます。

  • [Keep URL encoding (URL エンコードを保持)]​ を選択すると、DLB は %20 および %23 文字のみをそのまま渡します。

  • [Keep URL encoding (URL エンコードを保持)]​ の選択を解除すると、DLB は要求 URI のエンコードされている部分をデコードしてから CloudHub ワーカーに渡します。