GKE と Cloud Run の違いとは?サービス選定時のポイントをわかりやすく解説!

GKE と Cloud Run の違いとは?サービス選定時のポイントをわかりやすく解説!

Cloud BuildCloud Run技術ブログ

GKE と Cloud Run の違いとは?サービス選定時のポイントをわかりやすく解説!

Google Kubernetes Engine ( GKE )と Cloud Run 。どちらも Google Cloud の一機能として提供されており、コンテナ運用を効率化できるサービスとなっています。

両者は「コンテナを扱う」という点においては共通していますが、実は様々な違いが存在することをご存知でしょうか?本記事では、 Google Kubernetes Engine ( GKE )と Cloud Run の概要や違い、具体的なサービスの選び方など、あらゆる観点から一挙にご紹介します。

まずは、 Google Kubernetes Engine ( GKE )の概要についてご説明しますが、その前に Kubernetes (読み方:「クーベネティス」または「クバネティス」)という言葉を理解する必要があります。

Kubernetes とは、コンテナの運用管理や自動化を行うための OSS ( Open Source Software :誰でも自由に取得・利用できる一般公開されたソフトウェア)を意味する言葉であり、一般的には「コンテナオーケストレーションツール」と呼ばれています。

なお、コンテナとは、アプリケーションを動作させるために必要なものを一つにまとめた仕組みであり、オーケストレーションツールとは、システム・サービスなどの構築や運用管理を自動化するためのツールを意味する言葉です。

そして、 GKE は Kubernetes 運用を効率化できるコンテナオーケストレーションツールの一種です。マネージドサービスとして提供されており、インフラ部分の保守・運用は Google が対応するため、自社の負荷軽減に繋がります。また、障害などのトラブルが発生した場合でも、 Google のエンジニアが全面的に対応してくれるので、ビジネスシーンにおいても安心して利用できます。

さらに、 GKE には使いやすいコンソール(管理画面)が搭載されており、これを使うことでクラスターを簡単に構築できます。加えて、負荷に応じてノードを自動的にスケーリングしたり、 Google Cloud のアカウントと連携して権限制御をしたりするなど、ビジネスシーンで便利に使える機能が多数備わっています。

そのほかにも、トラフィックの負荷分散やロギング・モニタリング(機器・アプリケーションの動作状況をデータで見える化し、ストレージへ保存する機能)など、多種多彩な機能が搭載されています。 Cloud Build や他の CI / CD ツールとも統合可能であり、自動化されたビルドやテスト、デプロイメントプロセスなどをサポートしている点も大きな特徴です。

このように、 GKE は Kubernetes の運用を効率化し、自社の負荷軽減や生産性向上を実現できる高性能なコンテナプラットフォームであると言えるでしょう。

次に、 Cloud Run の概要を見ていきましょう。

Cloud Run は Google Kubernetes Engine ( GKE )と同様にコンテナ運用を効率化できるツールであり、フルマネージドで提供されているコンテナの実行環境です。構築したコンテナイメージを Cloud Run に乗せることで、 Kubernetes によって処理できる様々な機能を手間なく実現できます。

本来、アプリケーションを実行するためには、アプリケーション本体や設定ファイル、ライブラリなど、様々なものを組み合わせて使う必要があります。しかし、 Cloud Run はこれらをコンテナ上に集約し、ひとまとめにしてコンテナベースでアプリケーションを動かせるため、アプリケーションの実行にかかる作業負荷を大幅に低減できます。

また、 Cloud Run は外部からのアクセスがない状態ではコンテナのインスタンスが 0 になり、アクセスの発生に伴って必要量までスケールする仕組みを採用しています。そのため、手動でリソースを調整する必要がなく、高速なスケーリングを実現できます。さらに、他の Google Cloud サービスと同様、強固なインフラをベースとして設計されているため、低レイテンシーな環境でコンテナを扱える点も大きなメリットです。

加えて、 Cloud Run のデプロイはとてもシンプルな仕組みを採用しており、「 gcloud run deploy 」などの単一コマンドを実行するだけで簡単にデプロイできます。コマンドでデプロイを行った後は固有の URL が自動発行されるため、外部へのアプリケーション公開も容易に行うことが可能です。それ以外にも、過去のバージョンへ簡単にロールバックできるなど、 Cloud Run は様々なシーンにおいて自社の生産性向上をサポートしてくれます。

