Google Cloud デプロイ アーキタイプ ガイドのこのセクションでは、グローバル デプロイ アーキタイプについて説明します。
グローバル デプロイ アーキタイプに基づくアーキテクチャでは、アプリケーションは世界中の複数の Google Cloud リージョンで実行されます。アプリケーションは、ロケーションを認識しない分散スタックとして、またはリージョンごとに分離された複数のスタックとしてデプロイできます。いずれの場合も、グローバル エニーキャスト ロードバランサがトラフィックを適切なリージョンに分散します。アプリケーションは、すべてのリージョンで利用可能な同期的に複製されるデータベース(マルチリージョン構成の Spanner など)に対してデータの書き込みと読み取りを行います。アプリケーション スタックの他のコンポーネント(キャッシュやオブジェクト ストアなど)もグローバルにすることができます。
次の図は、ロケーションを認識しない分散グローバル デプロイ アーキタイプの例を示しています。
上の図は、3 つの Google Cloud リージョンの複数のゾーンに分散されたフロントエンド インスタンスとバックエンド インスタンス(通常はマイクロサービス)を持つ、ロケーションを認識しないアプリケーション スタックを示しています。グローバル エニーキャスト ロードバランサが受信トラフィックを適切なフロントエンド インスタンスに分散します。この分散は、インスタンスの準備状況と容量、トラフィックの送信元からの地理的な近さに基づいて行われます。フロントエンド インスタンスからのトラフィックは、クロスリージョンの内部ロードバランサによって、バックエンド インスタンスの準備状況と容量に基づいて適切なインスタンスに分配されます。アプリケーションは、リージョンをまたいで使用可能な、同期的に複製されるデータベースを使用します。
次の図は、リージョンごとに分離されたアプリケーション スタックを使用するグローバル デプロイ アーキタイプの例を示しています。
上の図は、2 つの Google Cloud リージョンの複数のゾーンで実行される、リージョンごとに分離されたアプリケーション スタックを示しています。このトポロジはマルチリージョン デプロイ アーキタイプに似ていますが、DNS ルーティングではなくグローバル エニーキャスト ロードバランサを使用します。グローバル ロードバランサは、ユーザーに最も近いリージョンのフロントエンドに受信トラフィックを分散します。どちらのアプリケーション スタックも、両方のリージョンで利用可能な同期的に複製されるデータベースに対してデータの書き込みと読み取りを行います。2 つのリージョンのいずれかで停止が発生した場合、グローバル ロードバランサがもう一方のリージョンのフロントエンドにユーザー リクエストを送信します。
ユースケース
次のセクションでは、グローバル デプロイ アーキタイプが適切なユースケースの例を示します。
世界中のユーザーを対象とした高可用性アプリケーション
世界中のユーザーにサービスを提供し、複数のリージョンの停止に対する高可用性と堅牢性を必要とするアプリケーションには、グローバル デプロイ アーキタイプをおすすめします。
費用を最適化し運用を簡素化する機会
グローバル デプロイ アーキタイプでは、グローバル ロードバランサやグローバル データベースなどの高可用性を備えたグローバル リソースを使用できます。マルチリージョン デプロイと比較すると、グローバル デプロイではプロビジョニングおよび管理するリソースが少なくなるため、コストの削減と運用の簡素化を実現できます。
設計上の考慮事項
グローバル デプロイ アーキタイプに基づいてアーキテクチャを構築する場合は、次の設計要素を考慮してください。
ストレージ、レプリケーション、ネットワーキングの費用
グローバルに分散されたアーキテクチャでは、ロケーション間のネットワーク トラフィックの量がリージョン デプロイと比べて多くなることがあります。また、より多くのデータが保存され、複製される場合があります。そのため、グローバル デプロイ アーキタイプに基づいてアーキテクチャを構築する場合は、データ ストレージとネットワーキングにかかる費用が高くなる可能性があります。ただし、ビジネス クリティカルなアプリケーションでは、グローバルに分散したアーキテクチャの可用性の利点がネットワーキングとストレージの費用の高さというデメリットを上回る場合があります。
グローバル リソースに対する変更の管理
高可用性を備えたグローバル リソースを活用することで、費用を最適化し、運用を簡素化できます。ただし、グローバル リソースが単一障害点(SPOF)にならないようにするには、慎重にグローバル リソースに対する構成の変更を管理する必要があります。
リファレンス アーキテクチャ
グローバル デプロイの設計に使用できるリファレンス アーキテクチャについては、Compute Engine と Spanner を使用したグローバル デプロイをご覧ください。