3 階層ウェブアプリ テンプレート

このガイドでは、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 用のアプリケーション キャッシュを提供するサービス。これにより、アクセス頻度の高いデータに対して低レイテンシ アクセスと高スループットを実現できます。

アーキテクチャ

次の図は、アプリケーションのコンポーネントと接続を示しています。

デザイン キャンバスに表示された 3 層ウェブ アプリケーション。このアプリケーションには、フロントエンド、バックエンド、データベースのコンポーネントが含まれています。

アプリケーションのリクエスト処理フローは次のとおりです。

  1. Cloud Load Balancing フロントエンドは外部リクエストを受信し、Cloud Load Balancing バックエンドにトラフィックを分散します。
  2. Cloud Load Balancing バックエンドは、トラフィックを Cloud Run サービスに分散します。
  3. ウェブベースの Cloud Run フロントエンド サービスは、ユーザーのブラウザに HTML クライアントを表示します。
  4. フロントエンド サービスは、同じく Cloud Run サービスとしてデプロイされている API レイヤにリクエストを送信します。
  5. Memorystore for Redis は、頻繁に読み取られるデータをキャッシュに保存して提供します。
  6. API レイヤは、インメモリの Redis キャッシュから提供できないリクエストを Cloud SQL データベースに送信します。

次のステップ