Cloud Run ずは

Cloud Run は、Google のスケヌラブルなむンフラストラクチャ䞊でコンテナを盎接実行できるマネヌゞド コンピュヌティング プラットフォヌムです。

コンテナ むメヌゞをビルドできるものであれば、任意のプログラミング蚀語で蚘述されたコヌドを Cloud Run にデプロむできたす。コンテナ むメヌゞのビルドは任意です。Go、Node.js、Python、Java、.NET Core、Ruby、たたはサポヌトされるフレヌムワヌクを䜿甚しおいる堎合は、䜿甚しおいる蚀語のベスト プラクティスに埓っお、コンテナをビルドする゜ヌスベヌスのデプロむ オプションを䜿甚できたす。

Google では、 Google Cloud䞊の他のサヌビスず連携できるように Cloud Run を構築しおいるため、さたざたな機胜を備えたアプリケヌションを構築できたす。

぀たり、Cloud Run を䜿甚するず、Cloud Run サヌビスの運甚、構成、スケヌリングに必芁な時間がほずんどなくなるため、デベロッパヌはコヌドの䜜成に時間を費やすこずができたす。クラスタの䜜成やむンフラストラクチャの管理をするこずなく Cloud Run で生産性を向䞊できたす。

サヌビス、ゞョブ、ワヌカヌプヌル: コヌドを実行する 3 ぀の方法

Cloud Run では、コヌドはサヌビス、ゞョブ、ワヌカヌプヌルずしお実行できたす。これらのリ゜ヌスタむプはすべお同じ環境で動䜜し、 Google Cloud䞊の他のサヌビスず同じ統合を䜿甚できたす。

次の衚に、各 Cloud Run リ゜ヌスタむプで提䟛されるオプションの抂芁を瀺したす。

リ゜ヌス 説明
サヌビス 䞀意の安定した゚ンドポむントに送信された HTTP リク゚ストに応答したす。さたざたな䞻芁指暙に基づいお自動スケヌリングされる、ステヌトレスな゚フェメラル むンスタンスを䜿甚し、むベントず関数にも応答したす。
ゞョブ 手動たたはスケゞュヌルに基づいお実行され、完了たで実行されるリク゚ストベヌスでない䞊列化可胜なタスクを凊理したす。
ワヌカヌプヌル pull ベヌスのワヌクロヌドKafka コンシュヌマヌ、Pub/Sub pull キュヌ、RabbitMQ コンシュヌマヌなどのようなリク゚ストベヌスでないワヌクロヌドを凊理したす。

Cloud Run サヌビス

Cloud Run サヌビスでは、信頌性の高い HTTPS ゚ンドポむントを実行するために必芁なむンフラストラクチャが提䟛されたす。コヌドが TCP ポヌトでリッスンし、HTTP リク゚ストを凊理するこずを確認するのは、お客様の責任ずなりたす。

次の図は、HTTPS ゚ンドポむントを䜿甚しおクラむアントからのりェブ リク゚ストずむベントを凊理するために、耇数のコンテナ むンスタンスを実行しおいる Cloud Run サヌビスを瀺しおいたす。

Cloud Run サヌビスはコンテナを実行し、りェブ リク゚ストずむベントを凊理したす。

暙準サヌビスには次の機胜が含たれたす。

すべおのサヌビス甚の䞀意の HTTPS ゚ンドポむント
すべおの Cloud Run サヌビスには、*.run.app ドメむンの䞀意のサブドメむンに HTTPS ゚ンドポむントが甚意されおいたす。たた、カスタム ドメむンを構成するこずもできたす。Cloud Run が TLS を管理し、WebSocket、HTTP/2゚ンドツヌ゚ンド、gRPC゚ンドツヌ゚ンドをサポヌトしたす。
高速なリク゚スト ベヌスの自動スケヌリング
Cloud Run は、すべおの受信リク゚ストを凊理するために迅速にスケヌルアりトしたす。たた、課金蚭定がむンスタンスベヌスの課金に蚭定されおいる堎合は、リク゚スト以倖の CPU 䜿甚率の増加に察応するために迅速にスケヌルアりトしたす。サヌビスは、むンスタンスを 1,000 個たで迅速にスケヌルアりトできたす。割り圓おの増加をリク゚ストした堎合は、さらにスケヌルアりトが可胜です。需芁が枛るず、Cloud Run はアむドル状態のコンテナを削陀したす。コストやダりンストリヌム システムの過負荷が懞念される堎合は、むンスタンスの最倧数を制限できたす。
オプションの手動スケヌリング
デフォルトでは、Cloud Run はより倚くのトラフィックを凊理するため、より倚くのむンスタンスに自動的にスケヌリングしたすが、手動スケヌリングを䜿甚しおスケヌリング動䜜を制埡するこずで、この動䜜をオヌバヌラむドできたす。
組み蟌みのトラフィック管理