このように、 Cloud Run はコンテナを効率的に運用するための強力なソリューションであり、実際に多くの企業が Cloud Run を活用して自社の業務効率化やビジネス成長に繋げています。

なお、 Cloud Run には 「 Cloud Run for Anthos 」というサービスが用意されており、これを活用することで、コンテナの環境をサーバーレス環境として使えるため、よりシンプルに Kubernetes のコンテナ環境を利用できます。 Anthos とは Google Cloud に搭載されているプラットフォームであり、アプリケーションを手間なくモダナイズできるサービスです。

Cloud Run for Anthos を活用することで

  • マルチクラウド環境での Cloud Run の利用
  • オンプレミス環境での Cloud Run の利用
  • 既存の Kubernetes クラスタで Cloud Run の利用
  • 複数リージョンの Cloud Run クラスタの管理


が可能となります。

ここまで、 Google Kubernetes Engine ( GKE )と Cloud Run のそれぞれの概要についてご説明しました。それでは、両者には具体的にどのような違いがあるのでしょうか?

本章では、 GKE と Cloud Run の違いをカテゴリー別に解説します。

管理レベル

管理レベルの観点で言えば、

  • Google Kubernetes Engine ( GKE ):マネージドサービス
  • Cloud Run :フルマネージドサービス

という違いがあります。

どちらもマネージドで提供されているため、自社の工数を削減しながらコンテナ運用を効率化することが可能ですが、サーバー管理の大部分を Google に任せたいのであれば、フルマネージドサービスである Cloud Run を選択するとよいでしょう。

スケーリング

Google Kubernetes Engine ( GKE )と Cloud Run は、スケーリングの面で若干の違いが存在します。例えば、 Cloud Run は外部からのアクセスがない状態ではコンテナのインスタンスが 0 になり、アクセスの発生に伴って必要量までスケールする仕組みを採用しています。GKE では CPU の使用率やカスタム指標に合わせて実行される「水平 Pod 自動スケーリング」を採用しています。

このように、両者とも自動スケーリングを実現できる点は共通していますが、その仕組みに違いが存在することは覚えておきましょう。

アプリケーションの種類

Google Kubernetes Engine ( GKE )と Cloud Run は、サポートしているアプリケーションの種類が異なります。 Cloud Run はステートレスなアプリケーションだけをサポートしているのに対して、 GKE はステートフルなアプリケーションもサポート対象となっています。

なお、ステートレスは「以前の状態を保持せずに処理を都度要求する」ことを意味しており、いつ誰が開いても同じ内容を表示する Web サイトなどが該当します。

一方、ステートフルは「以前の状態を保持して以降の処理に利用できる」ことを表す言葉であり、カート情報を保存している EC サイトなどが該当します。

アーキテクチャや技術基盤

Google Kubernetes Engine ( GKE )と Cloud Run は、どちらもコンテナ運用を効率化するためのサービスですが、採用しているアーキテクチャや技術基盤はそれぞれ異なります。例えば、 Cloud Run は「 Cloud Run サービス」と「 Cloud Run ジョブ」という仕組みを使ってコードを実行しますが、 GKE は「 GKE Standard 」と「 GKE Autopilot 」という 2 つのモードから好きな方を選択できるアーキテクチャを採用しています。

自社で Google Cloud を導入し、コンテナ運用を効率化したいと考えている場合、 Google Kubernetes Engine ( GKE )と Cloud Run のどちらを選択すべきか、迷ってしまう方も多いと思います。

そこで本章では、どのような場合にどちらのサービスを選択すべきなのか、重要なポイントをわかりやすく解説します。

Google Kubernetes Engine ( GKE )がおすすめなケース

以下に該当する場合は Google Kubernetes Engine ( GKE )がおすすめの選択肢になります。

  • Kubernetes の機能をフル活用したい
  • ステートフルなアプリケーションをデプロイしたい
  • 細かいカスタマイズを行いたい

