クラスタリング

クラスタリングを使用すると、CloudHub 2.0 のアプリケーションで拡張性、ワークロードの分散、信頼性の向上を実現できます。 この機能は、CloudHub の拡張性の高い負荷分散サービスおよびレプリカのスケールアウトによって提供されます。

新しいアプリケーションをデプロイするときや、既存のアプリケーションを再デプロイするときに Anypoint Runtime Manager コンソールを使用して、アプリケーションごとにクラスタリング機能を有効にできます。

高可用性およびクラスタリング

高可用性​とは、クラスタリングとは異なり、各レプリカ間でデータを共有しない複数のレプリカがあることを指します。 クラスタリング​では、複数のレプリカが相互に通信し、メモリを共有しているためにデータを共有できます。

CloudHub 2.0 クラスタリングおよび Object Store v2

CloudHub 2.0 は、Mule 4 アプリケーション用 Object Store v2 に加えて、Mule を使用したクラスタリングをサポートしています。CloudHub 2.0 で Object Store v2 を有効にする場合、レート制限がある点に注意してください。詳細は、「Object Store v2 の概要」を参照してください。

CloudHub 2.0 でオブジェクトストアを使用するようにアプリケーションを設定する必要はありません。さらに、Mule 4 アプリケーションでは、Anypoint Runtime Manager コンソールから有効化できる Object Store v2 がサポートされています。

始める前に

クラスタリングでは、以下が必要です。

  • Anypoint Platform の Platinum または Titanium サブスクリプション。

  • この機能を使用できる CloudHub Enterprise または Partner アカウント種別。

  • Runtime Manager を使用したアプリケーションのデプロイについての理解。

レプリカのスケールアウト

CloudHub 2.0 では、アプリケーションの vCore オプションを選択して、水平方向に拡張できます。 このように計算能力のプロビジョニングを詳細に制御できるため、高い負荷に対処する場合はアプリケーションをスケールアップし、負荷が低い期間はスケールダウンするという作業を任意のタイミングで柔軟に行うことができます。

サブスクリプションに応じて、最大 8 個のレプリカでアプリケーションをデプロイできます。 十分なリソースがあることを確認するには、​「CloudHub 2.0 レプリカ」​を参照してください。

レプリカのスケールアウトにより、信頼性も向上します。 Mule Runtime Engine (Mule) は、自動的に同じアプリケーションで複数のレプリカを 2 つ以上のデータセンターで分散し、最大限の信頼性を確保します。

アプリケーションを 2 つ以上のレプリカにデプロイすると、それらの Mule インスタンスでワークロードを分散できます。 CloudHub では、割り当てたレプリカで HTTP 要求を自動的に分散する、次の HTTP 負荷分散サービスが提供されます。

バッチジョブは、一度に 1 つのレプリカでのみ実行され、複数のレプリカで分散できません。 同じデプロイメントで Mule が再起動すると、その状況は保持され、バッチの処理が続行されます。 バッチの実行中にアプリケーション全体が更新または再デプロイされると、残りのバッチジョブは続行されません。 CloudHub 2.0 の永続的なバッチジョブの主な解決策は、「Object Store v2 の概要」を参照してください。

クラスタリング機能の有効化

次の 2 つのいずれかの方法でクラスタリングの機能のいずれかまたは両方を有効/無効にできます。

  • 初めてアプリケーションを CloudHub 2.0 にデプロイするときに Runtime Manager 使用する

  • 以前にデプロイされたアプリケーションの Runtime Manager で ​[Deployment Target (デプロイメント対象)]​ タブを使用する

[Deployment Target (デプロイメント対象)]​ タブのドロップダウンメニューを使用して、アプリケーションの vCore オプションを選択し、必要な計算能力を設定します。

複数のレプリカへのデプロイについての詳細は、​「CloudHub 2.0 レプリカ」​を参照してください。

アプリケーションがすでにデプロイされている場合、新しい設定を有効にするには、再デプロイする必要があります。

クラスタリングの実装方法

HTTP 負荷分散は、内部リバースプロキシサーバーで実装されます。 アプリケーション (ドメイン) URL への要求は、自動的にすべてのアプリケーションのレプリカ URL で負荷分散されます。

ユースケース

単一のアプリケーションで、クラスタリング機能を組み合わせることができます。

ユースケース 推奨されるクラスタリング設定 影響

アプリケーションをスケールアウトしたいが、サービスの中断とメッセージの損失については、既存の可用性の高い CloudHub 2.0 アーキテクチャに満足している。

レプリカの数: 2 つ以上

  • キューのレイテンシーによるアプリケーションパフォーマンスへの影響はない。

  • キューをサポートするようにアプリケーションを設定する必要はない。

  • 1 つのデータセンターが停止しても、別のデータセンターでレプリカを使用できる。

メッセージの損失に対する保護が必要な大きな利害が関係するプロセスがあるが、処理負荷の対処に問題は発生しておらず、データセンターが停止した場合に一部のサービスが中断されても問題はない。

レプリカの数: 1

  • アプリケーションでキューのレイテンシーが発生する可能性がある。

  • デプロイする前にキューをサポートするようにアプリケーションを設定する必要がある。

  • レプリカが動作しているデータセンターが停止すると、CloudHub 2.0 によって自動的にアプリケーションが別の可用性ゾーンに移行される。移行時にダウンタイムが発生する場合もありますが、キューにより、メッセージの損失はありません。

メッセージの損失に対する保護が必要な大きな利害が関係するプロセスがあり、サービスの中断を避けて、大きな処理負荷に対処する。

レプリカの数: 2 つ以上

  • アプリケーションでキューのレイテンシーが発生する可能性がある。

  • デプロイする前にキューをサポートするようにアプリケーションを設定する必要がある。

  • 1 つのデータセンターが停止すると、レプリカが自動的に分散されて冗長性が確保される。

処理負荷やメッセージの損失に関して特殊な要件のないアプリケーションがある。

レプリカの数: 1

  • キューのレイテンシーによるアプリケーションパフォーマンスへの影響はない。

  • キューをサポートするようにアプリケーションを設定する必要はない。

  • レプリカが動作しているデータセンターが停止すると、CloudHub によって自動的にアプリケーションが別の可用性ゾーンに移行されるが、移行時にダウンタイムやメッセージの損失が発生するが場合がある。