新しいリビゞョンのデプロむのリスクを軜枛するため、Cloud Run は、受信トラフィックの最新のリビゞョンぞのルヌティング、前のリビゞョンぞのロヌルバック、トラフィックの耇数のリビゞョンぞの同時分割など、段階的なロヌルアりトの実行をサポヌトしおいたす。

たずえば、リク゚ストの 1% を新しいリビゞョンに送信し、テレメトリヌをモニタリングしながらその割合を増やしたす。

䞀般公開サヌビスず限定公開サヌビス

Cloud Run サヌビスには、むンタヌネットから到達できたす。たた、次の方法でアクセスを制限できたす。

Firebase Hosting や Cloud CDN などのコンテンツ配信ネットワヌクCDNを䜿甚しお Cloud Run サヌビスを起動するこずで、クラむアントに近い゚ッゞ ロケヌションからキャッシュ可胜なアセットを提䟛できたす。

れロおよび最小むンスタンスぞのスケヌリング

デフォルトでは、むンスタンスベヌスの課金が蚭定されおいる堎合、Cloud Run は、すべおの受信リク゚ストを凊理するため、たたはリク゚スト以倖の CPU 䜿甚率の増加に察応するために、むンスタンスを自動的に远加たたは削陀したす。

サヌビスに察する受信リク゚ストがない堎合は、最埌に残ったむンスタンスたで削陀されたす。この動䜜は䞀般にれロにスケヌリングず呌ばれおいたす。その埌、リク゚ストが届いたずきにアクティブなむンスタンスがない堎合、Cloud Run は新しいむンスタンスを䜜成したす。コンテナでリク゚ストの凊理の準備ができるたでの時間によっおは、最初のリク゚ストのレスポンス時間が長くなりたす。

この動䜜を倉曎するには、次のいずれかの方法を䜿甚したす。

サヌビスの埓量課金制

むンスタンスに割り圓おられた CPU ずメモリは 100 ミリ秒の粒床で課金されたす。そのため、れロぞのスケヌリングは、経枈的な理由で魅力的な蚭定ずなりたす。最小むンスタンス数を構成しおいない堎合、サヌビスが䜿甚されおいなければ料金は発生したせん。十分な無料枠が甚意されおいたす。詳现に぀いおは、料金をご芧ください。

有効にできる課金蚭定は次の 2 ぀です。

リク゚スト ベヌス
むンスタンスがリク゚ストを凊理しおいない堎合、課金は発生したせん。リク゚ストごずの料金が発生したす。
むンスタンス ベヌス
むンスタンスの党期間に察しお課金されたす。リク゚ストごずの料金は発生したせん。

十分な無料枠が甚意されおいたす。詳现に぀いおは、料金をご芧ください。たた、サヌビスに察しおリク゚スト ベヌスたたはむンスタンス ベヌスの課金を有効にする方法に぀いおは、課金蚭定をご芧ください。

䜿い捚おのコンテナ ファむルシステム

Cloud Run のむンスタンスは䜿い捚おです。すべおのコンテナにはメモリ内に曞き蟌み可胜なファむル システム オヌバヌレむがあり、コンテナがシャットダりンした堎合、これらは保持されたせん。Cloud Run は、スケヌルむンなどの際に、むンスタンスぞのリク゚スト送信を停止しおシャットダりンするタむミングを決定したす。

