クラウド アーキテクトまたは意思決定者として、Google Cloud にアプリケーションをデプロイする場合は、デプロイ アーキタイプ1を選択する必要があります。このガイドでは、6 つのデプロイ アーキタイプ(ゾーン、リージョン、マルチリージョン、グローバル、ハイブリッド、マルチクラウド)、各デプロイ アーキタイプのユースケースと設計上の考慮事項について説明します。また、それぞれのタイプを比較して、可用性、費用、パフォーマンス、運用効率の要件を満たすデプロイ アーキタイプを選択する際に役立つ情報を提供します。
デプロイ アーキタイプとは
デプロイ アーキタイプは、プロバイダに依存しない抽象化されたモデルです。これを基盤として使用することにより、ビジネス要件と技術要件を満たすアプリケーション固有のデプロイ アーキテクチャを構築できます。各デプロイ アーキタイプは、アプリケーションを実行できる障害発生ドメインの組み合わせを表します。これらの障害発生ドメインは 1 つ以上の Google Cloud ゾーンまたはリージョンにすることができます。また、オンプレミス データセンターや他の障害発生ドメインが含まれるように拡張することもできます。
次の図は、Google Cloud にデプロイされた 6 つのアプリケーションを示しています。各アプリケーションは、特定の要件を満たすデプロイ アーキタイプを使用します。
上の図に示すように、ハイブリッドまたはマルチクラウドのデプロイ アーキタイプを使用するアーキテクチャは、クラウド トポロジはゾーン、リージョン、マルチリージョン、またはグローバルの基本アーキタイプのいずれかをベースにしています。この意味で、ハイブリッド デプロイとマルチクラウド デプロイ アーキタイプは、基本的なアーキタイプの一つを含む複合型のデプロイ アーキタイプと考えることができます。
デプロイ アーキタイプを選択すると、使用すべき Google Cloud プロダクトと機能に関するその後の決定を簡単に行うことができます。たとえば、高可用性のコンテナ化されたアプリケーションで、リージョン デプロイ アーキタイプを選択した場合は、ゾーン GKE クラスタよりもリージョン Google Kubernetes Engine(GKE)クラスタのほうが適切な選択肢となります。
アプリケーションのデプロイ アーキタイプは、可用性、費用、運用の複雑さなどのトレードオフを考慮して選択する必要があります。たとえば、アプリケーションが複数の国のユーザーにサービスを提供し、かつ高可用性が求められる場合は、マルチリージョン デプロイ アーキタイプを選択します。一方、単一リージョンの従業員が使用する内部アプリケーションの場合は、可用性よりもコストを優先し、リージョン デプロイ アーキタイプを選択したほうがかもしれません。
デプロイ アーキタイプの概要
以下のタブでは、各デプロイ アーキタイプの定義と、ユースケースの概要および設計上の考慮事項について説明します。
ゾーン
次の図に示すように、アプリケーションは単一の Google Cloud ゾーン内で実行されます。
ユースケース |
|
---|---|
設計上の考慮事項 |
|
詳細 | 次のセクションをご覧ください。 |
リージョン
次の図に示すように、アプリケーションは単一の Google Cloud リージョン内の複数のゾーンで独立して実行されます。
ユースケース |
|
---|---|
設計上の考慮事項 |
|
詳細 | 次のセクションをご覧ください。 |
マルチリージョン
アプリケーションは、2 つ以上の Google Cloud リージョンの複数のゾーンで独立して実行されます。DNS ルーティング ポリシーを使用して、受信トラフィックをリージョン ロードバランサにルーティングできます。次の図に示すように、リージョン ロードバランサは、トラフィックをアプリケーションのゾーンのレプリカに分散します。
ユースケース |
|
---|---|
設計上の考慮事項 |
|
詳細 | 次のセクションをご覧ください。 |
グローバル
アプリケーションは、グローバルに分散された(ロケーション非認識の)スタックまたはリージョンに分離されたスタックとして、世界中の Google Cloud リージョンで実行されます。グローバル エニーキャスト ロードバランサが、ユーザーに最も近いリージョンにトラフィックを割り当てます。アプリケーション スタックの他のコンポーネント(データベース、キャッシュ、オブジェクト ストアなど)もグローバルにできます。
次の図は、グローバル デプロイ アーキタイプの、グローバルに分散されたバリアントを示しています。グローバル エニーキャスト ロードバランサは、複数のリージョンに分散され、グローバルに複製されたデータベースを使用するアプリケーション スタックにリクエストを転送します。
次の図は、リージョンに分離されたアプリケーション スタックでのグローバル デプロイ アーキタイプのバリアントを示しています。グローバル エニーキャスト ロードバランサは、いずれかのリージョンのアプリケーション スタックにリクエストを転送します。すべてのアプリケーション スタックは、グローバルに複製された単一のデータベースを使用します。
ユースケース |
|
---|---|
設計上の考慮事項 | クロスリージョンのデータ転送とデータ レプリケーションのコスト。 |
詳細 | 次のセクションをご覧ください。 |
ハイブリッド
次の図に示すように、アプリケーションの特定の部分は Google Cloud にデプロイされ、他の部分はオンプレミスで実行されます。Google Cloud のトポロジでは、ゾーン、リージョン、マルチリージョン、またはグローバルのデプロイ アーキタイプを使用できます。
ユースケース |
|
---|---|
設計上の考慮事項 |
|
詳細 | 次のセクションをご覧ください。 |
マルチクラウド
次の図に示すように、アプリケーションの一部は Google Cloud にデプロイされ、他の部分は他のクラウド プラットフォームにデプロイされます。各クラウド プラットフォームのトポロジは、ゾーン、リージョン、マルチリージョン、グローバルのデプロイ アーキタイプを使用できます。
ユースケース |
|
---|---|
設計上の考慮事項 |
|
詳細 | 次のセクションをご覧ください。 |
協力者
著者: Kumar Dhanagopal | クロスプロダクト ソリューション デベロッパー
その他の関係者:
- Anna Berenberg | エンジニアリング フェロー
- Anshu Kak | 上級エンジニア
- Jeff Welsch | プロダクト管理担当ディレクター
- Marwan Al Shawi | パートナー カスタマー エンジニア
- Sekou Page | アウトバウンド プロダクト マネージャー
- Steve McGhee | 信頼性アドボケイト
- Victor Moreno | プロダクト マネージャー、クラウド ネットワーキング
-
Anna Berenberg and Brad Calder, Deployment Archetypes for Cloud Applications, ACM Computing Surveys, Volume 55, Issue 3, Article No.: 61, pp 1-48 ↩