Google Cloud でのアプリのホスティング

Google Cloud は、アプリケーションのホスティングのための幅広いオプションを提供しています。以下の表で、お客様のニーズに合ったオプションをご確認ください。


ユースケース

何から始めたらよいか、お困りの場合、以下の一般的なシナリオをご確認ください。
HTTP サービスとバックエンド アプリ
ウェブ フレームワーク、マイクロサービス
例:
  • Flask
  • Django
  • Express.js
  • Symfony
  • Spring Boot
App Engine スタンダード環境
  • 需要の急増に対応するスケール
  • 従量課金制
  • API エンドポイントをサポート
スケーラビリティを向上 ドキュメント
イベント ドリブンなアプリおよびデータ処理アプリ
ユーザーが生成したデータとイベントの操作
例:
  • GitHub コミットに応答して Slack チャネルにコメントを投稿
  • 統計分析
  • 画像サムネイルの生成
Cloud Functions
  • イベント ドリブンなワークロード向けに設計
  • 需要の急増に対応するスケール
  • 構成を最小限にしたい
Google Cloud Functions クイックスタート
コンテナベースのアプリとサービス
マルチクラウド インフラストラクチャの業界標準パッケージ
例:
  • Rust、Kotlin、C++、Bash などのカスタムのランタイム環境
  • Python 2.7、Java 7 などの言語を使用した従来のウェブアプリ
Cloud Runβ
  • 業界標準の Docker コンテナをサポート
  • コンテナ化されたアプリを自動的にスケーリング
  • カスタムのバイナリとシステムの依存関係
  • API エンドポイントをサポート
Cloud Run クイックスタート
オンプレミスおよびモノリシック ワークロード
既存のインフラストラクチャ要件を満たす素のコンピューティング
例:
  • リレーショナル データベース、SAP HANA
  • CRM システム
  • レガシー ERP システム
Compute Engine
Google Compute Engine チュートリアル
セルフホスト型のスケーラブルなインフラストラクチャ
サーバーレスのスケーラビリティを備えたセルフマネージド ホスティング
例:
  • カスタム ハードウェアおよびソフトウェア(OS、GPU)を必要とするコンテナ化されたアプリ
  • 既存のコンテナ化されたステートレス アプリ
  • ゼロ状態へのスケーリングのメリットを持つ Kubernetes Engine 上のアプリ
Cloud Run on GKEβ
  • 業界標準の Docker コンテナ パッケージ
  • 従来のワークロードと構成に合わせて高度に構成可能
  • 需要の増減に応じてスケーリング
Cloud Run on GKE クイックスタート
β
ベータ版ソフトウェアには SLA がないため、本番環境のワークロードには適さない場合があります。

ホスティング オプション

多くのワークロードには固有の技術上の要件があります。プラットフォームの順序は抽象度順です。
Compute Engine Kubernetes Engine(GKE) Cloud Run on GKEβ Cloud Runβ App Engine フレキシブル環境 App Engine スタンダード環境 Cloud Functions
デプロイ形式
VM イメージ
クラスタ
コンテナ
コンテナ

アプリ

または

コンテナ

アプリ
関数
カスタム URL
ゼロ状態にスケーリング
~
1
無料枠
永続ディスク
2
WebSocket
~
3
β
あらゆる言語で実行
リクエストのタイムアウト
なし
なし
15 分
15 分
60 分
1 分
9 分
バックグラウンド プロセス
~
4
TPU / GPU アクセス
~
3
VPC 接続
β
β
1
Cloud Run on GKEβ は、ポット数をゼロにスケーリングします。クラスタごとのノードの数はゼロにスケーリングできないので、このようなノードはリクエストがない期間も課金対象となります。
2
GKE 上のコンテナ インスタンスは、シャットダウン時にデータを保持しません。 ただし、Compute Engine の永続ディスクは GKE 上のコンテナ インスタンスにマウントできます。
3
Cloud Run on GKE では、WebSocket の使用と TPU / GPU アクセスは技術的に可能ですが、公式にはサポートされていません
4
App Engine のスタンダード環境では、基本および手動のスケーリング モードのバックグラウンド タスクがサポートされています。
β
ベータ版ソフトウェアには SLA がないため、本番環境のワークロードには適さない場合があります。

主な用語

デプロイ形式

特定のプラットフォームへの展開時にコードはどのようにパッケージ化されますか?

  • VM イメージ - 基盤となる OS を含むファイル システム全体のスナップショット。
  • コンテナ - 基盤となる OS から分離されたポータブルのクロス プラットフォームのファイル システム。
  • アプリ - 1 つ以上のユースケースがある、ディレクトリ内の 1 つのサービス。
  • Functions - 単一のユースケースにそれぞれ対応する個々のコード スニペット。

カスタム URL

マルチレイヤの URL パス(/abc/def など)の作成や、独自のドメイン名の使用は可能ですか?

永続ディスク

インスタンスのシャットダウン時にディスクの状態を保存できますか?またはインスタンス外に長期データを保存する必要がありますか?

ゼロ状態にスケーリング

このプロダクトではゼロ個のインスタンスにスケーリングして、リクエストがない期間に料金が発生しないようにできますか?

WebSocket

このプロダクトは WebSocket プロトコルをサポートしていますか?

あらゆる言語で実行

このプロダクトは、任意のプログラミング言語でコードを実行できますか?

リクエストのタイムアウト

プラットフォームがアプリケーションのコードからの応答を待つ最長時間はどれくらいですか?

バックグラウンド プロセス

このプロダクトは、リクエスト期間外に進行中のバックグラウンド操作を実行できますか?

GPU と TPU の使用

このプロダクトは、GPU/TPU 向けに最適化されたワークロードのハードウェア アクセラレーションをサポートしていますか?

VPC 接続

このプロダクトは Virtual Private Cloud 内のリソースにアクセスできますか?