Google Cloud、サーバレスの「Cloud Functions」をコンテナサーバレスの「Cloud Run」に統合、「Cloud Run functions」に
今回は「Google Cloud、サーバレスの「Cloud Functions」をコンテナサーバレスの「Cloud Run」に統合、「Cloud Run functions」に」についてご紹介します。
関連ワード (名称変更、実行環境、記述等) についても参考にしながら、ぜひ本記事について議論していってくださいね。
本記事は、Publickey様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。
Google Cloudは、「Cloud Functions」を「Cloud Run」に統合し、「Cloud Run functions」にすることを発表しました。
これにより、これまでCloud Functionsでは利用できなかったGPU機能などのCloud Runの機能がCloud Run functionsで利用可能になります。
There's a new deployment option for Cloud Run: the function.
A.k.a Cloud Functions and its event-driven programming model is now Cloud Run functions—complete with the fine-grained control and scalability that developers about the serverless platform → https://t.co/faOECtjt7P pic.twitter.com/WKaLhqE1VE
— Google Cloud Tech (@GoogleCloudTech) August 22, 2024
Cloud FunctionsとCloud Runの違いとは?
Cloud Functionsは、Googl Cloud上でいわゆるサーバレス環境を実現するサービスとして、2016年から提供されてきました。
サーバレス環境とは、あらかじめプログラミング言語で記述された関数を登録しておくと、HTTPのリクエスト、ストレージやPub/Subで発生したイベントをきっかけにその関数が実行され、処理を行うというものです。
実行環境はクラウド側が用意し、リクエスト数に応じて自動的にスケールするため、開発者は仮想マシンなどの実行基盤の設定やプロビジョニングなどを気にすることなく利用できることを特徴としています。
Cloud Functionsは当初はNode.jsをベースにしたJavaScript実行環境が提供され、その後Python、Go、Java、.NET、Ruby、PHPなどのプログラミング言語へと対応を広げていきました。
2022年にはCloud Functions 2nd Gen(第二世代)となり、内部的にはこの第二世代からはCloud Runをベースに強化されたことがドキュメントで示されています。
一方のCloud Runは2019年に発表されたサービスです。Dockerコンテナとしてプログラム言語のランタイム、フレームワーク、そしてプログラムのコードをパッケージにして登録すると、前述のサーバレス環境と同様にHTTPリクエストやイベントをきっかけにコンテナが実行され、処理が行われます。
Cloud Functionsではプログラミング言語の実行環境やフレームワークはGoogle Cloudによってあらかじめ用意されたものしか利用できませんが、Cloud Runでは開発者が実行環境をコンテナとして自由にパッケージにする点が最大の違いです。
Cloud RunにCloud Functionsを統合
今回の発表は、Cloud FunctionsをCloud Runに統合することで「Cloud Run functions」とするものです。これは名称変更だけではなく、これまでCloud FunctionsにはなくてCloud Runにあった機能がCloud Run functionsでは使えるようになると説明されています。
具体的には以下の機能です。
- NVIDA GPUによる推論処理
- アクセスコネクターが不要なDirect VPCによる高速な外部との通信
- Cloud Storageボリュームへのマウント
- 関数でのマルチイベントトリガーマネジメント
- マネージドなプログラミング実行環境の自動セキュリティアップデート
- トラフィックスプリッティングとリビジョンコントロール
- サイドカーコンテナによるマネージドなPrometheusとOpenTelemetryのサポート
既存のAPI、gcloudコマンド、Terraformモジュールのサポートは継続され、既存の第二世代のCloud Functionsの関数は、自動的にCloud Run functionsに変換されます。一方、第一世代のCloud Functionsの関数もそのままCloud Run functions(第一世代)として実行可能ですが、Cloud Run functionsのフル機能を利用するには変換が必要とのことです。