このガイドでは、3 階層ウェブアプリ アプリケーション テンプレートについて説明します。このテンプレートを使用すると、3 階層ウェブ アプリケーション スタックをGoogle Cloudにすばやくデプロイできます。
3 階層ウェブアプリには次のものが含まれます。
- 次の処理を行うオプションのロードバランサ:
- 受信トラフィック。
- フロントエンド サービスへのトラフィック分散。
- サーバーレス サービスとしてデプロイされるコンテナ化されたアプリ:
- ウェブベースのフロントエンド。
- 中間層の API レイヤ。
- SQL データベース バックエンド。
- 頻繁にアクセスされるデータを提供するインメモリ キャッシュ。
使用するプロダクト
このアプリケーションには、次の Google Cloud プロダクトが含まれています。
- Cloud Load Balancing(省略可): Google Cloudで高パフォーマンスでスケーラブルなロード バランシングを行うサービス。
- Cloud Run: サーバーレスのコンテナ化アプリを構築してデプロイできるフルマネージド サービス。Google Cloud がスケーリングなどのインフラストラクチャ タスクを処理するので、コードのビジネス ロジックに集中できます。
- Cloud SQL: Google Cloudのフルマネージド PostgreSQL データベース。これにより、データベース管理タスクから解放され、データの管理により多くの時間をかけることができます。
- Memorystore for Redis: スケーラブルで優れた安全性と高可用性を備えたインメモリ サービスを使用して、Redis 用のアプリケーション キャッシュを提供するサービス。これにより、アクセス頻度の高いデータに対して低レイテンシ アクセスと高スループットを実現できます。
アーキテクチャ
次の図は、アプリケーションのコンポーネントと接続を示しています。
アプリケーションのリクエスト処理フローは次のとおりです。
- Cloud Load Balancing フロントエンドは外部リクエストを受信し、Cloud Load Balancing バックエンドにトラフィックを分散します。
- Cloud Load Balancing バックエンドは、トラフィックを Cloud Run サービスに分散します。
- ウェブベースの Cloud Run フロントエンド サービスは、ユーザーのブラウザに HTML クライアントを表示します。
- フロントエンド サービスは、同じく Cloud Run サービスとしてデプロイされている API レイヤにリクエストを送信します。
- Memorystore for Redis は、頻繁に読み取られるデータをキャッシュに保存して提供します。
- API レイヤは、インメモリの Redis キャッシュから提供できないリクエストを Cloud SQL データベースに送信します。
次のステップ
- 他の Google 提供のテンプレートを見つけて使用する方法をご確認ください。
- 特定のニーズに合わせてテンプレートをカスタマイズする方法を理解する。
- Google Cloud アーキテクチャ フレームワークで一般的なアーキテクチャのベスト プラクティスを確認する。