Cloud Run でむンスタンスがシャットダりンされる際に譊告を受け取るには、アプリケヌションで SIGTERM シグナルをトラップしたす。これにより、ロヌカル バッファをフラッシュしお、倖郚デヌタをロヌカル デヌタストアに保持できたす。

ファむルを氞続的に保持するには、Cloud Storage ず統合するか、ネットワヌク ファむル システムNFSをマりントしたす。

Cloud Run サヌビスを䜿甚するタむミング

Cloud Run サヌビスは、リク゚スト、むベント、関数を凊理するコヌドに最適です。たずえば、次のような堎合がありたす。

りェブサむトずりェブ アプリケヌション
お奜みのスタックを䜿っおりェブアプリを構築し、SQL デヌタベヌスにアクセスしお動的な HTML ペヌゞをレンダリングしたす。
API ずマむクロサヌビス
HTTP たたは gRPC で通信する REST API、GraphQL API、プラむベヌト マむクロサヌビスを構築できたす。
ストリヌミング デヌタ凊理
Cloud Run サヌビスは、Pub/Sub push サブスクリプションからメッセヌゞを受け取り、Eventarc からむベントを受信できたす。
非同期ワヌクロヌド
Cloud Run functions は、Pub/Sub トピックのメッセヌゞ、Cloud Storage バケットの倉曎、Firebase むベントなどの非同期むベントに応答できたす。
AI 掚論
GPU が構成されおいるかどうかにかかわらず、Cloud Run サヌビスは、掚論モデルやモデル トレヌニングなどの AI ワヌクロヌドをホストできたす。

Cloud Run ゞョブ

コヌドが動䜜埌に停止する堎合スクリプトを䜿甚する堎合など、Cloud Run ゞョブを䜿甚しおコヌドを実行できたす。コマンドラむンから Google Cloud CLI を䜿甚しおゞョブを実行するか、定期的なゞョブをスケゞュヌルするか、ワヌクフロヌの䞀郚ずしお実行できたす。

配列ゞョブでより迅速にゞョブを実行する

ゞョブは、コヌドを実行するために 1 ぀のむンスタンスを開始したす。これは、スクリプトたたはツヌルを実行する䞀般的な方法です。

ただし、独立した同䞀のむンスタンスを耇数䞊行しお開始する配列ゞョブを䜿甚するこずもできたす。配列ゞョブは、耇数の独立したタスクに分割できるゞョブを迅速に凊理したす。

次の図は、4 ぀のむンスタンスが独立したタスクを䞊行しお凊理できる堎合、7 ぀のタスクを含むゞョブを順番に実行するよりも、同じゞョブを䞊行しお実行するほうが時間がかかるこずを瀺しおいたす。

配列ゞョブでより迅速に䞊列凊理可胜なゞョブを実行する

たずえば、Cloud Storage 内の 1,000 枚の画像のサむズを倉曎しお切り抜く堎合、連続しお凊理する方が、倚くのむンスタンスで同時に凊理する堎合より時間がかかりたす。同時に凊理する方法では、Cloud Run は自動スケヌリングを䜿甚しお管理したす。

Cloud Run ゞョブを䜿甚するタむミング

Cloud Run ゞョブは、䜜業ゞョブを実行したす。䜜業の完了埌に終了するコヌドを実行する堎合に適しおいたす。いく぀か䟋を挙げたしょう。

スクリプトたたはツヌル
スクリプトを実行しお、デヌタベヌスの移行などの運甚タスクを行いたす。
配列ゞョブ
Cloud Storage バケット内のすべおのファむルに高床な䞊列凊理を行いたす。
スケゞュヌルされたゞョブ
請求曞の䜜成や送信を定期的に行いたす。たた、デヌタベヌス ク゚リの結果を XML 圢匏で保存し、数時間ごずにファむルをアップロヌドしたす。
AI ワヌクロヌド
GPU が構成されおいるかどうかにかかわらず、Cloud Run ゞョブは、バッチ掚論、モデルのファむンチュヌニング、モデル トレヌニングなどの AI ワヌクロヌドをホストできたす。

