Google Cloud のデプロイ アーキタイプ

Last reviewed 2023-11-03 UTC

クラウド アーキテクトまたは意思決定者として、Google Cloud にアプリケーションをデプロイする場合は、デプロイ アーキタイプ1を選択する必要があります。このガイドでは、6 つのデプロイ アーキタイプ(ゾーン、リージョン、マルチリージョン、グローバル、ハイブリッド、マルチクラウド)、各デプロイ アーキタイプのユースケースと設計上の考慮事項について説明します。また、それぞれのタイプを比較して、可用性、費用、パフォーマンス、運用効率の要件を満たすデプロイ アーキタイプを選択する際に役立つ情報を提供します。

デプロイ アーキタイプとは

デプロイ アーキタイプは、プロバイダに依存しない抽象化されたモデルです。これを基盤として使用することにより、ビジネス要件と技術要件を満たすアプリケーション固有のデプロイ アーキテクチャを構築できます。各デプロイ アーキタイプは、アプリケーションを実行できる障害発生ドメインの組み合わせを表します。これらの障害発生ドメインは 1 つ以上の Google Cloud ゾーンまたはリージョンにすることができます。また、オンプレミス データセンターや他の障害発生ドメインが含まれるように拡張することもできます。

次の図は、Google Cloud にデプロイされた 6 つのアプリケーションを示しています。各アプリケーションは、特定の要件を満たすデプロイ アーキタイプを使用します。

異なるデプロイ アーキタイプを使用してデプロイされた Google Cloud のアプリケーション

上の図に示すように、ハイブリッドまたはマルチクラウドのデプロイ アーキタイプを使用するアーキテクチャは、クラウド トポロジはゾーン、リージョン、マルチリージョン、またはグローバルの基本アーキタイプのいずれかをベースにしています。この意味で、ハイブリッド デプロイとマルチクラウド デプロイ アーキタイプは、基本的なアーキタイプの一つを含む複合型のデプロイ アーキタイプと考えることができます。

デプロイ アーキタイプを選択すると、使用すべき Google Cloud プロダクトと機能に関するその後の決定を簡単に行うことができます。たとえば、高可用性のコンテナ化されたアプリケーションで、リージョン デプロイ アーキタイプを選択した場合は、ゾーン GKE クラスタよりもリージョン Google Kubernetes Engine(GKE)クラスタのほうが適切な選択肢となります。

アプリケーションのデプロイ アーキタイプは、可用性、費用、運用の複雑さなどのトレードオフを考慮して選択する必要があります。たとえば、アプリケーションが複数の国のユーザーにサービスを提供し、かつ高可用性が求められる場合は、マルチリージョン デプロイ アーキタイプを選択します。一方、単一リージョンの従業員が使用する内部アプリケーションの場合は、可用性よりもコストを優先し、リージョン デプロイ アーキタイプを選択したほうがかもしれません。

デプロイ アーキタイプの概要

以下のタブでは、各デプロイ アーキタイプの定義と、ユースケースの概要および設計上の考慮事項について説明します。

ゾーン

次の図に示すように、アプリケーションは単一の Google Cloud ゾーン内で実行されます。

ゾーン デプロイ アーキタイプ
ユースケース
  • 開発環境とテスト環境。
  • 高可用性を必要としないアプリケーション。
  • アプリケーション コンポーネント間の低レイテンシのネットワーキング。
  • コモディティ ワークロードの移行。
  • ライセンス制限付きソフトウェアを使用するアプリケーション。
設計上の考慮事項
  • ゾーン停止中のダウンタイム。

    ビジネスの継続性のために、アプリケーションのパッシブ レプリカを同じリージョン内の別のゾーンにプロビジョニングできます。ゾーンが停止した場合は、パッシブ レプリカを使用してアプリケーションを本番環境に復元できます。

詳細

次のセクションをご覧ください。

リージョン

次の図に示すように、アプリケーションは単一の Google Cloud リージョン内の複数のゾーンで独立して実行されます。

リージョン デプロイ アーキタイプ
ユースケース
  • 地域内でユーザーにサービスを提供する高可用性アプリケーション。
  • データ所在地と主権の要件の遵守
設計上の考慮事項
  • リージョン停止中のダウンタイム。

    ビジネスの継続性のために、アプリケーションとデータを別のリージョンにバックアップできます。リージョンが停止した場合は、他のリージョンのバックアップを使用して、アプリケーションを本番環境に復元できます。

  • 冗長リソースのプロビジョニングや管理にかかる費用と労力。