GKE は Kubernetes 運用の効率化に特化したサービスであるため、工数をかけずに Kubernetes をフル活用したい場合は GKE が有効です。また、 Cloud Run はステートフルなアプリケーションをサポートしていないため、ステートフルなアプリケーションをデプロイしたいのであれば、 GKE を選択する必要があります。

さらに、 GKE は Cloud Run と比較してカスタマイズ性に優れており、より柔軟なコンテナ運用を実現できます。このように、 GKE には様々なユースケースが存在するため、自社の状況に合わせて利用を検討するとよいでしょう。

Cloud Run がおすすめなケース

以下に該当する場合は Cloud Run がおすすめの選択肢になります。

  • 開発に集中したい
  • ステートレスなアプリケーションを高速デプロイしたい
  • トラフィック予測が難しい

Cloud Run は単一コマンドの実行だけで簡単にデプロイできるため、自社の作業工数を削減し、開発に集中するための環境を構築できます。また、ステートフルなアプリケーションを扱うことはできませんが、ステートレスなアプリケーションを迅速にデプロイしたい場合は、 Cloud Run が有効なサービスだと言えます。

さらに、外部からのアクセスがない時はコンテナのインスタンスが 0 になり、アクセスの発生に伴い必要量までスケールするため、トラフィック予測が難しいシーンでも安心して利用できます。このように、 Cloud Run はサービス特性に応じた様々な利用シーンが考えられます。

Google Kubernetes Engine ( GKE )と Cloud Run はどちらもコンテナ運用を効率化するためのサービスですが、特徴やメリットはそれぞれ異なるため、両者の違いを理解し、状況に合わせて使い分けることが重要なポイントになります。

次に、 Google Kubernetes Engine ( GKE )と Cloud Run のコスト比較についてご説明します。

どちらも使用量に応じて料金が変動する従量課金制を採用しており、使った分だけ課金が発生する仕組みとなっています。そのため、自社の予算に合わせて、計画的にサービスを利用することが大切です。

GKE の場合、エディションや運用モード、受信データ転送料金などの要素をもとに利用料金が決定され、使用するサービスや運用モードによって異なる料金体系が用意されています。

サービスエディション / モード1 時間あたりの料金
KubernetesEnterprise エディション0.0083 米ドル / vCPU
Standard エディション0.1000 米ドル / クラスタ
コンピューティングAutopilot モードPod にプロビジョニングされた CPU 、メモリ、コンピューティングの各リソースに応じて課金
Standard モードCompute Engine の料金設定に沿ってインスタンスごとに課金

※ 2024 年 4 月時点の内容

※参照元:Google 公式サイト「 GKE の料金の仕組み

一方、 Cloud Run は CPU の割り当て方法に応じて 2 つの料金体系が存在しますが、 CPU をリクエスト処理中のみ割り当てる場合は、 CPU やメモリ、リクエストの使用量に合わせて料金が変動します。

CPUメモリリクエスト
無料枠毎月 180,000 vCPU 秒まで毎月 360,000 GiB 秒まで1 ヶ月あたり 200 万件まで
通常料金0.00002400 米ドル / vCPU 秒0.000002500 米ドル / GiB 秒100 万件あたり 0.400 米ドル
確約利用割引適用の料金0.00001992 米ドル / vCPU 秒0.000002075 米ドル / GiB 秒100 万件あたり 0.332米ドル

※参照元: Google 公式サイト「 Cloud Run の料金」( 2024 年 4 月時点)

なお、 CPU を常に割り当てる場合には、リクエスト処理による料金変動はなく、 CPU やメモリの使用料のみで金額が決まります。

CPUメモリリクエスト
無料枠毎月 240,000 vCPU 秒まで毎月 450,000 GiB 秒まで-
通常料金0.00001800 米ドル / vCPU 秒0.00000200 米ドル / GiB 秒-
確約利用割引適用の料金0.00001494 米ドル / vCPU 秒0.00000166 米ドル / GiB 秒-

※参照元: Google 公式サイト「 Cloud Run の料金」( 2024 年 4 月時点)

このように、 GKE と Cloud Run は異なる料金体系を採用しており、一概に比較することは難しいと言えます。それぞれの違いを理解し、自社にとって最適なものを選択するように意識してください。