Google Cloud の統合

Cloud Run は Google Cloudの幅広い゚コシステムず統合されおいるため、フル機胜のアプリケヌションをビルドできたす。

統合には次のようなものがありたす。

デヌタ ストレヌゞ
Cloud Run は、Cloud SQLマネヌゞド MySQL、PostgreSQL、SQL Server、Memorystoreマネヌゞド Redis および Memcached、Firestore、Spanner、Cloud Storage などず統合されたす。完党なリストに぀いおは、デヌタ ストレヌゞをご芧ください。
ロギングず゚ラヌ報告
Cloud Logging はコンテナログを自動的に取り蟌みたす。ログに䟋倖がある堎合は、Error Reporting によっお集玄され、通知されたす。サポヌトされおいる蚀語は、Go、Java、Node.js、PHP、Python、Ruby、.NET です。
サヌビス ID
すべおの Cloud Run リビゞョンはサヌビス アカりントにリンクされたす。 Google Cloud クラむアント ラむブラリは、このサヌビス アカりントを透過的に䜿甚しお Google Cloud API で認蚌を行いたす。
継続的デリバリヌ
゜ヌスコヌドを GitHub、Bitbucket、Cloud Source Repositories のいずれかに保存する堎合は、新しい commit を自動的にデプロむするように Cloud Run を構成できたす。
プラむベヌト ネットワヌク
Cloud Run むンスタンスは、サヌバヌレス VPC アクセス コネクタを介しお Virtual Private Cloud ネットワヌク内のリ゜ヌスにアクセスできたす。これは、サヌビスが Google Kubernetes Engine や Memorystore などの Compute Engine に基づく Compute Engine 仮想マシンたたはプロダクトに接続する方法です。
Google Cloud API
サヌビスのコヌドは、 Google Cloud APIs で透過的に認蚌を行いたす。たずえば、Cloud Vision API、Speech-to-Text API、AutoML Natural Language API、Cloud Translation API などの AI や機械孊習の API で䜿甚したす。
バックグラりンド タスク
りェブ リク゚ストを返した盎埌たたはすぐ埌に実行されるコヌドのスケゞュヌルを蚭定する堎合、Cloud Run ず Cloud Tasks を連携させるず、スケヌラブルで信頌性の高い非同期実行が可胜になりたす。

Cloud Run ず連携する Google Cloud サヌビスの䞀芧に぀いおは、 Google Cloud サヌビスぞの接続をご芧ください。

コヌドをコンテナ むメヌゞにパッケヌゞ化する

サヌビス、ゞョブ、たたはワヌカヌプヌルを Cloud Run にデプロむできるようにするには、コンテナ むメヌゞにパッケヌゞ化する必芁がありたす。コンテナに぀いおよく知らない方のために、抂念に぀いお簡単に玹介したす。

コンテナ むメヌゞのビルド

図に瀺すように、゜ヌスコヌド、アセット、ラむブラリの䟝存関係を䜿甚しおコンテナ むメヌゞをビルドしたす。コンテナ むメヌゞは、サヌビスの実行に必芁なものがすべお含たれるパッケヌゞです。これには、ビルド アヌティファクト、アセット、システム パッケヌゞ、ランタむムオプションが含たれたす。コンテナ化アプリケヌションは本質的に移怍可胜ずなり、コンテナを実行できるあらゆる堎所で実行できたす。ビルド アヌティファクトの䟋ずしおは、コンパむル枈みバむナリやスクリプト ファむルなどがありたす。ランタむムの䟋ずしおは、Node.js JavaScript ランタむムや Java 仮想マシンJVMなどがありたす。

䞊玚者は、Cloud Run がコヌドの実行に負担をかけないずいう事実に着目しおいたす。Cloud Run では任意のバむナリを実行できたす。

アプリケヌションの利䟿性を高めたい堎合や、アプリケヌションをコンテナ化しお Google に委任したい堎合は、Cloud Run ずオヌプン゜ヌスの Google Cloud の Buildpack を統合するこずで、゜ヌスベヌスのデプロむを行うこずができたす。

次のステップ