Edge Node Service (ENS) を使用してアプリケーションをデプロイし、待ち時間を短縮し、サービスにアクセスするユーザーのエクスペリエンスを向上させることができます。 ユーザーエクスペリエンスに加えて、サービスの継続性を考慮する必要があります。 このトピックでは、高可用性エッジコンピューティングアプリケーションの構築に役立つ主要な機能について説明します。
共有責任
クラウドでのサービス継続性は、Alibaba cloudと顧客の共通の責任です。
Alibaba Cloudは、ENSの安定性に責任を負い、ENSの可用性がサービスレベル契約 (SLA) の合意値を下回らないようにします。
お客様は、サービスの継続性を確保するために必要なときにフェールオーバーを実装できるように、サービスシステムのアーキテクチャ設計を担当します。
このトピックで説明するソリューションに基づいて、エッジコンピューティングアプリケーションにサービス継続性機能を実装することをお勧めします。
ベストプラクティス
マルチインスタンスのディザスタリカバリ
高可用性を確保するために、アプリケーションは、単一障害点 (SPOF) によるサービスの中断を防ぐために、重い負荷を処理できる必要があります。 この機能を実装するには、Edge Load Balancer (ELB) を使用できます。 詳細については、「ELBとは何ですか? 」をご参照ください。複数のENSインスタンスにアプリケーションをデプロイし、ELBを使用してインスタンス間のトラフィックのバランスを取ることができます。 ENSインスタンスに障害が発生した場合、ELBはトラフィックを他のENSインスタンスにリダイレクトして、サービスの継続性を確保できます。
クロスリージョンプライマリ /セカンダリディザスタリカバリ
アプリケーションのプライマリ /セカンダリの切り替え
エッジノードにアプリケーションをデプロイする場合、リージョンレベルの障害によるサービスの中断を防ぐために、他のエッジノードまたは他のAlibaba Cloudリージョンにアプリケーションのバックアップをデプロイする必要があります。
リージョンレベルの障害が発生した場合は、Global Traffic Manager (GTM) を使用して、他のリージョンのアプリケーションにドメイン名を自動的に指定できます。 これにより、トラフィックをリダイレクトしてサービスの継続性を確保できます。 詳細については、「GTMとは何ですか? 」をご参照ください。
セカンダリサービスを設計する場合、アプリケーションを他のENSリージョンまたは近くのAlibaba Cloudリージョンにデプロイできます。 セカンダリサービスを有効にすると、ユーザーがサービスにアクセスする際のレイテンシが増加する可能性があります。
データのバックアップと復元
障害時のトラフィックのリダイレクトは、リージョンレベルの障害によるサービスの中断を防ぐのに役立ちます。 ただし、障害が発生したリージョンのデータサービスが利用できなくなる場合があります。
セカンダリリージョンでアプリケーションを有効にするときにサービスが期待どおりに機能するようにするには、障害が発生していない期間にプライマリリージョンからセカンダリリージョンにデータを同期するためのビジネス要件に基づいた適切なソリューションを設計する必要があります。
たとえば、次の操作を実行できます。
アプリケーションで、現在のリージョンとセカンダリリージョンのストレージサービスにデータを書き込みます。 このように、セカンダリ領域のデータは、プライマリ領域のデータとほぼ同じになります。 しかしながら、書き込みレイテンシが増加する可能性がある。
アプリケーションがプライマリリージョンのストレージサービスにデータを書き込んだ後、セカンダリリージョンのストレージサービスにデータを非同期に同期します。 このように、書き込みレイテンシは増加しない。 ただし、セカンダリリージョンでサービスを有効にすると、データがプライマリリージョンのデータと異なる場合があります。
さらに、アプリケーションの復元メカニズムを設計する必要があります。 プライマリリージョンの障害が修正された後、障害期間中にセカンダリリージョンのサービスによって記録された新しいデータをプライマリリージョンに同期する必要があります。 このようにして、ユーザーはプライマリリージョンが復元されたときにサービスデータの損失を経験しません。
デプロイメントアーキテクチャ
上記の方法を組み合わせて、サービスの可用性を最大化し、サービスの継続性を確保できます。 次の図は、ELB、アプリケーションのプライマリ /セカンダリ切り替え、データバックアップ、および復元機能を使用するシステム展開アーキテクチャを示しています。
ビジネス要件に基づいて機能を使用できます。
システムのプライマリサービスは、スイスのエッジノードにデプロイされています。 プライマリサービスは、複数のインスタンスとELBを含むアーキテクチャを使用して、SPOFによるサービスの中断を防ぎます。
セカンダリサービスは、ドイツの近くのエッジノードにデプロイされます。 セカンダリサービスは、複数のインスタンスとELBを含むアーキテクチャも使用します。 セカンダリサービスは、近くのAlibaba Cloudリージョンにデプロイすることもできます。 プライマリリージョンが期待どおりに機能する場合、データはプライマリリージョンからセカンダリリージョンに同期されます。 これにより、セカンダリ領域が有効になっているときに、データがプライマリ領域のデータと一致することが保証されます。
GTMはドメイン名解決システムに統合されています。
GTMは、指定した頻度に基づいて、プライマリサービスのヘルスチェックを定期的に実行します。
プライマリサービスが期待どおりに機能する場合、ドメイン名はプライマリサービスを指します。
プライマリサービスが期待どおりに機能しない場合、GTMによって実行されたヘルスチェックの失敗回数が指定した制限に達した後、ドメイン名はセカンダリサービスを指します。 これは、自動プライマリ /セカンダリ切り替えを実装します。
プライマリサービスの障害時に、トラフィックはセカンダリサービスにリダイレクトされ、データはセカンダリサービスのストレージサービスに記録されます。 障害が修正された後、セカンダリサービスからプライマリサービスにデータを同期する必要があります。