なお、 Google 公式サイトには Google Cloud の料金計算ツールが用意されています。サービス名や使用量を入力するだけで、発生コストを事前にシミュレーションできるため、費用が心配な方は積極的に活用するとよいでしょう。

スマホ向けゲームを開発している Colorful Palette では「プロジェクトセカイ カラフルステージ! feat. 初音ミク」というゲームの作品体験を高めるために GKE を活用しています。

同ゲームでは、人気バーチャルシンガーの音楽ライブに観客として参加できる「バーチャルライブ」が大きな目玉の一つでしたが、これを実現するためには、複数人が同時にライブへアクセスし、リアルタイムにやりとりするための盤石なエンジンが必要不可欠です。

従来、 Colorful Palette は一般的な SaaS 型のリアルタイム通信エンジンを採用していましたが、ゲームリリース直後のライブイベントが成功したことで、既存のエンジンではすぐに限界を迎えてしまうと確信します。そこで、より高性能なリアルタイム通信エンジンを求めて、 Diarkis (リアルタイムサーバーを実現させるためのフレームワークエンジン)を導入し、それを動かすための基盤として GKE を採用したのです。

GKE を活用することで、クラスタ内で実行される多くの Pod がそれぞれ密接に通信を行い、リアルタイムかつ安定した通信を実現できるようになりました。その結果、 10 万ユーザーの同時接続にも耐えられる環境を構築でき、数々の大規模イベントを成功に導いています。

主に時計事業を展開するセイコーホールディングスのシステムソリューション事業を担っている「セイコーソリューションズ」では、 Cloud Run を活用してクラウド辞書サービスの開発に Cloud Run を活用しています。

同社のマーケティングの結果、サービスの潜在顧客は 300 万人にも上ることが判明し、利用者が爆発的な増加に耐えうるだけのインフラ整備が大きな課題となっていました。そこで、サービス規模の拡大にも柔軟に対応できるよう、サーバーレスで運用できる Cloud Run の導入を決めたのです。

同社は Cloud Run でコンテナ運用を効率化しつつ、 Cloud Datastore や Cloud SQL をはじめとした、他の Google Cloud サービスも組み合わせて利用しています。表示部分を担うフロントエンドと機能部分を担うバックエンドを分割し、マイクロサービス化の工夫を施すことで、サービス拡大後のコスト低減や信頼性の向上、メンテナンス工数の削減などを担保する狙いです。

また、同社はクラウド辞書サービスにおける検索のレスポンスを重視しており、高速レスポンスを実現できる点も Google Cloud の導入を決めた一因となっています。このように、 Cloud Run や Google Cloud の各種サービスを活用し、自社のビジネス成長に繋げている好事例だと言えるでしょう。

本記事では、 Google Kubernetes Engine ( GKE )と Cloud Run の概要や違い、具体的なサービスの選び方など、あらゆる観点から一挙にご紹介しました。

企業が GKE や Cloud Run を活用することで、コンテナ運用の効率化に繋がり、自社の業務効率化や生産性向上を実現できます。コンテナを手間なく運用したいのであれば、これらが有効なソリューションになると言えるでしょう。

また、 GKE と Cloud Run は混同しやすいサービスですが、それぞれ異なる特徴・メリットを持っているため、自社の状況に合わせて使い分けることが大切です。この記事を読み返して、両者の違いを理解しておいてください。

当社センティリオンシステム 大阪事業所はこれまでの多くのクラウド開発を支援してきた知見を活かし、クラウドを活用した内製化に取り組まれるお客様を全力でサポートします。

以下のような課題をお持ちの方は、ぜひお気軽にご相談ください。

  • SRE を実現したい
  • クラウド活用を推進するための開発体制作りが進まない
  • 既存資産をどのようにクラウド移行するか検討する知見が不足している
  • 内製化するためのクラウド開発スキルを持った人材が不足している
  • コスト削減の実現方法に悩んでいる

貴社の状況に合わせて、体制づくり支援や開発計画支援、クラウド開発スキルアップ支援など、様々な支援メニューを提供しています。

無料で相談できるため、まずは問い合わせフォームからご連絡いただければと思います

本記事を参考にして、 Google Cloud の導入および GKE ・ Cloud Run の活用を検討してみてはいかがでしょうか?