詳細

次のセクションをご覧ください。

マルチリージョン

アプリケーションは、2 つ以上の Google Cloud リージョンの複数のゾーンで独立して実行されます。DNS ルーティング ポリシーを使用して、受信トラフィックをリージョン ロードバランサにルーティングできます。次の図に示すように、リージョン ロードバランサは、トラフィックをアプリケーションのゾーンのレプリカに分散します。

マルチリージョン デプロイ アーキタイプ
ユースケース
  • 地理的に分散したユーザーが使用する高可用性アプリケーション。
  • エンドユーザーの低レイテンシ エクスペリエンスを必要とするアプリケーション。
  • ジオフェンス DNS ルーティング ポリシーによるデータ所在地と主権の要件の遵守。
設計上の考慮事項
  • クロスリージョンのデータ転送とデータ レプリケーションのコスト。
  • 運用の複雑さ。
詳細

次のセクションをご覧ください。

グローバル

アプリケーションは、グローバルに分散された(ロケーション非認識の)スタックまたはリージョンに分離されたスタックとして、世界中の Google Cloud リージョンで実行されます。グローバル エニーキャスト ロードバランサが、ユーザーに最も近いリージョンにトラフィックを割り当てます。アプリケーション スタックの他のコンポーネント(データベース、キャッシュ、オブジェクト ストアなど)もグローバルにできます。

次の図は、グローバル デプロイ アーキタイプの、グローバルに分散されたバリアントを示しています。グローバル エニーキャスト ロードバランサは、複数のリージョンに分散され、グローバルに複製されたデータベースを使用するアプリケーション スタックにリクエストを転送します。

グローバル デプロイ アーキタイプ: グローバルに分散されたスタック

次の図は、リージョンに分離されたアプリケーション スタックでのグローバル デプロイ アーキタイプのバリアントを示しています。グローバル エニーキャスト ロードバランサは、いずれかのリージョンのアプリケーション スタックにリクエストを転送します。すべてのアプリケーション スタックは、グローバルに複製された単一のデータベースを使用します。

グローバル デプロイ アーキタイプ: リージョンに分離されたスタック
ユースケース
  • グローバルに分散したユーザーにサービスを提供する高可用性アプリケーション。
  • リージョン リソースの複数のインスタンスではなく、グローバル リソースを使用することで、費用の最適化と運用の簡素化を実現する機会が得られます。
設計上の考慮事項 クロスリージョンのデータ転送とデータ レプリケーションのコスト。
詳細

次のセクションをご覧ください。

ハイブリッド

次の図に示すように、アプリケーションの特定の部分は Google Cloud にデプロイされ、他の部分はオンプレミスで実行されます。Google Cloud のトポロジでは、ゾーン、リージョン、マルチリージョン、またはグローバルのデプロイ アーキタイプを使用できます。

ハイブリッド デプロイ アーキタイプ
ユースケース
  • オンプレミス ワークロードの障害復旧(DR)サイト。
  • クラウド アプリケーションのオンプレミス開発。
  • レガシー アプリケーションのクラウドへの段階的移行。
  • クラウド機能によるオンプレミス アプリケーションの機能強化。
設計上の考慮事項
  • セットアップの労力と運用の複雑さ。
  • 冗長リソースのコスト。
詳細

次のセクションをご覧ください。

マルチクラウド

次の図に示すように、アプリケーションの一部は Google Cloud にデプロイされ、他の部分は他のクラウド プラットフォームにデプロイされます。各クラウド プラットフォームのトポロジは、ゾーン、リージョン、マルチリージョン、グローバルのデプロイ アーキタイプを使用できます。

マルチクラウド デプロイ アーキタイプ
ユースケース
  • Google Cloud をプライマリ サイトに、別のクラウドを DR サイトに。
  • Google Cloud の高度な機能によるアプリケーションの機能強化
設計上の考慮事項
  • セットアップの労力と運用の複雑さ。
  • 冗長リソースとクロスクラウド ネットワーク トラフィックの費用
詳細

次のセクションをご覧ください。

協力者

著者: Kumar Dhanagopal | クロスプロダクト ソリューション デベロッパー

その他の関係者:


  1. Anna Berenberg and Brad Calder, Deployment Archetypes for Cloud Applications, ACM Computing Surveys, Volume 55, Issue 3, Article No.: 61, pp 1-48