CloudHub 高可用性および障害回復

logo cloud active logo hybrid disabled logo server disabled logo rtf disabled

CloudHub は高可用性 (HA) と、アプリケーションおよびハードウェアの障害に対する障害回復を提供します。

CloudHub はそのインフラストラクチャで Amazon AWS を使用しているため、可用性は Amazon に依存します。CloudHub の可用性とデプロイメントはさまざまなリージョンに分割され、各リージョンは、対応する Amazon リージョンを参照します。Amazon リージョンがダウンすると、そのリージョン内のアプリケーションは使用できなくなり、他のリージョンに自動的に複製されません。

hadr aws global infrastructure

たとえば、米国東部リージョンが使用できない場合、CloudHub の管理 UI だけでなく、デプロイメントを可能にするさまざまな REST サービスも、リージョンの可用性が復元されるまで使用できません。 米国東部がダウンしている間は、新しいアプリケーションをデプロイできません。

コントロールプレーンが使用できない間、ランタイムプレーンでは引き続きログデータをはじめとするテレメトリデータが送信され、ワーカーはコントロールプレーンが再び使用できるようになるまでこれらのテレメトリデータをバッファします (最大 1 GB)。

CloudHub は、メッセージの信頼性確保を目的として使用する永続的なキューの形式で内部メッセージングメカニズムを提供します。 永続的なキューは、リージョン内での可用性は高くなりますが、リージョンまたはその一部が (通常は数秒から数分) 使用できなくなると、永続的なキューにアクセスできなくなり、一部のデータが失われることがあります。 リージョンが再び使用できるようになると、CloudHub はキューとの通信を再開します。

デプロイ先のリージョンに関係なく、すべてのアプリケーションの一部の CloudHub モジュール (Anypoint Object Store v1 など)、アプリケーション設定、および Insight 関連の情報は、米国東部リージョンでは維持されます。Anypoint Object Store v2 は、デプロイされた CloudHub アプリケーションと同じリージョンで維持されます。Anypoint Object Store v1 および v2 では、リージョンを使用できなくなった場合もデータは保持され、リージョンが復旧すると再度使用可能になります。

Anypoint Virtual Private Cloud (Anypoint VPC) はリージョンレベルでセットアップされます。このため、リージョンを使用できない場合、他のリージョンで以前の Anypoint VPC インスタンスのセットアップが完了していない限り、Anypoint VPC は使用できません。

Anypoint CloudHub のデフォルトデプロイメントモデル

アプリケーションで複数のワーカーを使用する場合、CloudHub はデフォルトで個別の可用性ゾーンにワーカーをデプロイし、可用性ゾーン全体に対して HA を提供します。可用性ゾーン間の距離は可変であり、一般に 350 マイル以上離れることはありません。

hadr am web services

アプリケーションが 1 つのワーカーのみを使用している場合、可用性ゾーンが使用できなくなると、CloudHub はそのアプリケーションを別の可用性ゾーンで自動的に再起動します。 この場合は、アプリケーションのダウンタイムが発生することがあります。

可用性ゾーンまたはリージョンで障害が発生したときにアラートを受信するように ​status.mulesoft.com​ をセットアップできます。

推奨の代替デプロイメントモデル

ロードバランサ (クラウドまたはオンプレミス) を使用すると、さまざまなリージョンにデプロイされたアプリケーションでより適切な障害回復戦略を提供できます。

hadr load balancer

ステートレスなインテグレーション

インテグレーションがステートレスになるようにしてください。クライアントの呼び出しや実行 (スケジュールされたサービスの場合) の間でトランザクション情報を共有しないということです。システムの制限により一部のデータをミドルウェアで維持する必要がある場合は、ミドルウェアのインフラストラクチャまたはメモリ内ではなく、外部ストア (データベース、メッセージキューなど) でデータを保持する必要があります。

特にクラウド内で規模を拡大する場合、各ワーカーやノードの状態および各ワーカーやノードで使用するリソースが他のワーカーから独立するようにしてください。このモデルでは、パフォーマンスと拡張性だけでなく信頼性も向上します。

Was this article helpful?

💙 Thanks for your feedback!